SpringBoot_11_整合MyBatis

news/2024/5/19 9:22:54/文章来源:https://blog.csdn.net/ayoM_/article/details/126667654

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";}
    }
    

启动项目访问进行测试!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4799.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue——整理一些开源管理平台项目

【VUE2】 vue-element-admin Git代码仓库&#xff1a;https://github.com/PanJiaChen/vue-element-admin.git Gitee代码仓库&#xff1a;https://gitee.com/wry-vue-demo/vue-element-admin-wry &#xff08;不定期同步&#xff09; 官方文档&#xff1a;https://panjiachen.g…

优雅的实现EasyPoi动态导出列的两种方式

文章目录前言一、基于Excel的 isColumnHidden 属性1.1 实现原理1.2 实现步骤1.3 实现效果二. 基于List< ExcelExportEntity > 的导出2.1 实现效果总结前言 嗨&#xff0c;大家好&#xff0c;我是希留。 项目里使用的是EasyPoi来处理导入导出功能的。近日因业务需求调整…

基于springboot+vue的游戏交流论坛系统 elementui

随着时代的发展&#xff0c;人们对手机和电脑的依赖越来越严重。很多时候人们会在下班之后或者下课之后和寝室以及朋友们来一盘游戏。以度过这些空闲时间。但是对于更多的人来说&#xff0c;他们可能是在孤军奋战&#xff0c;并没有更多的朋友和同学去进行交流&#xff0c;这个…

【目标检测算法】YOLO-V1~V3原理梳理

文章目录one-stage 与 tow-stage评价指标YOLO算法整体思路解读YOLO-V1YOLO-V2YOLO-V3one-stage 与 tow-stage 本篇博客主要介绍经典检测方法中的one-stage&#xff08;单阶段&#xff09;&#xff0c;在这里给自己埋个坑&#xff0c;整理完Yolo再去搞tow-stage。 one-stage:tow…

x64dbg 插件开发环境配置

x64dbg 是一款开源的应用层反汇编调试器,旨在对没有源代码的可执行文件进行恶意软件分析和逆向工程,同时 x64dbg 还允许用户开发插件来扩展功能,插件开发环境的配置非常简单,如下将简单介绍x64dbg是如何配置开发环境以及如何开发插件的。x64dbg 是一款开源的应用层反汇编调…

计算机网络——传输层の选择题整理

传输层提供的服务 1、可靠传输协议中&#xff0c;可靠指的是&#xff08;&#xff09; A、使用面向连接的会话 B、使用尽力而为的传输 C、使用滑动窗口来维持可靠性 D、使用确认机制来确保传输的数据不丢失 解析&#xff1a;选D 对于A&#xff0c;使用面向连接的会话&#xff…

hadoop学习使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、hadoop的作用&#xff1f; hadoop是什么&#xff1f;hadoop能做什么&#xff1f;搭建HadoopHA高可用集群 1普通集群配置文件2 高可用集群配置 整理和记录搭建…

Hadoop伪分布式搭建

搭建环境&#xff1a; centos6.5 vm16 jdk1.8 hadoop 2.6.5 1.先设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 #HWADDR00:0C:29:42:15:C2 TYPEEthernet ONBOOTyes NM_CONTROLLEDyes BOOTPROTOstatic IPADDR192.168.90.11 NETMASK255.255.255.0 GA…

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球/聚苯乙烯塑料微球聚乙烯醇相关知识

单分散亚微米聚苯乙烯—聚乙酸乙烯酯(P(St-VAc))聚合物微球相关研究&#xff1a; 互贯聚合物网络( the interpenetrating polymernetworks,简称IPNs)是由两种或两种以上的交联聚合物互相贯穿而形成的一种聚合物合金体系["。由于形成IPNs时两网之间的互贯和缠结&#xff0…

阿里巴巴按关键字搜索商品 API 返回值说明

请求参数 请求参数&#xff1a;q眼镜&start_price0&end_price0&page1&cat0&discount_only&sort&page_size40&seller_infono&nick&seller_info&nick&ppath&imgid&filter 参数说明&#xff1a;q:搜索关键字 cat:分类I…

天花板级别的python读取文件方法,真的香.......

嗨害大家好鸭&#xff01; 我是小熊猫❤ 咱今天来了解一下 fileinput 说到fileinput&#xff0c;可能90%的码农表示没用过&#xff0c;甚至没有听说过。 这不奇怪&#xff0c;因为在python界&#xff0c;既然open可以走天下&#xff0c;何必要fileinput呢&#xff1f; 但是…

Dubbo线程池

前言 Dubbo使用Netty作为网络调用框架&#xff0c;Netty是一个Reactor模型的框架&#xff0c;线程模型分为boss线程池和worker线程池&#xff0c;boss线程池负责监听、分配事件&#xff0c;worker线程池负责处理事件&#xff0c;简单说就是boss线程池负责hold请求&#xff0c;并…

C# FileSystemWatcher 多文件夹、多文件类型文件监控增加、修改、重命名和删除实例

在上一次讲过了FileSystemWatcher 实时监控文件的增加、修改、重命名和删除&#xff0c;具体怎么实现就不再去阐述&#xff0c;参考如下文 C# FileSystemWatcher 实时监控文件的增加、修改、重命名和删除实例 但只是实现了单个目录和全部或单类文件的监控&#xff0c;示例中通…

人工智能学习日记------KNN分类

机器学习&#xff1a;让计算机通过学习具有像人一样的分类能力。 机器学习中的分类任务&#xff1a;分类、回归、聚类、关联规则挖掘。 分类的定义&#xff1a;根据对某一事物的认识&#xff08;经验&#xff09;来判断之前未见过的实例&#xff08;新对象&#xff09;是否属于…

远程线程注入

第一节 前置知识提起远程线程注入,大家有可能会理解为我在广西,你在北京,我注入你的线程。其实并不是这个样子。 系统在每次运行一个exe 程序的时候系统会默认分配一个4G 的地址空间,给这个exe 程序。 然而,我们的系统有16G、32G等等。那岂不是只能运行几个exe 程序了? 其…

网课答案搜题公众号平台

网课答案搜题公众号平台 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;…

【JavaScript面试】数组的forEach()方法总结

前言 JavaScript数组的 forEach()方法总结。 这里写目录标题前言JavaScript数组的 forEach()方法总结。语法特点一般面试问题有了for循环&#xff0c;为什么还要forEach?1. for循环和forEach的本质区别&#xff1f;2. for循环和forEach的语法区别&#xff1f;3. for循环和forE…

idea jsp文件 高亮_有了这几款idea插件后,同事再也不叫我小白了

不管是开发还是测试&#xff0c;撸代码都用的一款神器&#xff0c;那就是神器idea了&#xff0c;那么&#xff0c;idea插件则是必不可少的&#xff0c;不仅可以提高逼格&#xff0c;而且可以增加撸代码的乐趣&#xff0c;以Mac为例&#xff0c;我们来看下吧。 以下插件插件直接…

Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头提起Java领域中的锁,是否有种“道不尽红尘奢恋,诉不完人间恩怨“的”感同身受“之感?细数那些个“玩意儿”,你对Java的热情是否还如初恋般“人生若只如初见”? Java中对于…

工作十多年后反思自己为什么没有成为牛逼程序员

背景 本人87年生&#xff0c;2010年毕业与苏州某二本院校软件工程专业&#xff0c;先后就职于某不知名外企、前几年大裁员的某欧美数据库公司、某不知名A轮死创业公司。目前在苏州某小公司&#xff0c;跟着某客户做某宝、某音、某多多开放平台服务商&#xff0c;担任全烂工程师…