SpringBoot_11_整合MyBatis

  • 整合MyBatis
    • 整合测试

整合MyBatis

官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.3

整合测试

  1. 导入 MyBatis 所需要的依赖

    <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version>
    </dependency>
    
  2. 配置数据库连接信息

    这我们使用druid-spring-boot-starter

    <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.11</version>
    </dependency>
    
    spring:datasource:username: rootpassword: '0000'#?serverTimezone=UTC解决时区的报错url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourcedruid:# 数据库连接池最大值max-active: 20# 数据库连接池初始值initial-size: 5# 数据库连接池最小空闲值min-idle: 5# 池中空闲连接大于minIdle且连接空闲时间大于该值,则关闭该连接,单位毫秒(5分钟,默认30分钟)min-evictable-idle-time-millis: 300000# 获取连接时最大等待时间,单位毫秒(1分钟)max-wait: 60000# 检测连接是否有效时执行的sql命令validation-query: select 1# 借用连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能test-on-borrow: false# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能test-on-return: false# 连接空闲时检测,如果连接空闲时间大于timeBetweenEvictionRunsMillis指定的毫秒,执行validationQuery指定的SQL来检测连接是否有效test-while-idle: true# 空闲连接检查、废弃连接清理、空闲连接池大小调整的操作时间间隔,单位是毫秒(1分钟)time-between-eviction-runs-millis: 60000# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500#是否启用StatFilter默认值false,用于采集 web-jdbc 关联监控的数据。web-stat-filter:enabled: true#需要监控的 urlurl-pattern: /*#排除一些静态资源,以提高效率exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'#是否启用StatViewServlet(监控页面)默认值为false(考虑到安全问题默认并未启动,如需启用建议设置密码或白名单以保障安全)stat-view-servlet:enabled: true#内置的监控页面地址,例如 /druid/*,则内置监控页面的首页是 /druid/index.htmlurl-pattern: /druid/*#是否允许清空统计数据reset-enable: falselogin-username: adminlogin-password: admin
    
  3. 测试数据库是否连接成功!

  4. 创建实体类,导入 Lombok!

    User.java

    package com.lee.pojo;import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;@Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {private int id;private String name;private String pwd;
    }
    
  5. 创建mapper目录以及对应的 Mapper 接口

    UserMapper.java

    package com.lee.mapper;import com.lee.pojo.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;import java.util.List;// 这个注解表示了这是一个 mybatis 的 mapper 类
    @Mapper
    @Repository
    public interface UserMapper {List<User> queryUserList();User queryUserById(int id);int addUser(User user);int updateUser(User user);int deleteUser(int id);
    }
    
  6. 对应的Mapper映射文件

    UserMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--namespace=绑定一个对应的Dao/Mapper接口-->
    <mapper namespace="ncom.lee.mapper.UserMapper"><select id="queryUserList" resultType="User">select * from mybatis.user;</select><select id="queryUserById" resultType="User">select * from mybatis.user where id = #{id};</select><insert id="addUser" parameterType="User">insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});</insert><update id="updateUser" parameterType="User">update mybatis.user set name=#{name},pwd = #{pwd} where id = #{id};</update><delete id="deleteUser" parameterType="int">delete from mybatis.user where id = #{id}</delete>
    </mapper>
    
  7. maven配置资源过滤问题

    <resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>true</filtering></resource>
    </resources>
    
  8. 编写部门的 UserController 进行测试!

    @RestController
    public class UserController {@Autowiredprivate UserMapper userMapper;@GetMapping("/queryUserList")public List<User> queryUserList() {List<User> userList = userMapper.queryUserList();for (User user : userList) {System.out.println(user);}return userList;}//添加一个用户@GetMapping("/addUser")public String addUser() {userMapper.addUser(new User(8,"阿毛","123456"));return "ok";}//修改一个用户@GetMapping("/updateUser")public String updateUser() {userMapper.updateUser(new User(8,"阿毛","123456"));return "ok";}@GetMapping("/deleteUser")public String deleteUser() {userMapper.deleteUser(8);return "ok";}
    }
    

启动项目访问进行测试!

SpringBoot_11_整合MyBatis相关推荐

  1. SpringBoot整合MyBatis详细教程~

    目录 1. 导入依赖 2. 连接数据库 3. 编写数据库配置信息 4. 编写pojo实体类 5. 编写mapper接口 6. 编写mapper.xml 7. 编写controller 8. 测试 1. ...

  2. MyBatis - 6.Spring整合MyBatis

    1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...

  3. mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  4. Spring Boot 教程(三): Spring Boot 整合Mybatis

    教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...

  5. SpringBoot第六篇:springboot整合mybatis

    本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...

  6. Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 公司需要人.产品.业务和方向,方向又要人.产品.业务和方向,方向- 循环』 本文提纲 一 ...

  7. spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试

    引子:spring整合mybatis.因为,我们看完(我就是这样的)spring和mybatis之后,本想自己写一个小小的项目,以便加深理解,但是我发现在spring中整合mybatis并不是一件容易 ...

  8. Play Framework 2.5 整合 MyBatis

    为什么80%的码农都做不了架构师?>>>    因为不想用 Play 官方支持的一些 ORM 框架,笔者开始在网上查询 Play 怎么整合 MyBatis ,但搜出来的结果往往都是 ...

  9. spring boot 整合mybatis 无法输出sql的问题

    使用spring boot整合mybatis,测试功能的时候,遇到到了sql问题,想要从日志上看哪里错了,但是怎么都无法输出执行的sql,我使用的是log4j2,百度了一下,很多博客都说,加上下面的日 ...

最新文章

  1. boost::mp11::mp_transform_third相关用法的测试程序
  2. 【高并发】掌握JUC中的阻塞队列
  3. 案例学习BlazeDS+Spring之一(
  4. python如何提高程序可读性_Python规范:提高可读性
  5. js 求数组中最小值
  6. kali-linux学习笔记及经验总结(持更)
  7. 绵阳市:充分利用区块链等技术 为农民工证照办理提供线上便捷服务
  8. 三星android智能手机usb驱动程序,三星手机驱动官方下载
  9. c++回调函数详解及实现(lambda)
  10. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理(cv2.threshold)
  11. 项目技术管理经验总结
  12. 爱荷华州立 计算机博士,美国爱荷华州立大学无损检测中心裴宁博士来我院讲学...
  13. 国税服务器反回文件错误,电子税务局常见问题解答电子税务局异常转办(一).pdf...
  14. 【GO语言编程】(二)
  15. 在多台终端设备的i茅台应用中,实现同时自动化预约X酒的解决方案
  16. identifier “ “ is undefined 错误
  17. 2016教师节微信祝福语大全
  18. 我的U盘也不见了 (搞笑版,笑死我了)
  19. 贤弟单腾,因崔思婷,机器人类打字~~~~~~
  20. 男生如何正确的识别绿茶婊

热门文章

  1. MySQL_DDL数据定义语言_刘锋的博客
  2. 国产化FLASH芯片调试(HI3531DV200平台)
  3. 【 C++ 】哈希表底层结构剖析
  4. preg_match函数的用法和匹配字符的的含义
  5. 毕业设计之 - 基于java的CRM客户关系管理系统的设计与实现【源码+论文】
  6. mysql5.7免安版配置_Window Mysql5.7免安装版配置
  7. Win7 可关闭的服务启动项
  8. 群晖系统Synology DSM安装ipkg包管理
  9. 微信小程序登陆后的页面显示tabbar
  10. 简单粗暴的分布式定时任务解决方案