IDEA操作MyBatis实现数据库增删改查
“感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!”
前置环境
创建项目到创建配置文件可以看看这篇文章的,里面涵盖了视频,数据库和操作的语句是另外的东西,自己看完就知道哪里需要改哪些不需要改了,
【Mybatis】使用mybatis框架连接mysql数据库详细步骤_mybatis连接数据库-CSDN博客
创建表
连接数据后,选择一个数据库创建表,后续就是利用这个表来操作
CREATE TABLE `t_user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `t_user`(`id`, `username`, `password`, `email`, `phone`) VALUES (1, 'admin', 'admin', 'admin@qq.com', '1008611');
INSERT INTO `t_user`(`id`, `username`, `password`, `email`, `phone`) VALUES (2, 'root', 'root', 'root@qq.com', '1008622');
INSERT INTO `t_user`(`id`, `username`, `password`, `email`, `phone`) VALUES (19, 'admin2', 'root2', 'root@qq.com2', '1008644');

注意
每个人的mysql版本或者不一致,创建的语法也会有不同,如果使用上述语句创建表出现如下报错,请移步这篇文章更改创建表的语句 解决方案
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’_ 怎么用浏览器控制台修改职教云版本-CSDN博客
[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
创建表的实体类
表里面的属性都需要利用类来操作,生成对应的方法才可以.在Java目录下以这样的形式创建软件包
com.knroy.pojo下新建User.java 类,里面定义的属性对应数据库中的字段 这一步提前讲清楚,表是在创建项目后建立的

package com.knroy.pojo;
public class User {
private Integer id;
private String username;
private String password;
private String email;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public User() {
}
public User(Integer id, String username, String password, String email, String phone) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
this.phone = phone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
IDEA安装插件
编译器找到插件商店安装MyBatisX后面写mappe语句代理会非常方便会自己生成,如果商店不行的看下面的方案,我一般是挂梯子或者换成本机电脑长期连接过的网络比如个人热点,因为IDEA好像从什么时候版本开始对网络安全有要求陌生网络不需要加载东西出现,所以可以换成电脑熟悉的网络,不行就看文章吧
解决idea中插件商店加载不出来插件问题_idea插件商店加载不出来-CSDN博客
解决IDEA无法打开Marketplace的三种方案_idea marketplace-CSDN博客

IDEA连接数据库

输入账号密码就行了,有的人驱动下载不了建议挂梯子试试或者百度一下,我有这种情况但是我还是可以直接连接成功

创建Maven项目
创建简单的Maven项目

创建完成后把org.example软件包删除(感觉没用上还碍眼)

配置pom.xml依赖
将这两个依赖加入到pom.xml文件内然后刷新项目,会看到右边已经是成功添加的状态了这样依赖就好了
// jdbc驱动
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
// mybatis驱动
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
</dependencies>

Mybatis核心配置文件
在main目录下的resources下创建Mybatis-config.xml里面是数据库的连接信息包括后面的SQL语句映射的路径,下面的全部可以复制,但是需要修改的是账户密码还有需要连接的数据库名,代码没有问题,如果哪里错了细心一点看看
<mappers>标签内需要写sql语句的映射出来的核心配置文件路径,也就是操作SQL语句的xml路径

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!-- 这里要写入我们连接mysql数据库的信息-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="000000"/>
</dataSource>
</environment>
</environments>
<!-- 这里要写sql映射路径userMapp.xml路径-->
<mappers>
<mapper resource="com/knroy/Mapper/userMapper.xml"/>
</mappers>
</configuration>
操作SQL语句xml文件
同样在这个地方resources 下先创建几个目录,再到目录下面创建userMapper.xml文件,取名随意因为我操作的是用户表就这个取了,此 文件下对应的是实现的语句增删改查,并且你看清楚代码里面的路径关系,
namespace: 编写功能方法的接口路径
id: 功能接口中对应的抽象方法
resultType: 实体类的路径

<?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">
<!--编写代理对应前文的信息这里是上文的接口路径-->
<!--左边这个小傻鸟点击过去就会到指定的接口去,因为写了路径-->
<!--通过namespace建立接口的关系-->
<mapper namespace="com.knroy.Mapper.userMapper">
<select id="queryUser" resultType="com.knroy.pojo.User">
select id,username,password,email,phone from t_user
</select>
<select id="likeUser" parameterType="String" resultType="com.knroy.pojo.User">
select * from t_user where username like '%${username}%'
</select>
<insert id="addUser">
insert into t_user values(#{id},#{username},#{username},#{email},#{phone})
</insert>
<delete id="delUser">
delete from t_user where id=#{id}
</delete>
<update id="updateUser">
update t_user set username=#{username},password=#{password},email=#{email},phone=#{phone} where id=#{id}
</update>
</mapper>
操作SQL接口xml文件
要实现Mapper代理,所以在后面我们会建一个和userMapper.xml同名的接口,在接口中便会存放与userMapper.xml中sql语言一样的抽象方法,二者是对应关系的而且目录和软件包也是一致的名称
userMapper接口
package com.knroy.Mapper;
import com.knroy.pojo.User;
import java.util.List;
//此接口定义了需要执行的SQL操作,有的查询有的增加,链接的userMaooerXML映射文件定义了具体的SQL语句,
// 通过这种方式实现了SQL和Java代码的解耦,提高了代码的可维护性和灵活
public interface userMapper {
// 接口内写抽象方法,虽然接口中的public对应接口是多余的,后面写的返回的类型
public List<User> queryUser(); // 功能是查询表所以方法的类型是集合类型
public Boolean addUser(User user); // 添加用户
public Boolean delUser(String id); // 根据id删除
public Boolean updateUser(User user); // 更新用户
public List<User> likeUser(String name); // 模糊查询
}

记得创建类选择为接口哦

在接口里面写好这些方法后,前期安装的插件就起到作用了,点击这个小红鸟它会帮我们自动定位回到编写SQL语句的文件并生成语句是什么,这个安装了自己就会知道怎么用了,简述就是能生成能定位


测试类test
建立一个测试类运行这些SQL语句实现增删改查,在test目录下的java目录新建test.java

其实下面的是我自己复制的,有的地方没有太明白所以没有注释,有心的人随便找个AI代审一下就行了,
import com.knroy.Mapper.userMapper;
import com.knroy.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class test {
public static void main(String[] args) throws IOException {
String resource = "Mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
// 拿到接口的对象
userMapper userMapper = sqlSession.getMapper(userMapper.class);
// 查询所有用户
List<User> userList = userMapper.queryUser();
System.out.println("All users:");
for (User user : userList) {
System.out.println(user);
}
System.out.println("查询完成\n");
// 添加用户 通过实例化 user实体类的构造方法写入参数
User newUser = new User(21, "Alice", "123456", "alice@example.com", "1234567890");
// 将实例后的对象传入接口的方法中,
userMapper.addUser(newUser);
System.out.println("添加用户完成\n");
// 删除用户不需要什么对象 使用接口的方法传入id就可以实现删除用户
userMapper.delUser("1");
System.out.println("删除用户完成\n");
// 更新用户和增加用户一个道理
User updateUser = new User(2, "Bob", "654321", "bob@example.com", "9876543210");
userMapper.updateUser(updateUser);
System.out.println("更新用户完成\n");
// 模糊查询用户
List<User> likeUserList = userMapper.likeUser("Alice");
System.out.println("Users with name like 'Alice':");
for (User user : likeUserList) {
System.out.println(user);
}
System.out.println("模糊查询完成\n");
List<User> userList1 = userMapper.queryUser();
System.out.println("All users:");
for (User user : userList1) {
System.out.println(user);
}
System.out.println("操作结束后的表查询完成\n");
// 提交事务
sqlSession.commit();
}
}
}

IDEA操作MyBatis实现数据库增删改查的更多相关文章
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- go——beego的数据库增删改查
一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...
随机推荐
- j-link仿真器的作用和价值以及Ubuntu下使用注意事项
一 J-LINK是什么? J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器.配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有A ...
- day03-自己实现Mybatis底层机制-02
自己实现Mybatis底层机制-02 7.任务阶段4&5 阶段4任务:开发Mapper接口和Mapper.xml 阶段5任务:开发和Mapper接口相映射的MapperBean (1)Mapp ...
- linux命令行下使用代理
有两种方法: 1.curl -x <proxy_ip>:<proxy_port> <real_website> 举例:curl -x 12.99.109.52:80 ...
- android ndk生成第三方库的so方法(ndk-build,Application.mk,Android.mk)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- Ubuntu 16.04 配置NFS
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 3DCAT携手华为,打造XR虚拟仿真实训实时云渲染解决方案
2023年5月8日-9日,以 ''因聚而生 众志有为'' 为主题的 ''华为中国合作伙伴大会2023'' 在深圳国际会展中心隆重举行.本次大会汇聚了ICT产业界的广大新老伙伴朋友,共同探讨数字化转型的 ...
- 3DCAT实时云渲染助力VR虚拟现实迈向成熟
近年来,虚拟现实(Virtual Reality, VR)技术在市场上的应用越来越广泛,虚拟现实已成为一个热门的科技话题.相关数据显示,2019年至2021年,我国虚拟现实市场规模不断扩大,从2019 ...
- 总体最小二乘法(Total Least Squares)拟合直线
前言 最小二乘法是最小化每个点到直线的垂直误差,由于误差采用的是垂直误差,导致越接近垂直线(平行于\(y\)轴),拟合效果越差,无法拟合垂直线. 通过最小化每个点到直线的距离误差可以解决最小二乘法无法 ...
- 记录--使用Canvas绘制一个验证码组件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用Canvas绘制一个验证码组件 前言 验证码,这一日常伴随我们的要素,是我们在线交互的重要安全保障.你的手机短信里是否被它占据半壁江山 ...
- C# 人脸比对服务,自带模型,离线部署
软件说明 基于以下开源项目,做了再次封装 GitHub - ViewFaceCore/ViewFaceCore: C# 超简单的离线人脸识别库.( 基于 SeetaFace6 ) 可以一键开启服务: ...