最近工作比较忙,很久没写博客了,抱歉,以前springboot项目使用的是JPA标准,使用hibernate来实现的,最新心血来潮,试试springboot整合mybatis试试,于是找了官方文档来进行配置下,下面就是正文了
先介绍一下开发环境:
- jdk版本是1.8
- springboot的版本是1.4.1
- 开发工具为 intellij idea
首先我们先引入mybatis的依赖,在项目的pom文件中添加以下内容:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency>
------------------------------------分割线-------------------------------------
引入依赖后,在数据库执行以下SQL
create table city (id int primary key auto_increment, name varchar(32), state varchar(32), country varchar(32)); insert into city (name, state, country) values ('BeiJing', 'OFF', 'CN'); 上面是创建表跟插入一条数据,方便我们测试是否执行
然后我们创建一个mapper
//mapper注解
@Mapper
public interface CityMapper {
//SQL注解
@Select("SELECT * FROM CITY WHERE state = #{state}")
City findByState(@Param("state") String state);
}
PS注解描述:
@Mapper 表示这是个mapper,类似以前在xml配置的mapper,只不过这里使用注解不使用xml而已,如果不是在默认路径下,还需要配合@MapperScan注解使用,否则会扫描不到@Mapper注解的路径
@Select SQL注解,里面内容是需要执行的SQL,类似注解还有@Update等
@Param 参数注解,用于SQL参数注入使用
创建好mapper后,我们需要创建一个映射实体类,用于对象跟表之间的映射,我们只需要创建一个普通的java对象就好了
public class City {
private Long id;
private String name;
private String state;
private String country;
.... getterAndsetter
}
------------------------------------分割线-------------------------------------
mapper跟model我们都写好了,下面我们配置一下数据库连接等配置,这次我们使用 properties进行配置,以下下是配置内容(这些内容,大家肯定都知道了,就不在写注释了),默认使用的数据库连接池是:
org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/springboot
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
//如果想替换其他的数据库连接池,增加下面配置就可以了
#spring.datasource.type= 数据库连接池的包路径
因为我的mapper没有在默认的包下,而是在其他的包下,所以,我这还需要在Applicaction的启动类上加上@MapperScan注解,代码如下:
@SpringBootApplication
@MapperScan(basePackages = "com.demo.mybatisDemo")
public class DemoApplication{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
以上基本是所有配置了,下面我们写个单元测试来进行测试下吧:
测试代码如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MybatisTest {
@Autowired
private CityMapper cityMapper;
private Gson gson = new Gson();
@Test
public void mybatisMethod(){
City cn = cityMapper.findByState("CA");
System.out.println(gson.toJson(cn));
}
}
然后你会发现执行成功了,表示配置成功了,这是简单的集成mybatis例子,各位可以参考这个自己进行配置
以下是官方的例子,如果有兴趣的同学,可以通过连接自己查看一下
PS:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
到这,文章就结束了!
以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正
欢迎转载,请注明出处跟作者,谢谢!