SpringBoot_11_整合MyBatis
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
整合测试
导入 MyBatis 所需要的依赖
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version> </dependency>
配置数据库连接信息
这我们使用
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
测试数据库是否连接成功!
创建实体类,导入 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; }
创建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); }
对应的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>
maven配置资源过滤问题
<resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>true</filtering></resource> </resources>
编写部门的 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相关推荐
- SpringBoot整合MyBatis详细教程~
目录 1. 导入依赖 2. 连接数据库 3. 编写数据库配置信息 4. 编写pojo实体类 5. 编写mapper接口 6. 编写mapper.xml 7. 编写controller 8. 测试 1. ...
- MyBatis - 6.Spring整合MyBatis
1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...
- mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- Spring Boot 教程(三): Spring Boot 整合Mybatis
教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...
- SpringBoot第六篇:springboot整合mybatis
本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...
- Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 公司需要人.产品.业务和方向,方向又要人.产品.业务和方向,方向- 循环』 本文提纲 一 ...
- spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试
引子:spring整合mybatis.因为,我们看完(我就是这样的)spring和mybatis之后,本想自己写一个小小的项目,以便加深理解,但是我发现在spring中整合mybatis并不是一件容易 ...
- Play Framework 2.5 整合 MyBatis
为什么80%的码农都做不了架构师?>>> 因为不想用 Play 官方支持的一些 ORM 框架,笔者开始在网上查询 Play 怎么整合 MyBatis ,但搜出来的结果往往都是 ...
- spring boot 整合mybatis 无法输出sql的问题
使用spring boot整合mybatis,测试功能的时候,遇到到了sql问题,想要从日志上看哪里错了,但是怎么都无法输出执行的sql,我使用的是log4j2,百度了一下,很多博客都说,加上下面的日 ...
最新文章
- Visual C++ 对话框增加菜单栏
- 如何在迭代时从列表中删除项目?
- [转] UML类图的几种关系总结
- 全局莫兰指数_空间自相关 | 莫兰指数
- 常量表达式不允许函数调用_SQLite特殊索引之表达式索引
- Huber损失最小化学习法
- 计算机处理器基础原理笔记
- VC 轻松实现非客户区按钮
- 做好规划 IT项目不能再独行(zt)
- 操作系统基础(八)快表和多级页表
- 传奇SF的架设-开外网
- JS检查日期是否为工作日
- java图片合成视频_使用JAVACV把图片合成视频
- access身份证号掩码_access中怎么设置掩码控制数字范围
- window中如何用命令行新建文件夹和文件
- 在后台删除新闻时,需要删除服务器上的文件夹
- 怎么看C盘里隐藏的文件
- 一维地震子波合成记录c语言,地震子波波形显示及一维地震合成记录
- progressview_SwiftUI中的ProgressView
- 【Android 插件化】VirtualApp 接入 ( 在 VirtualApp 工程下创建 Module | 添加依赖 | 启动 VirtualApp 插件引擎 )