“感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!”

前置环境

创建项目到创建配置文件可以看看这篇文章的,里面涵盖了视频,数据库和操作的语句是另外的东西,自己看完就知道哪里需要改哪些不需要改了,

【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实现数据库增删改查的更多相关文章

  1. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  2. 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查

    一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

  3. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  4. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  5. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  6. python操作mysql数据库增删改查的dbutils实例

    python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...

  7. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  8. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  9. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  10. go——beego的数据库增删改查

    一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...

随机推荐

  1. PlayBook 详解

    4)Playbook 4.1)Playbook 介绍 PlayBook 与 ad-hoc 相比,是一种完全不同的运用 Ansible 的方式,类似与 Saltstack 的 state 状态文件.ad ...

  2. 记一次配置mybatis plus报错有感

    参考,欢迎点击原文:https://blog.csdn.net/wwrzyy/article/details/86034458(问题原因) https://www.jianshu.com/p/28d6 ...

  3. 天天用defineEmits宏函数,竟然不知道编译后是vue2的选项式API?

    前言 我们每天都在使用 defineEmits 宏函数,但是你知道defineEmits 宏函数经过编译后其实就是vue2的选项式API吗?通过回答下面两个问题,我将逐步为你揭秘defineEmits ...

  4. Excalidraw:绘制图形的新利器

    摘要: Excalidraw是一款简洁设计.直观易用的绘图应用,用户可以通过它创建流程图.示意图.架构图等各种图形.除了提供手绘效果外,Excalidraw还支持多人实时协作编辑,并提供端到端加密以确 ...

  5. C++ Qt开发:QUdpSocket实现组播通信

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUd ...

  6. VScode 配置私钥免密登录

    VScode 配置私钥免密登录 配置公钥私钥进行免密登录在前文已经提及.在完成上述配置后,我们希望在VScode中配置,毕竟主要的开发环境还是在VScode上且连接到远程服务器会经常遇到网络不稳定需要 ...

  7. MySQL8.0 ERROR 1045 (28000)

    第一步:关闭服务 net stop mysql 这个需要在管理员权限才行 ,具体怎么用管理员打开cmd略过 第二步:进入到安装的bin目录 执行 :mysqld --console --skip-gr ...

  8. Mac M芯片下载centos7的iso镜像

    1.登陆Centos官网下载镜像 https://www.centos.org/download/ 这里需要下载ARM框架点击进入: 点击进入选择一个镜像仓库进行下载: http://isoredir ...

  9. archlinux运行appimage

    1.cd进入appimage所在的目录 cd your_folder 2.赋予appimage运行权限 chmod +x your_file.appimage 3.运行appimage格式文件 ./y ...

  10. Python爬取国家统计局2009至2020统计用区划和城乡划分代码(省市区/县三级)并存入mysql数据库

    国家统计局->统计标准网址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/ 获取资源请关注公众号 [靠谱杨阅读人生]回复[城乡分类]获取 流程 ...