1.首先我们先要在Maven中导入Spring和Mybatis的核心包等一些需要使用的jar包
//mybatis核心包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
//Spring-context,其中包含Spirng的核心包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.23</version>
</dependency>
//mybatis-spring的整合包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
//mysql驱动包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
//阿里巴巴德鲁伊数据源包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
//Spirng的JDBC支持包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.23</version>
</dependency>
//Spring的事务管理包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.23</version>
</dependency>
//lombok注解包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
//单元测试包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
2.我们之前的Mybatis是基于xml配置和映射的,和Spring整合之后我们通过配置类进行配置,我们在根目录创建一个子包存放配置类
在跟配置类中我们进行三个配置:
--对于数据源的配置,通过阿里巴巴德鲁伊数据连接池连接我们的数据库。
--对于Mybatis的SqlSession的配置,用于映射SQL语句。
--对于Spring事务管理的配置。
@Configuration//配置该类是一个配置文件
@ComponentScan("com.jiazhong.sm.service")
@MapperScan("com.jiazhong.sm.mapper")
@PropertySource("db.properties")
public class RootConfig {
//从db.properties中获取
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
//创建基于Druid的数据源对象
DruidDataSource druidDataSource = new DruidDataSource();
//数据库连接配置
druidDataSource.setDriverClassName(driver);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
//连接池配置
druidDataSource.setMinIdle(3);//设置最小空闲连接
druidDataSource.setMaxActive(100);//设置最大活动连接数
druidDataSource.setMaxWait(1000);//设置最大等待时间
return druidDataSource;
}
/*
*
* 配置SQLSessionFactory对象
* */
@Bean
public SqlSessionFactory sessionFactory(DataSource dataSource){
try {
//创建SqlSessionFactoryBean
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//设置当前SQLSessionFactory的数据源对象
sqlSessionFactoryBean.setDataSource(dataSource);
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBean.getObject();
return sqlSessionFactory;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Bean
public TransactionManager transactionManager(DataSource dataSource){
//创建一个事务管理对象,管理数据数据源
PlatformTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);
return transactionManager;
}
}
根据该配置类我们还要创建service包用于业务实现和db.properties资源文件。
@Configuration:表示该类是一个配置文件
@ComponentScan("com.jiazhong.sm.service"):扫描包,将包中的类交于spring容器管理
@MapperScan("com.jiazhong.sm.mapper"):扫描包,将包下的所有接口指定为SQL映射,相当于xml中的<package>标签
@PropertySource("db.properties"):用于引入db.properties资源文件
3.创建service业务,我们创建一个简单地查询功能,
在mapper包中创建GoodMapper类作为SQL映射,
创建实现类注入GoodsMapper类调用其中的方法
4.创建测试类进行测试配置是否成功。
5.打印结果,测试成功。