搭建mybatis+spring配置环境
搭建mybatis+spring配置环境
第一步、添加maven依赖
<properties>
<spring.version>5.1.5.RELEASE</spring.version>
</properties>
<!--下面是必须要的依赖包-->
<dependencies>
<!--数据源连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--mysql jdbc连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--junit 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--spring 提供的测试环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring bean管理,实现依赖注入和控制反转-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring mybatis集成包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.0</version>
</dependency>
<!--spring jdbc 集成包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring-context 注解扫描等功能需要-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis 包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
spring配置Bean
spring提供了两种配置方式,一种是直接使用xml文件配置bean,第二种是使用注解配置bean
两种方式各有优劣吧,需要更多了解的话可以进这个链接了解:链接: spring xml配置文件方式和注解方式的优缺点
我这次使用的是注解方式配置
代码
/**
* @author Hearts
* @date 2019/4/16
* @desc
*/
@Configuration
@ComponentScan(basePackages = "javaDIYFree")
//@MapperScan(basePackages = "javaDIYFree.dao")
public class MybatisConfig {
/**
* 配置数据源
* 我这里使用的是阿里的连接池,里面还有很多连接池的属性,大家可以去配置
* @return
*/
@Bean(name = "test")
public DruidDataSource createTestDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
//配置jdbc驱动类全限定类名
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
//配置数据库url
druidDataSource.setUrl("jdbc:mysql://localhost:3306/test");
//配置用户名
druidDataSource.setUsername("root");
//配置密码
druidDataSource.setPassword("abcdef");
return druidDataSource;
}
/**
* 配置mybatis SqlSessionFactoryBean 会话工厂,每一次连接都是一次会话,会话工厂就是用来生产会话的
* @param druidDataSource
* @return
*/
@Bean
public SqlSessionFactoryBean createSqlSessionFactoryBean(DruidDataSource druidDataSource){
final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
try{
//配置数据源
sqlSessionFactoryBean.setDataSource(druidDataSource);
//配置mapper文件所在的位置
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
//配置自定义TypeHandler,TypeHandler的扩展后面会写
sqlSessionFactoryBean.setTypeHandlers(new TypeHandler[]{new VarcharTypeHandler()});
} catch (IOException e) {
测试环境搭建是否成功
/**
* @author Hearts
* @date 2019/4/19
* @desc
*/
@RunWith(SpringJUnit4ClassRunner.class) //运行spring虚拟环境
@ContextConfiguration(classes = MybatisConfig.class) //加载自定义配置类,@ContextConfiguration(name = "classpath:applicationContext.xml") 是加载xml文件配置的
public class EnviromentTest {
@Autowired
private SqlSessionFactory sqlSessionFactory;
@Autowired
private DruidDataSource dataSource;
@Autowired
private MapperScannerConfigurer mapperScannerConfigurer;
/**
* 测试bean是否注入成功
*/
@Test
public void BeanTest(){
Assert.notNull(sqlSessionFactory, "sqlSessionFactoryBean 配置失败");
Assert.notNull(dataSource, "DruidDataSource 配置失败");
Assert.notNull(mapperScannerConfigurer, "MapperScannerConfigurer 配置失败");
}
}
单元测试虽然简单,但是能够提高编程效率,降低维护成本,何乐而不为!
项目结构图
有什么问题欢迎大家指正!