mybatis 的快速入门以及基于spring boot整合mybatis(一)

MyBatis基础

MyBatis是一款非常优秀的持久层框架,用于简化JDBC的开发

准备工作:
   1,创建sprong boot工程,引入mybatis相关依赖2,准备数据库表User,实体类User3, 配置MyBatis(在application.properties中数据库连接信息)4,编写Mybatis程序:编写MyBatis的持久层接口,定义SQL(注解/XML)

创建spring boot工程,并且引入相关的依赖。

1,在自己的工程下右击,然后点击new,选择module。

选择:spring Initializr 右边的配置根据自己情况选择。

选择spring boot的版本和要添加的依赖,最后点击创建。

查看pom文件

         <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.31</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.11</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>

2,准备数据库库表user

create table user(id int unsigned primary key auto_increment comment 'ID,主键',username varchar(20) comment '用户名',password varchar(32) comment '密码',name varchar(10) comment '姓名',age tinyint unsigned comment '年龄'
) comment '用户表';insert into user(id, username, password, name, age) values (1, 'daqiao', '123456', '大乔', 22),(2, 'xiaoqiao', '123456', '小乔', 18),(3, 'diaochan', '123456', '貂蝉', 24),(4, 'lvbu', '123456', '吕布', 28),(5, 'zhaoyun', '12345678', '赵云', 27);

和实体类User


@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer id;private String username;private String password;private String name;private Integer age;
}

3,在application.properties配置文件中添加连接数据库的配置。

#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
spring.datasource.username=root
spring.datasource.password=root

4,编写程序测试:

在com.sde包下创建子包mapper包,并创建一个UserMapper接口

mapper接口的代码:
@Mapper
public interface UserMapper {/*** 根据用户名查询* @param username* @return*/@Select("select * from user where username = #{username}")public User getByUsername(String username);/*** 查询全部用户* @return*/@Select("select id, username, password, name, age from user")public List<User> selectAll();/*** 根据id删除* @param id*/@Delete("delete from user where id = #{id}")public void delUser(Integer id);/*** 根据id修改用户信息* @param user*/@Update("update user set username = #{username},password = #{password},name = #{name},age = #{age} where id = #{id}")public void updateUser(User user);/*** 添加用户信息* @param user*/@Insert("insert into user values(null,#{username},#{password},#{name},#{age})")public void addUser(User user);}
在test类中测试

代码:

   @Autowiredprivate UserMapper2 userMapper;@Test@DisplayName("测试查询全部")public void testSelectAll(){List<User> userList = userMapper.selectAll();userList.forEach(e -> System.out.println(e));}@Test@DisplayName("测试删除")public void testDel(){userMapper.delUser(8);}@Test@DisplayName("测试修改")public void testUpdate(){userMapper.updateUser(new User(7,"wxx","111","王星星",20));}@Test@DisplayName("测试添加")public void testAdd(){userMapper.addUser(new User(null,"java","111222","Java开发",55));}@Test@DisplayName("测试根据用户名查询")public void testGetByUsername(){User user = userMapper.getByUsername("daoen");System.out.println(user);}

辅助配置:
语法提示配置
  • 在写mysql语句的行,右击找到 Show Context Action。
  • 然后点击,inject language for reference。
  • 找到MySQL点击确定。
  • 当已经配置过这个语法提示的时候,在点击Show Context Action,会出现 Uninject language for reference。点击一下就去掉了语法提示。在重复上面的步骤,添加即可。

然后找到 inject language for reference

选择MySQL 双击即可。

 看这里代码颜色就不一样了。

如果已经配置,在SQL语句上面右击,会出现  Uninject language for reference。点击这个就去掉了。

看效果:SQL语句全部变成了绿色。就去掉了

 

日志输出:

默认情况下,我们在mybatis中SQL语句执行时,我们看不到SQL语句执行的日志,配置一下配置,就可以看到在控制台输出的sql语句提示了。

在application.properties 配置文件中。添加 一面代码就行

#mybatis 的日志信息 -- 输出控制台 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sde01
spring.datasource.username=root
spring.datasource.password=root#mybatis 的日志信息  -- 输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

 JDBC VS Mybatis  对比

看图说话

mybatis相比于jdbc可以很好的操作数据库并且能够简化代码开发。所以我们在以后项目和开发中,选取的是mybatis。

数据库连接池

  • 1,数据库连接池是一个容器,负责分配、管理数据库连接(Connection)。
  • 2,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
  • 3,释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。

优势:

​ 资源重用 ​

提升系统响应速度

​ 避免数据库连接遗漏 ​

标准接口:DataSource ​

官方(sun)提供的数据库连接池接口,由第三方组织实现此接口。

功能:获取连接 ​ Connection getConnection() throws SQLException;

常见产品:

Druid(德鲁伊) ​

  • 功能强大,性能优秀,是Java语言最好的数据库连接池之一
  • Druid连接池是阿里巴巴开源的数据库连接池项目

spring boot默认使用的是 Hikari连接池

通过上面的图片,我们可以看到,即便我们没有配置数据库连接池,也是有数据库连接池的。是spring boot默认自带的连接池(Hikari 追光者) 

现在我们配置我们的国产数据库连接池 Druid数据库连接池。

先引入依赖:

        <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.11</version></dependency>

在application.propertise 配置文件里面配置

配置的代码信息:

#配置druid连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tlias
spring.datasource.username=root
spring.datasource.password=root

xml映射配置

在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句。

规则:

  • ​ 1,XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。
  • 2,XML映射文件的namespace属性为Mapper接口全限定名一致。
  • 3,XML映射文件中sql语句的id与Mapper 接口中的方法名一致,并保持返回类型一致。

1,同包同名:

在resource是目录下,右击点击new然后选择Directory

切记在Directory里面,不是以逗号分割,而是用/分割。因为在电脑中,不同级别的目录,是/分开的,不是点。

这是一个错误的示范:

下面这个是正确的示范:

 

 点击回车就创建成功了。

刚创建好长这样,下面添加一个和UserMapper,同名的xml文件

 然后就创建成功了。

xml根标签

<?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=""><!--根节点--></mapper>

 2,namespace属性为Mapper接口全限定名一致

右击UserMapper接口,点击 Copy Path/Refernence

接着点击  copy Reference

 

最后粘贴到 刚刚创建的UserMapper.xml 配置文件中的namespace里面

3,sql语句的id与Mapper 接口中的方法名一致

在UserMapper接口里面 

在xml文件里面

<?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.sde.mapper.UserMapper"><!--根节点--><select id="selectAll" resultType="com.sde.pojo.User">select * from user</select></mapper>

在service包下面编写UserService接口

 在service包里面,在创建一个子包,impl包,并创建UserServiceImpl这个实现类

 在controller包中编写 UserController 

 启动项目,在Apifox里面测试

看控制台的输出

MyBatisX:

是一款基于 IDEA 的快速开发Mybatis的插件,为效率而生。

安装:

点击 file然后点击settings 找到 plugs搜索要下载的插件,然后点击install。

因为我是之前就下载好的,所以页面提示让我更新。没有安装过的话,会先让安装。

 安装好之后,就会发现我们的页面左侧就多了一个小鸟的标记。

安装好mybatisX插件之后,会发现我们在接口里面定义好方法,如果还没有写SQL语句,他会有一个红色的波浪线提示我们。

在红色波浪线处,右击就会出现这个页面。

点击 Generate statement 

 然后它就会在UserMapper.xml配置文件中生成一个标签。

 点击这边的小鸟,可以跳转到绑定的类或者对应接口的方法。

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

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

相关文章

前端打包环境配置步骤

获取node安装包并解压 获取node安装包 wget https://npmmirror.com/mirrors/node/v16.14.0/node-v16.14.0-linux-x64.tar.xz 解压 tar -xvf node-v16.14.0-linux-x64.tar.xz 创建软链接 sudo ln -s 此文件夹的绝对路径/bin/node /usr/local/bin/node&#xff0c;具体执行如下…

实现手机扫码——扫描识别路由器参数

有个应用是批量自动检测无线路由器&#xff0c;检测前需要自动登录路由器的管理界面进行设置&#xff0c;如设置wifi参数、连接模式&#xff0c;或者恢复出厂设置等。进入管理界面的登录用户名是admin&#xff0c;密码则各不相同。此外也需要知道路由器的MAC地址&#xff0c;因…

【已解决】Win7虚拟机安装VMtools报错

在做以前的实验的时候发现要用到Win7虚拟机&#xff0c;于是就安装了一个Win7的虚拟机&#xff0c;但是发现屏幕太小&#xff0c;而且来回复制文本、复制文件太不方便了&#xff0c;索性就安装了VMtools&#xff0c;发现还安装不成– 情况1 报错&#xff1a;本程序需要您将此…

视频转场PR素材|专业级电影故障闪光效果视频过渡PR转场模板

这是一个以故障为主题的专业级电影故障闪光效果视频过渡pr转场模板。使用这些效果来增强视觉效果。包含视频教程。适用软件&#xff1a;Premiere Pro 2023|分辨率&#xff1a;38402160&#xff08;4K&#xff09; 来自PR模板网&#xff1a;https://prmuban.com/36092.html

数据库后门是什么?我们要如何预防它的危害

数据库后门是黑客在数据库中安装的一种特殊程序或代码&#xff0c;可以绕过正常的认证和授权机制&#xff0c;从而获取数据库的敏感信息或者控制整个数据库。黑客可以通过各种方式安装后门&#xff0c;比如利用漏洞、钓鱼、社会工程学等。 数据库后门的危害主要体现在以下几个方…

10 大 Android 手机系统修复软件深度评测

您的新 Android 手机可能因其令人兴奋的性能而印象深刻。然而&#xff0c;随着时间的推移&#xff0c;您可能会发现系统有些地方与以前不太一样。您可能会遇到屏幕无响应、 Android应用程序崩溃、连接问题、电池耗尽等现象。 10 大 Android 手机系统修复软件 好吧&#xff0c;…

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…

老胡的周刊(第119期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 Weekly Hub[2] 汇聚优质精选技术周刊&#x…

虹科Pico汽车示波器 | 汽车免拆检修 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车&#xff0c;搭载10UF01发动机&#xff0c;累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修&#xff0c;维修人员用故障检测仪检测&#xff0c;提示气缸3失火&#xff1b;与其他气缸对调点火线…

【开源】基于Vue.js的房屋出售出租系统

文末获取源码&#xff0c;项目编号&#xff1a; S 083 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S083。} 文末获取源码&#xff0c;项目编号&#xff1a;S083。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 房屋销售模块2.2 房屋出租模块2.3 预…

HDFS Java API 基本操作实验

文章目录 一、实验环境二、实验内容&#xff08;一&#xff09;数据准备&#xff08;二&#xff09;编程环境准备&#xff08;三&#xff09;使用Hadoop API操作HDFS文件系统&#xff08;四&#xff09;使用Hadoop API Java IO流操作HDFS文件系统 三、实验步骤&#xff08;一&…

智慧城市是什么?为什么要建智慧城市?

智慧城市是一个通过现代科技手段推动城市管理和服务创新的概念。 具体来说&#xff0c;它利用信息技术和创新概念&#xff0c;将城市的各个系统和服务集成起来&#xff0c;以提升城市运行效率、优化城市管理和服务&#xff0c;改善市民的生活质量。 为什么要建智慧城市呢&…

土壤水分传感器土壤体积含水率含量监测仪器

产品概述 外型小巧轻便&#xff0c;便于携带和连接。 土壤水分传感器由电源模块、变送模块、漂零及温度补偿模块、数据处理模块等组成。传感器内置信号采样及放大、漂零及温度补偿功能&#xff0c;用户接口简洁、方便。 功能特点 ◆本传感器体积小巧化设计&#xff0c;测量…

pr抖音素材42个手机竖屏抖音视频转场特效PR剪辑模板

酷炫、富有创意的Premiere Pro 视频转场动画过渡效果pr模板免费下载。增强内容演示、幻灯片、抖音、社交媒体广告、预告片、促销等视频画面切换效果。 来自PR模板网&#xff1a;https://prmuban.com/36404.html

Git使用指南

文章目录 一、Git概念二、Git命令清单1、新建代码库2、配置3、增加/删除文件4、代码提交5、分支6、标签7、查看信息8、远程同步9、撤销10、其他 三、常用高级操作1、把其他分支代码摘到当前分支2、重置刚刚提交的代码 一、Git概念 Git流程图 相关概念说明&#xff1a; Work…

书籍推荐: 深入理解Go并发编程

一书在手&#xff0c;并发无忧 收到了鸟窝老师历时五载写就的新作「深入理解Go并发编程」 迫不及待开卷阅览&#xff0c;大呼过瘾&#xff0c;最大感触是诚如副标题所言&#xff0c;“从原理到实践&#xff0c;看这本就够了”。 对并发编程优雅简洁的支持&#xff0c;是Go最大的…

探索无监督域自适应,释放语言模型的力量:基于检索增强的情境学习实现知识迁移...

深度学习自然语言处理 原创作者: Xnhyacinth 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;如何有效地进行无监督域自适应(Unsupervised Domain Adaptation, UDA) 一直是研究的热点和挑战。无监督域自适应的目标是在目标域无标签的情况下&#xff0c;将源域的知识…

ABAP - Function ALV 01 Function ALV的三大基石

森莫是Function ALV&#xff1f; 业务顾问和用户方面的名词定义为报表&#xff0c;在开发顾问方面定义的名词为ALV 通过调用Function方式展示的ALV叫做FunctionALV.Function的解释:封装好的函数 Function ALV的三大基石 Fieldcat :Function ALV字段级别的处理 Layout …

uView框架的安装与Git管理

参考链接&#xff1a;Http请求 | uView - 多平台快速开发的UI框架 - uni-app UI框架 安装 打开我们项目的cmd进行下载&#xff1a; yarn add uview-ui 首先我们要确定&#xff0c;未下载前的文件目录以及下载后&#xff0c;是多了个文件目录node_modules 下载完成之后我们就…