1.Spring整合Mybatis,基于XML配置
1.1 引入依赖:
除Spring依赖和Mybatis依赖以外,新增:commons-logging,slf4j,mybaits-spring,druid
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!--引入需要的ehcache插件-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.2.3</version>
</dependency>
<!--mybatis整合ehcache的jar-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
1.2 创建配置文件
log4j.properties
datasource.properties
mybatis-config.xml
applicationContext.xml
ehcache.xml(如果不适用第三方缓存则不用引入)
1.3 创建Entity实体
1.4 创建Mapper层接口
public interface IBankMapper {
//查询所有银行账户
public List<Bank> getAllBank();
}
1.5 Mapper小配置文件
<!--namespace需要指向接口全路径-->
<mapper namespace="com.wdksoft.mapper.IBankMapper">
<select id="getAllBank" resultType="Bank">
select* from bank
</select>
</mapper>
注意pom.xml开启扫描,否则不会加载小配置文件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
1.6 mybaits-config大配置文件内容:
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--别名配置-->
<typeAliases>
<package name="com.wdksoft.entity"/>
</typeAliases>
<!--加载小配置文件-->
<mappers>
<package name="com.wdksoft.mapper"/>
</mappers>
</configuration>
1.7 配置Service层
public interface IBankService {
//查询所有银行账户
public List<Bank> getAllBank();
}
1.8 配置ServiceImpl层
public class IBankServiceImpl implements IBankService {
//植入Mapper层对象
private IBankMapper iBankMapper;
@Override
public List<Bank> getAllBank() {
return iBankMapper.getAllBank();
}
public IBankMapper getiBankMapper() {
return iBankMapper;
}
public void setiBankMapper(IBankMapper iBankMapper) {
this.iBankMapper = iBankMapper;
}
}
1.9 配置applicationContext.xml文件
1.9.1 配置数据源
1.9.2 配置SqlSessionFactory,加载数据源,加载mybatis大配置文件
1.9.3 关联Mapper映射,扫描Mapper包,将Mapper的所有接口注入到容器
1.9.4 将Mapper和SqlSessionFactory关联到一起
1.9.5 将Service和Mapper关联到一起即可
1.9.6 补充:如果用到增强和事务,你就配置,如果不用就不用配置
<!--加载jdbc.properties配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置DataSource 阿里: druid c3p0 dbcp-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置SqlSessionfactory-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--加载数据源-->
<property name="dataSource" ref="dataSource"/>
<!--加载mybatis大配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!--关联Mapper映射-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.wdksoft.mapper"/>
</bean>
<!--Mapper注入,利用代理工厂生成对象-->
<bean id="iBankMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!--代理的Mapper-->
<property name="mapperInterface" value="com.wdksoft.mapper.IBankMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
</bean>
<!--Service层注入-->
<bean id="iBankService" class="com.wdksoft.service.impl.IBankServiceImpl">
<property name="iBankMapper" ref="iBankMapper"/>
</bean>
1.10 测试
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
IBankService iBankService =(IBankService) applicationContext.getBean("iBankService");
List<Bank> allBank = iBankService.getAllBank();
for (Bank bank:allBank){
System.out.println(bank.toString());
}
}
2.Spring整合Mybatis,基于注解配置
**1.1 引入依赖:**
除Spring依赖和Mybatis依赖以外,新增:commons-logging,slf4j,mybaits-spring,druid
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!--引入需要的ehcache插件-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.2.3</version>
</dependency>
<!--mybatis整合ehcache的jar-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
1.2 创建配置文件
log4j.properties
datasource.properties
mybatis-config.xml
applicationContext.xml
ehcache.xml(如果不适用第三方缓存则不用引入)
1.3 创建Entity实体
1.4 创建Mapper层接口
@Repository
public interface IBankMapper {
//查询所有银行账户
public List<Bank> getAllBank();
}
1.5 Mapper小配置文件
<!--namespace需要指向接口全路径-->
<mapper namespace="com.wdksoft.mapper.IBankMapper">
<select id="getAllBank" resultType="Bank">
select* from bank
</select>
</mapper>
注意pom.xml开启扫描,否则不会加载小配置文件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
1.6 mybaits-config大配置文件内容:
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--别名配置-->
<typeAliases>
<package name="com.wdksoft.entity"/>
</typeAliases>
<!--加载小配置文件-->
<mappers>
<package name="com.wdksoft.mapper"/>
</mappers>
</configuration>
1.7 配置Service层
public interface IBankService {
//查询所有银行账户
public List<Bank> getAllBank();
}
1.8 配置ServiceImpl层
@Service("iBankService")
public class IBankServiceImpl implements IBankService {
//植入Mapper层对象
@Resource
private IBankMapper iBankMapper;
@Override
public List<Bank> getAllBank() {
return iBankMapper.getAllBank();
}
}
1.9 配置applicationContext.xml文件
1.9.1 配置数据源
1.9.2 配置SqlSessionFactory,加载数据源,加载mybatis大配置文件
1.9.3 关联Mapper映射,扫描Mapper包,将Mapper的所有接口注入到容器
1.9.4 将Mapper和SqlSessionFactory关联到一起
1.9.5 将Service和Mapper关联到一起即可
1.9.6 补充:如果用到增强和事务,你就配置,如果不用就不用配置
<!--加载jdbc.properties配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置DataSource 阿里: druid c3p0 dbcp-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置SqlSessionfactory-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--加载数据源-->
<property name="dataSource" ref="dataSource"/>
<!--加载mybatis大配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!--关联Mapper映射-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.wdksoft.mapper"/>
</bean>
<!--注解扫描-->
<context:component-scan base-package="com.wdksoft"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--开启事务-->
<tx:annotation-driven/>
1.10 测试
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
IBankService iBankService =(IBankService) applicationContext.getBean("iBankService");
List<Bank> allBank = iBankService.getAllBank();
for (Bank bank:allBank){
System.out.println(bank.toString());
}
}
3.使用pageHelper
3.1 基于Mybatis大配置文件
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper"></plugin>
</plugins>
3.2 基于Spring大配置文件
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--加载数据源-->
<property name="dataSource" ref="dataSource"/>
<!--加载mybatis大配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
</bean>
</array>
</property>
</bean>
4.mybatis-generator使用,反向生成插件,能够根据数据库反向生成实体和Mapper接口
4.1 导入依赖
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
4.2 开启mybatis-generator插件
<plugin>
<!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<!--配置文件的位置 一定要改成配置文件的位置-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
4.3 配置generatorConfig.xml生成规则
1.数据库驱动jar包位置
<classPathEntry location="F:\maven\mvnRepo\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>
2.数据库链接URL,用户名、密码
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/smbms" userId="root" password="root">
3.<!-- 实体类生成的位置 -->
<javaModelGenerator targetPackage="com.smbms.test.entity" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
4.<!-- *Mapper.xml 文件的位置 -->
<sqlMapGenerator targetPackage="com.smbms.test.mapper" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
5.<!-- Mapper 接口文件的位置 -->
<javaClientGenerator targetPackage="com.smbms.test.mapper" targetProject=".\src\main\java" type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
6.<!-- 相关表的配置 -->
<table tableName="smbms_address" domainObjectName="Smbms_Address"
enableCountByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
enableUpdateByExample="false"/>
4.4 启动插件,进行生成
来源:CSDN
作者:z.l..
链接:https://blog.csdn.net/weixin_45874909/article/details/104479433