SpringBoot如何利用MyBatis进行连接数据库

  介绍

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{      ListlikeName(字符串名称);      学生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进行连接数据库