# 前置环境创建项目到创建配置文件可以看看这篇文章的,里面涵盖了视频,数据库和操作的语句是另外的东西,自己看完就知道哪里需要改哪些不需要改了,
【Mybatis】使用 mybatis 框架连接 mysql 数据库详细步骤_mybatis 连接数据库 - CSDN 博客
# 创建表连接数据后,选择一个数据库创建表,后续就是利用这个表来操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 博客
1 2 [ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
# 创建表的实体类表里面的属性都需要利用类来操作,生成对应的方法才可以。在 Java
目录下以这样的形式创建软件包
com.knroy.pojo
下新建 User.java
类,里面定义的属性对应数据库中的字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 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
文件内然后刷新项目,会看到右边已经是成功添加的状态了这样依赖就好了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1 .45 </version> </dependency> <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
路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <?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" /> <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 > <mappers > <mapper resource ="com/knroy/Mapper/userMapper.xml" /> </mappers > </configuration >
# 操作 SQL 语句 xml 文件同样在这个地方 resources
下先创建几个目录,再到目录下面创建 userMapper.xml
文件,取名随意因为我操作的是用户表就这个取了,此 文件下对应的是实现的语句增删改查,并且你看清楚代码里面的路径关系,
1 2 3 4 5 6 7 8 namespace: 编写功能方法的接口路径 id: 功能接口中对应的抽象方法 resultType: 实体类的路径
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <?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.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
接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.knroy.Mapper;import com.knroy.pojo.User;import java.util.List;public interface userMapper { public List<User> queryUser () ; public Boolean addUser (User user) ; public Boolean delUser (String id) ; public Boolean updateUser (User user) ; public List<User> likeUser (String name) ; }
记得创建类选择为接口哦
在接口里面写好这些方法后,前期安装的插件就起到作用了,点击这个小红鸟它会帮我们自动定位回到编写 SQL
语句的文件并生成语句是什么,这个安装了自己就会知道怎么用了,简述就是能生成能定位
# 测试类 test建立一个测试类运行这些 SQL
语句实现增删改查,在 test
目录下的 java
目录新建 test.java
其实下面的是我自己复制的,有的地方没有太明白所以没有注释,有心的人随便找个 AI
代审一下就行了,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 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 newUser = new User (21 , "Alice" , "123456" , "alice@example.com" , "1234567890" ); userMapper.addUser(newUser); System.out.println("添加用户完成\n" ); 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(); } } }