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的关系,因此也 ...
随机推荐
- 单词本z custom cu = com 一起 都, st=suet 自己, om 尾缀, 都是自己身上的 = 习惯,习俗
单词本z custom cu = com 一起 都, st=suet 自己, om 尾缀, 都是自己身上的 = 习惯,习俗 custom 来自拉丁语 consuetus cu = com st = s ...
- 【LLM】大模型落地-从理论到实践
简述 按个人偏好和目标总结了学习目标和路径(可按需学习),后续将陆续整理出相应学习资料和资源. 学习目标 熟悉主流LLM(Llama, ChatGLM, Qwen)的技术架构和技术细节:有实际应用RA ...
- 基于python的定时PC定时录音机实现
一 概念基础 这次用python实现一个定时录音机的功能,可以让你的i电脑秒变定时录音机. 这里用到了wave库,time库等.熟悉该源码,即可了解这些库的用法. 二 源码解析 1.录音函数,该函 ...
- PRD(产品需求文档)与SRS(软件需求规格说明书)的区别
需求分析是软件开发过程中很重要的一个环节,目前需求分析完成后输出的文档有2种体系,一个是SRS(Software Requirements Specification,软件需求规格说明书),一个是PR ...
- 小程序登录V2
参考:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801(通知) https:/ ...
- [pyplot]在同一画面上绘制不同大小的多个图像
一.背景 做计算机应用数学作业时要求使用matplotlib库在同一张图上绘制两个图像,但是这两个图像的大小不同,百度之后发现大部分只是转载的同一篇博客,而且只能实现部分子图比例排版,并不能随意设置各 ...
- NJUPT自控第一次积分赛的小总结(二)基于simpleFOC的无刷电机控制
新人一枚,写的比较水,欢迎大佬指正! 先说一下我用的物料与开发环境吧: 无刷电机:makerbase的2804电机(带AS5600磁编码器) 电机驱动板:simpleFOCmini(学校推荐的) 电池 ...
- python高级技术(IO模型)
一 IO模型介绍 Linux环境下的network IO * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO mul ...
- 记录--vue3+setup+ts 知识总结
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 vue3 于 2020 年 09 月 18 日正式发布,2022 年 2 月 7 日 vue3 成为新的默认版本 距离 vue3 正式发布 ...
- 使用元类实现Django的ORM
一.ORM基本介绍 ORM 是 python编程语言后端web框架 Django的核心思想,"Object Relational Mapping",即对象-关系映射,简称ORM. ...