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的关系,因此也 ...
随机推荐
- 什么是docker的多阶段构建
Docker多阶段构建是一种技术,允许在不同的构建阶段中使用不同的基础镜像,并只复制构建所需的文件和依赖项.这种技术旨在减少最终生成的Docker镜像的大小和运行时的资源消耗. 多阶段构建的一般工作流 ...
- 基于bes2300 的六轴传感器mpu6050调试总结
需求 在医疗健康领域,有很多场景需要分析佩戴者的姿势和动作.mpu6050多轴传感器是一个不二的选择.假如想把功耗做的低一些,放在耳机里,bes2300芯片配合mpu6050是一个不错的选择.遗憾的 ...
- 快速上手系列:JavaScript
第一章 基础语法 1 javascript 的简介 * 是基于对象和事件驱动的语言,应用于客户端. - 基于对象: ** 提供好了很多对象,可以直接拿过来使用 - 事件驱动: ** html 做网站静 ...
- nodejs下载 安装 配置环境
1.下载 下载地址:https://nodejs.org/en/download/ 下载完成后,双击安装包,开始安装,一直点next即可.我把安装路径设置为 D:\Program Files\node ...
- KingbaseES V8R3 集群运维案例--kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- #交互#CF1375F Integer Game
题目 有三堆石子初始石子数分别为\(a,b,c\),可以选择先手还是后手操作, 每次操作形如先手选择一个正整数 \(k\) ,后手自由选择一堆石子加上 \(k\) , 但是不能和上一次操作选择的石堆相 ...
- CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务
前言 在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务. 1. 安装必要的软件包 安装以下软件包: Golang:Golang 编程语言 Nginx:Web 服务器 S ...
- [一本通1700]PFS集合
题目描述 有一种特殊的集合叫做PFS(Prefix Free Set)集合. 一个PFS集合由若干字符串构成,且不存在一个字符串是另一个字符串的前缀.空集也被看作是PFS集合. 例如 {\(" ...
- 【FAQ】集成分析服务的常见问题及解决方案
常见问题一:如何验证Analytics是否上报/接入成功?以及关键日志含义是什么? 在初始化Analytics SDK前添加SDK日志开关如下: HiAnalyticsTools.enableLog ...
- openGauss数据与PostgreSQL的差异对比
openGauss 数据与 PostgreSQL 的差异对比 前言 openGauss 数据库已经发布 2.0.1 版本了,中启乘数科技是一家专业的专注于极致性能的数据库服务提供商,所以也关注 ope ...