SpringBoot之整合MyBatis
今天了解一下SpringBoot如何与我们最常用的ORM框架Mybatis整合。
一、
需要在pom.xml文件里加入mybatis的依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
二、
需要在application.properties文件里加关于mybatis的配置
#mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml ------意思是mapper文件在classpath下的mapper里
mybatis.type-aliases-package=com.renruibin.springbootmybatis.pojo -------设置自定义的Pojo别名为首写字母小写的pojo
#数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/springbootmybatis
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=rrb
三、
使用Ant,达到自动创建默认的Mybatis代码和生成表,需要添加以下文件,目录结构为:

1、user.xml,这是要自动生成代码的一些配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
<context id="user">
<jdbcConnection driverClass="${database.driver}"
connectionURL="${database.url}" userId="${database.username}"
password="${database.password}" />
<javaModelGenerator targetPackage="com.renruibin.springbootmybatis.pojo"
targetProject="${targetProject}" />
<sqlMapGenerator targetPackage="mapper"
targetProject="${targetProjRsrc}" />
<javaClientGenerator targetPackage="com.renruibin.springbootmybatis.dao"
targetProject="${targetProject}" type="XMLMAPPER" />
<table tableName="user" domainObjectName="User">
</table>
</context>
</generatorConfiguration>
javaModelGenerator:配置自动生成的pojo所在的位置
sqlMapGenerator:配置自动生成的mapper.xml文件所在的位置
javaClientGenerator:配置自动生成的mapper.java文件所在的位置
2、changleLog.xml,这是要自动生成表或者修改表结构的一些配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet id="20190113" author="rrb">
<createTable tableName="user" remarks="用户版">
<column name="id" type="varchar(32)">
<constraints nullable="false" primaryKey="true" />
</column>
<column name="username" remarks="用户名" type="varchar(50)" />
<column name="password" remarks="密码" type="varchar(50)" />
<column name="status" remarks="状态" type="int" />
<column name="createtime" remarks="创建时间" type="TIMESTAMP" />
<column name="edittime" remarks="修改时间" type="TIMESTAMP" />
</createTable>
</changeSet>
<changeSet id="20190113-2" author="rrb">
<dropColumn tableName="user" columnName="createtime"></dropColumn>
<dropColumn tableName="user" columnName="edittime"></dropColumn>
</changeSet>
</databaseChangeLog>
3、database.properties,这是数据源的一些配置
database.driver=com.mysql.jdbc.Driver
database.url=jdbc\:mysql\://127.0.0.1\:3306/springbootmybatis?useUnicode\=true&characterEncoding\=UTF-8
database.username=root
database.password=rrb
4、update&mybatis.xml,这是ant自动生成代码的配置
<project name="updateDatabase" default="mybatis">
<property file="database.properties">
</property>
<property name="targetProject" location="..\src\main\java">
</property>
<property name="targetProjRsrc" location="..\src\main\resources">
</property>
<path id="jdbclib">
<fileset dir="${basedir}\lib" includes="mysql-connector-java-5.1.23-bin.jar" />
</path>
<target name="mybatis" description="Generate the files">
<taskdef name="mbgenerator" classname="org.mybatis.generator.ant.GeneratorAntTask">
<classpath>
<pathelement location="${basedir}\lib\mybatis-generator-core-1.3.2.jar" />
<pathelement location="${basedir}\lib\generator-0.0.1-SNAPSHOT.jar" />
<pathelement location="${basedir}\lib\mysql-connector-java-5.1.23-bin.jar" />
</classpath>
</taskdef>
<mbgenerator overwrite="true" configfile="generator/user.xml"
verbose="true">
<propertyset>
<propertyref name="database.driver" />
<propertyref name="database.url" />
<propertyref name="database.username" />
<propertyref name="database.password" />
<propertyref name="targetProject" />
<propertyref name="targetProjRsrc" />
</propertyset>
</mbgenerator>
</target>
</project>
5、updateDatabase.xml,这是ant自动生成表的配置<project name="updateDatabase" default="updateDatabase">
<property file="database.properties">
</property>
<path id="jdbclib">
<fileset dir="${basedir}\lib" includes="mysql-connector-java-5.1.23-bin.jar" />
</path>
<target name="updateDatabase">
<fail unless="database.url">database.url not set</fail>
<fail unless="database.username">database.username not set</fail>
<fail unless="database.password">database.password not set</fail>
<taskdef resource="liquibasetasks.properties">
<classpath>
<pathelement location="${basedir}\lib\snakeyaml-1.13.jar" />
<pathelement location="${basedir}\lib\liquibase.jar" />
</classpath>
</taskdef>
<updateDatabase
changeLogFile="${basedir}\changeLog.xml"
driver="${database.driver}"
url="${database.url}"
username="${database.username}"
password="${database.password}"
promptOnNonLocalDatabase="false"
dropFirst="false"
classpathref="jdbclib"
loglevel="info"
/>
</target>
</project>
四、
建立dao、service、controller,目录如下:

1、先看一下dao层的代码是如何编写的吧
@Mapper
public interface UserAtomMapper {
List<User> finaAll();
}
@Mapper这个注解很关键,之前用的@Repository注解,但是与springboot整合之后,这个注解就不能用了,只有@Mapper注解的时候,才可以把这个类注入到service里。
2、看一下mapper层的xml文件是如何编写的
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.renruibin.springbootmybatis.dao.UserAtomMapper">
<select id="finaAll" resultType="com.renruibin.springbootmybatis.pojo.User">
select * from user
</select>
</mapper>
3、看一下service层的代码
@Service
public class UserServiceImpl implements UserService { @Autowired
private UserAtomMapper userAtomMapper; @Override
public List<User> findAll() {
return userAtomMapper.finaAll();
}
4、看一下controller层的代码
@RestController
public class UserController {
@Autowired
private UserService userService;
/**
* 获取所有的用户
* @return
*/
@RequestMapping(value = "findAll",method = RequestMethod.GET)
public List<User> findAll(){
return userService.findAll();
}
}
使用了注解@RestController,这个注解相当于两个注解,@Controller和@ResponseBody
五、
接下来可以测试,在浏览器输入localhost:8080/findAll

SpringBoot之整合MyBatis的更多相关文章
- SpringBoot之整合Mybatis(增,改,删)
一,在上一篇文章SpringBoot之整合Mybatis中,我们使用spring boot整合了Mybatis,并演示了查询操作.接下来我们将完善这个示例,增加增,删,改的功能. 二,改动代码 1.修 ...
- SpringBoot系列-整合Mybatis(注解方式)
目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...
- springboot(二)整合mybatis,多数据源和事务管理
-- 1.整合mybatis -- 2.整合多数据源 -- 3. 整合事务 代码地址:https://github.com/showkawa/springBoot_2017/tree/master/ ...
- SpringBoot系列-整合Mybatis(XML配置方式)
目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...
- 【springboot】整合 MyBatis
转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合My ...
- SpringBoot (四) - 整合Mybatis,逆向工程,JPA
1.SpringBoot整合MyBatis 1.1 application.yml # 数据源配置 spring: datasource: driver-class-name: com.mysql.c ...
- SpringBoot之整合Mybatis范例
依赖包: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/ ...
- 玩转SpringBoot之整合Mybatis拦截器对数据库水平分表
利用Mybatis拦截器对数据库水平分表 需求描述 当数据量比较多时,放在一个表中的时候会影响查询效率:或者数据的时效性只是当月有效的时候:这时我们就会涉及到数据库的分表操作了.当然,你也可以使用比较 ...
- springboot项目整合mybatis
记录创建springboot项目并配置mybatis中间件: 资源准备及版本说明 编程工具:IDEA JDK版本:1.8 Maven版本:Apache Maven 3.6.3 springboot版本 ...
随机推荐
- “全栈2019”Java第一百一十章:局部内部类与匿名内部类区别详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 洛谷P5282 【模板】快速阶乘算法(多项式多点求值+MTT)
题面 传送门 前置芝士 \(MTT\),多项式多点求值 题解 这题法老当初好像讲过--而且他还说这种题目如果模数已经给定可以直接分段打表艹过去 以下是题解 我们设 \[F(x)=\prod_{i=0} ...
- [Swift]数学库函数math.h | math.h -- mathematical library function
常用数学函数 1. 三角函数 double sin (double);//正弦 double cos (double);//余弦 double tan (double);//正切 2 .反三角函数 d ...
- 5. STL编程五
1. STL的六大组件: 容器(Container) 算法(Algorithm) 迭带器(Iterator) 仿函数(Function object) 适配器(Adaptor) 空间配置器(alloc ...
- Linux之解决命令行cat命令中文乱码
临时解决cat中文乱码 cat test.txt | iconv -f GBK -t UTF-8
- 0、weka学习与使用
转载自:https://blog.csdn.net/u011067360/article/details/20844443 数据挖掘开源软件:WEKA基础教程 本文档部分来自于网络,随着自己的深入学习 ...
- 修改VS项目的目标平台(目标框架)
如果是正常的情况下.. 右键项目属性里就有修改的地方.. 可是有时候打开属性发现修改的下拉框是禁用的.. 这时候可以右键 "卸载项目" 编辑 .csproj 项目文件 在上方有个& ...
- AES对称加解密
简介设计思想加密模式ECB模式(电子密码本模式:Electronic codebook)CBC模式(密码分组链接:Cipher-block chaining)CFB模式(密文反馈:Cipher fee ...
- Mac 10.12安装流量监控软件Magican
说明:Magican这家公司已经不维护了,但是软件是单机版的,可以正常使用,但是有些10.12的机器应该是无法看到每个进程的明细,总速度可以正常显示. 下载: (链接: https://pan.bai ...
- asp.net 网站在Apache下的配置,就这么简单
asp.net 网站在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...