SpringBoot如何利用MyBatis进行连接数据库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
最近比较忙,没来得及抽时间把MyBatis的集成发出来,其实MyBatis官网在2015年11月底就已经发布了对SpringBoot集成的发布版本,示例代码:spring-boot_jb51。rar
前面对JPA和JDBC连接数据库做了说明,本文也是参考官方的代码做个总结。
先说个题外话,SpringBoot默认使用org.apache.tomcat.jdbc.pool。数据源
现在有个叫HikariCP的JDBC连接池组件,据说其性能比常用的c3p0, tomcat,骨头,vibur这些要高很多。
我打算把工程中的数据源变更为HirakiDataSource,做法很简单:
首先在应用程序中。属性配置文件中指定dataSourceType
spring.datasource.type=com.zaxxer.hikari。HikariDataSource
然后在pom中添“光之轮”加的依赖
& lt; dependency> & lt; groupId> com.zaxxer & lt; artifactId> HikariCP & lt; !——版本号可以不用指定,弹簧引导会选用合适的版本——比; & lt;/dependency>
言归正,传下面说在春天引导中配置MyBatis。
关于春季在引导中集成MyBatis,可以选用基于注解的方式,也可以选择xml文件配置的方式。通过对两者进行实际的使用,还是建议使用xml的方式(官方也建议使用xml)。
下面将介绍通过xml的方式来实现查询,其次会简单说一下注解方式,最后会附上分页插件(PageHelper)的集成。
<强>一、通过xml配置文件方式强>
1,添加pom依赖
& lt; dependency> & lt; groupId> org.mybatis.spring.boot & lt; artifactId> mybatis-spring-boot-starter & lt; !——请不要使用1.0.0版本,因为还不支持拦截器插件,1.0.1-SNAPSHOT是博主写帖子时候的版本,大家使用最新版本即可,比; & lt; version> 1.0.1-SNAPSHOT & lt;/dependency>
2,创建接口映射器(不是类)和对应的Mapper.xml文件
定义相关方法,注意方法名称要和映射器。xml文件中的id一致,这样会自动对应上
StudentMapper。Java
包org.springboot.sample.mapper; 进口并不知道; 进口org.springboot.sample.entity.Student;/* * * StudentMapper,映射SQL语句的接口,无逻辑实现 * * @author单红宇(365384722) * @create 2016年1月20日 */公共接口StudentMapper延伸MyMapper{ List likeName(字符串名称); 学生getById (int id); 字符串getNameById (int id); }
关联。java
包org.springboot.sample.config.mybatis; 进口tk.mybatis.mapper.common.Mapper; 进口tk.mybatis.mapper.common.MySqlMapper;/* * *被继承的映射器,一般业务Mapper继承它 * */公共接口MyMapper扩展Mapper {//TODO//FIXME特别注意,该接口不能被扫描到,否则会出的错 }
StudentMapper。xml
& lt;及# 63;xml version=?.0”;编码=癠TF-8", # 63;比; & lt; !DOCTYPE mapper公众“-//mybatis.org//DTD mapper 3.0//EN" “http://mybatis.org/dtd/mybatis-3-mapper.dtd"比; & lt;映射器命名空间=皁rg.springboot.sample.mapper.StudentMapper"祝辞 & lt; !——类型为实体类学生,包名已经配置,可以直接写类名——比; & lt; resultMap id=皊tuMap"类型=癝tudent"比; & lt; id属性=癷d"列=癷d"/比; & lt;结果属性=皀ame"列=皀ame"/比; & lt;结果属性=皊umScore"列=皊core_sum"/比; & lt;结果属性=癮vgScore"列=皊core_avg"/比; & lt;结果属性=癮ge"列=癮ge"/比; & lt;/resultMap> & lt;选择id=癵etById"resultMap=皊tuMap"resultType=癝tudent"比; SELECT * 从学生 在ID=# {ID} & lt;/select> & lt;选择id=發ikeName"resultMap=皊tuMap"parameterType=皊tring"resultType=發ist"比; SELECT * 从学生 名字像CONCAT(& # 39; % & # 39;, #{名称},& # 39;% & # 39;) & lt;/select> & lt;选择id=癵etNameById"resultType=皊tring"比; 选择的名字 从学生 在ID=# {ID} & lt;/select> & lt;/mapper>
3,实体类
包org.springboot.sample.entity; 进口java.io.Serializable;/* * *学生实体 * * @author单红宇(365384722) * @create 2016年1月12日 */公共类学生实现Serializable { 私有静态最终长serialVersionUID=2120869894112984147 l; 私人int id; 私人字符串名称; 私人字符串sumScore; 私人字符串avgScore; 私人int年龄;//得到集方法省略 }SpringBoot如何利用MyBatis进行连接数据库