集成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. 13,viewport

    set viewport:~是一种函数,功能是为图形输出设置当前视口. 怎样处理移动端1px被渲染成2px的问题(略)

  2. Java常量/变量

    1. 常量 /* 常量:在程序运行期间,固定不变的量. 常量的分类: 1. 字符串常量:凡是用双引号引起来的部分,叫做字符串常量.例如:"abc"."Hello" ...

  3. SpringBoot+MyBatis+PageHelper分页无效

    POM.XML中的配置如下:<!-- 分页插件 --><!-- https://mvnrepository.com/artifact/com.github.pagehelper/pa ...

  4. CentOS7安装jenkis

    注意:终止运行Ctrl+c , 退回到shell命令Ctrl+d 一.先检查是否有java [root@huangyh huangyh]#  rpm -qa |grep java 或 java 因为C ...

  5. 【知识学习】Sublime Text 快捷键精华版

    Sublime Text 快捷键精华版 Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中的文件 Ctrl+G:跳转到第几行 Ctrl+W:关闭当前打开文件 Ctrl+Shift+W:关 ...

  6. WinForm开发(5)——DataGridView控件(3)——DataGridView控件操作

    一.禁止用户改变DataGridView的列宽.行高.列头高度 1.// 禁止用户改变DataGridView1的所有列的列宽 DataGridView1.AllowUserToResizeColum ...

  7. PHP序列化与反序列化(二)

    题目(攻防世界): __construct和__destruct的魔术方法是默认执行的,我们可以忽视他们,__wake up执行以后会返回当前主页上,需要绕过,下面的正则匹配preg_match也需要 ...

  8. same-security-traffic

    关于Inter-interface和intra-interface: 要允许具有相同安全级别的接口之间的通信,或允许流量进入和退出同一接口,请在全局配置模式下使用same-security-traff ...

  9. PW数据库ER图

  10. StudentManagerSSM

    web.xml              StudentManagerSSM.rar <?xml version="1.0" encoding="UTF-8&quo ...