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/springbootmybatisspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.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.Driverdatabase.url=jdbc\:mysql\://127.0.0.1\:3306/springbootmybatis?useUnicode\=true&characterEncoding\=UTF-8database.username=rootdatabase.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层的代码是如何编写的吧

@Mapperpublic 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层的代码

@Servicepublic class UserServiceImpl implements UserService {

@Autowired    private UserAtomMapper userAtomMapper;

@Override    public List<User> findAll() {        return userAtomMapper.finaAll();    }

4、看一下controller层的代码

@RestControllerpublic 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

原文地址:https://www.cnblogs.com/rrb520/p/10265745.html

时间: 2024-11-08 16:09:02

SpringBoot之整合MyBatis的相关文章

【springboot】整合 MyBatis

转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合MyBatis,在上一章的基础上进行扩展.废话少说,直接上代码. 2. pom 主要依赖如下: <dependencies> <!-- Spring Boot Web 依赖 --> <dependency> <groupId>org.springframework.

SpringBoot简单整合Mybatis

前言 虽然之前跟着别人的视频做了一个SpringBoot的一个小项目,但是一直不太明白怎么将SpringBoot和Mybatis整合在一起,所以,今天花了一点时间用他们做了一个demo,并作了以下的总结,帮助自己更好的掌握好他们的使用. 项目搭建 创建项目 新建一个Spring Initializr项目 创建项目的文件结构以及jdk的版本 此demo选择的JDK版本为1.8 选择项目所需要的依赖 在WEB里面选择”Spring Web Starter”在SQL里面选择”Mysql Driver”

玩转SpringBoot之整合Mybatis拦截器对数据库水平分表

利用Mybatis拦截器对数据库水平分表 需求描述 当数据量比较多时,放在一个表中的时候会影响查询效率:或者数据的时效性只是当月有效的时候:这时我们就会涉及到数据库的分表操作了.当然,你也可以使用比较完善的第三方组件:sharding-jdbc来实现:但是你使用后会发现,貌似对oracle的兼容性不是很好.所以最后我还是决定使用Mybatis拦截器对数据库进行水平分表. 为什么要选用Mybatis拦截器 拦截器:我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可

springBoot 整合 mybatis+Oracle

现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便. 添加mybatis关键就是要引入mybatis-spring-boot-starter到pom文件中,如果你用MySQL,那就引入MySQL的pom文件,这里我用Oracle,淡然要引入Oracle的依赖了.添加完成mybatis和Oracle 在pom.xml 文件中的引入. <!-- 链接Oracle

SpringBootSecurity学习(08)网页版登录整合MyBatis

创建数据库 前面介绍了springboot-security整合jdbc从数据库中查询用户的方式,适用性有限,下面介绍最常用的整合MyBatis,这种在开发和生产环境中是最常用,也是最实用的.首先需要创建数据库表,我们来创建三张表,分别是用户表,角色表,还有用户角色表,首先看用户表: 只有三个字段,具体业务中需要几个字段完全由我们自己设计.密码是admin,是加密的,后面的配置中会看到加密方式,与前面介绍的在内存中配置默认用户的方式类似.下面看角色表: 注意每个角色名字的前面都加了一个ROLE_

SpringBoot 2.SpringBoot整合Mybatis

一.创建Springboot的配置文件:application.properties SpringApplication 会从 application.properties 文件中加载配置信息,下面是添加Spring配置信息的文件目录顺序: 当前目录下的/config子目录中 当前目录中 一个 classpath 包下的 /config 目录中 classpath 根目录中 大家根据自己习惯来即可. /application.properties 文件配置如下: spring.datasourc

springboot学习笔记-2 一些常用的配置以及整合mybatis

一.一些常用的配置 1.1 使用没有父POM的springboot 通过添加scope=import的依赖,仍然能获取到依赖管理的好处: <dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId>

SpringBoot整合MYBATIS,多数据源,事务,支持JAVA -JAR 启动.

用了一段时间SpringBoot,之前配置MYBATIS ,在打包WAR 放到tomcat下正常,但是WAR已经过时了,现在流行直接打包JAR 丢到DOCKER 里,无奈JAR 启动的时候MAPPER 扫描有问题,只能说之前整合MYBATIS 的方式不对. 这次的整合应该是不存在加载顺序引起的问题,使用了一段时间,妥妥的,记录下来 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artif

springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件

整合mybatis实在前面项目的基础上进行的,前面项目具体整合请参照springboot使用之一. 一.整合mybatis 整合mybatis的时候可以从mybatis官网下载mybatis官网整合的项目mybatis-spring-boot-start.对原理感兴趣可以研究2一下,这里只叙述步骤. 引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybati