集成MyBatis

(1)在pom.xml中添加依赖

        <!-- mybatis的起步依赖。包含了mybatis、mybatis-spring、spring-jdbc(事务要用到)的坐标 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<!--这个必须要加版本号-->
<version>2.1.1</version>
</dependency> <!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

(2)编写实体类,包名常用model、domain

不需要在实体类上标@Component。

(3)新建包com.chy.mapper,编写mapper接口。

@Mapper
public interface UserMapper{
public User queryUserById(Integer id);
}

在接口上标注@Mapper,不用标注@Repository。

(4)在resource下新建文件夹mapper,编写mybatis的映射文件

<?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.chy.mapper.UserMapper">
<select id="queryUserById" parameterType="Integer" resultType="user">
select * from user_tb where id=#{id}
</select>
</mapper>

注意namespace要和mapper接口对应。

springboot的src/java下只放java源文件,配置文件、静态资源、映射文件都放到src/resources下。

sql语句也可以直接写在mapper接口中:

@Mapper
public interface UserMapper{
@Select("select * from user_tb where id=#{id}")
public User queryUserById(@Param("id") Integer id);
}

@Param绑定占位符#{ }、${ }中的变量

@Select、@Update、@Insert、@Delete 、@Mapper 都是mabatis的注解,在普通mybatis中也可以用

只能写简单的sql语句,如果要使用resultmap映射结果集、关联映射等复杂一点的,还是需要xml映射文件。

注解方式有点鸡肋,现在主流还是xml映射文件方式

每次都需要在Mapper接口上标注@Mapper,很麻烦,可以直接在引导类上标注@MapperScan("com.chy.dao"),会自动把这个包下的接口都加上@Mapper注解。

如果要扫描|添加多个包,写成String[ ],@MapperScan( { "包1" , "包2" } )。

注意是@MapperScan,不是@MapperScans,末尾没有s。

(5)编写service、controller

在service中使用@Autowired注入Mapper时,会报红,实际上没问题。

有强迫症不喜欢看红色的,可以将@Autowired换为@Resource。

Spring官方推荐把@Autowired用来设值注入(写在方法上),不推荐把@Autowired用来字段注入(直接写在成员变量上)。

(6)在springboot的配置文件中配置数据库、mybatis

#配置数据源,此处使用jdbc数据源、mysql数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/my_db?serverTimezone=GMT
spring.datasource.username=chy
spring.datasource.password=abcd #配置mybatis
#配置实体类的别名
mybatis.type-aliases-package=com.chy.model
#指定映射文件的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

注意:jdbc数据源、dbcp数据源、tomcat数据源使用的key是不同的。


集成Spring的事务管理

集成mybatis导入的依赖中已经包含了事务管理需要的依赖,所以不需要在pom.xml中再添加依赖,直接在service层要加事务的业务方法上标注@Transactional即可。

SpringBoot 集成MyBatis、事务管理的更多相关文章

  1. SpringBoot学习笔记(三):SpringBoot集成Mybatis、SpringBoot事务管理、SpringBoot多数据源

    SpringBoot集成Mybatis 第一步我们需要在pom.xml里面引入mybatis相关的jar包 <dependency> <groupId>org.mybatis. ...

  2. MyBatis6:MyBatis集成Spring事务管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事务管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事务的做法,本文的目的是在这个的基 ...

  3. MyBatis(5):MyBatis集成Spring事务管理(上)

    单独使用MyBatis对事务进行管理 前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表: 1 2 ...

  4. SpringBoot(十):SpringBoot的简单事务管理

    SpringBoot集成Mybatis之后,进行事务管理.SpringBoot使用事务非常简单,底层依然采用的是Spring本身提供的事务. 1.在入口类中使用注解@EnableTransaction ...

  5. spring,mybatis事务管理配置与@Transactional注解使用[转]

    spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述事务管理对于企业应用来说是至关 ...

  6. springboot集成mybatis(一)

    MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...

  7. springMVC+mybatis事务管理总结

    1.spring,mybatis事务管理配置与@Transactional注解使用: 概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framewo ...

  8. spring,mybatis事务管理配置与@Transactional注解使用

    spring,mybatis事务管理配置与@Transactional注解使用[转]   spring,mybatis事务管理配置与@Transactional注解使用 概述事务管理对于企业应用来说是 ...

  9. 0120 springboot集成Mybatis和代码生成器

    在日常开发中,数据持久技术使用的架子使用频率最高的有3个,即spring-jdbc , spring-jpa, spring-mybatis.详情可以看我之前的一篇文章spring操作数据库的3个架子 ...

  10. SpringBoot集成MyBatis底层原理及简易实现

    MyBatis是可以说是目前最主流的Spring持久层框架了,本文主要探讨SpringBoot集成MyBatis的底层原理.完整代码可移步Github. 如何使用MyBatis 一般情况下,我们在Sp ...

随机推荐

  1. Vim常用按键大全

    Vim完全可以用键盘进行操作.本文将常用的按键归纳总结. 第一部分:一般模式可用的按钮,如光标移动.复制粘贴.查找替换等 移动光标的方法 h, j, k, l 光标向左,下,上,右移动 Ctrl + ...

  2. toSum

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  3. 安装Linux系统后配置的一般步骤

    安装linux后配置的一般步骤 最近在尝试不同的linux系统,记录一下安装完linux之后常用的软件的安装方法 1.源的更新 ubuntu 源的更新方法 参考(没有测试过,但是都大同小异,不行就换一 ...

  4. innerAudiocontext的坑

    链接:https://blog.csdn.net/sourcemyx/article/details/79424004 像wx.onNetworkStatusChange(function(){})回 ...

  5. IDEA 导出可执行jar包【转载】

    1,在项目上鼠标右键 --> Open Module Settings,或者[shift+ctrl+alt+s] 2, Artifacts --> + --> JAR --> ...

  6. 制作手风琴效果时发现新大陆,好吧,其实是一个bug

    手风琴效果代码: <!DOCTYPE html> <html>    <head>         <meta charset="utf-8&quo ...

  7. ASCII码排序 题解

    1. while(scanf("%c%c%c%*c",&a,&b,&c)!=EOF) 这里需要注意  输入多组语句 while后面不能加分号: 2.%*c& ...

  8. mysql数据库数据备份还原

    1.直接在命令行里面执行 备份一个数据库:mysqldump -h server -u username -p password db_name > database-sqlbkp_`date ...

  9. Thread线程

    1.什么是线程? 线程( Thread ) 被称作轻量级进程( Lightweight Process ),线程是比进程更小一级的执行单元. 一个进程可以有多个线程,但至少有一个线程(当进程被初始化后 ...

  10. IOS XE-show memory

    有些时候,我们可能会遇到IOS XE设备的high memory的情况.我们可以使用的命令去查看相关信息. 例如: Router# show version Router# show memory R ...