SpringBoot学习记录三、整合MyBatis
一、前期准备:配置数据源
我使用的是druid,当然也可以使用其他的。使用方式都类似。
首先,引入需要的jar包。
<!--导入druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.5</version> </dependency> <!--导入mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
然后,在application.properties进行配置:
spring.datasource.username=root//配置用户名 spring.datasource.password=123//配置密码 spring.datasource.url=jdbc:mysql://localhost:3306/test2 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource//使用的连接池类型
这样就可以完成dataSource的自动引入。
二、使用mybatis-spring-boot-starter进行整合
首先在pom.xml文件中添加依赖:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency>
然后在application.properties中添加如下配置:
mybatis.mapper-locations=classpath:mapper/*.xml//指定扫描的mapper文件的位置
然后,在Mapper Interface上添加@Mapper注解:
@Mapper public interface UserMapper { public List<User> findAll(); public User findById(Integer id); public void add(User user); }
至此就完成了配置,这样配置的好处是简洁
三、传统方式配置
引入所需maven依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.12.RELEASE</version> </dependency>
然后,通过java 配置方式配置数据源等信息。
先配置sqlSessionFactory,对应于配置文件中的sqlSessionFactory的配置
@Configuration public class MyBatis { @Autowired private DataSource dataSource; @Bean public SqlSessionFactoryBean sqlSessionFactory() throws IOException { SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); ResourcePatternResolver resourceResolver=new PathMatchingResourcePatternResolver(); Resource[] resources=resourceResolver.getResources("classpath:mapper/*.xml");//扫描mapper对应的配置文件 sqlSessionFactoryBean.setMapperLocations(resources); return sqlSessionFactoryBean; } }
然后再配置MapperScanner
@Configuration @AutoConfigureAfter(MyBatis.class)//注意这需要在MyBatis配置生效后才能使用,不然会出现异常 public class MapperScaner { @Bean public MapperScannerConfigurer mapperScannerConfigurer(){ MapperScannerConfigurer mapperScannerConfigurer=new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); mapperScannerConfigurer.setBasePackage("com.example.dao"); return mapperScannerConfigurer; } }
至此,就完成了传统方式与SpringBoot整合
ps:如有不对,请大佬指出~~