mybatis 连接mysql 实现CRUD

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: mybatis 连接mysql 实现CRUD

新建maven项目

在IDEA里新建一个maven项目。依赖里下载相关的包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.complier.source>11</maven.complier.source>
        <maven.complier.target>11</maven.complier.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
    </dependencies>
</project>

接着在java 里面 新建一个包 里面新建一个User类 定义一个实体类
并输出set 和get 方法 快捷键alt+ins

a280f092c8d4428d8c93cc1d589f8be7.png

e07520c957504e3cbc029512ce4553fb.png

在resources目录下创建一个mapper包 用来配置UserMapper.xml文件
并且创建 db.propertiesmybatis-config.xml

UserMapper.xml

<?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="cn.wxz.mybatistest.pojo.User">
    <select id="findUserById" parameterType="int" resultType="cn.wxz.mybatistest.pojo.User">
 select * from user where uid = #{uid}
 </select>
    <insert id="addUser" parameterType="cn.wxz.mybatistest.pojo.User">
        insert  into user (uname,uage)values(#{uname},#{uage});
    </insert>
    <update id="updateUser" parameterType="cn.wxz.mybatistest.pojo.User">
        update user set uname=#{uname},uage=#{uage} where uid=#{uid};
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from user  where uid=#{uid};
    </delete>
</mapper>

db.properties

driver=com.mysql.cj.jdbc.Driver
//端口号默认3306
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC 
username=root //账号
password=root //密码

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

然后打开mysql 创建一个user表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `uid` int(0) NOT NULL AUTO_INCREMENT,
  `uname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `uage` int(0) NOT NULL,
  PRIMARY KEY (`uid`) USING BTREE
) 

7d2ffe646fb34c6c961431684fc3c719.png

接着创建一个UserTest类 实现我们的增删改查

addUserTest

    @Test
    public void  addUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=new User();
        user.setUname("王五");
        user.setUage(19);
        int ret = sqlSession.insert("addUser",user);
        sqlSession.commit();
        if(ret>0) System.out.println("添加成功!!");
        else System.out.println("添加失败!!");
        sqlSession.close();
    }

269cb217f72041238fb494f53123fe2b.png

然后我们 查看当前user表

输入

select * from user


dce954e2603c448482fea46e03b7dcc7.png

updateUserTest

  @Test
    public void  updateUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=new User();
        user.setUid(1);
        user.setUname("小王同学");
        user.setUage(12);
       int ret=sqlSession.update("updateUser",user);
       if(ret>0) System.out.println("修改成功");
       else System.out.println("修改失败");
        sqlSession.commit();
        sqlSession.close();
    }

50ddd6a75ce94bb78873c4ba9138225b.png

0e7f84f531b3495c9098dd088a5ce022.png

原来的张三变成了小王同学 uage从原来的19变成12了
成功!~

表里多出了一条数据
操作成功

findUserById

 @Test
    public  void findUserById(){
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=sqlSession.selectOne("findUserById",2);
        System.out.println(user.getUname());
        sqlSession.close();
    }

4d0e40461dd24ac2bb6039cf02ba1747.png

uid 为2 的时候 对应的uname是李四
成功!~

deleteUserTest

 @Test
    public void  deleteUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
       int result=sqlSession.delete("deleteUser",1);
       if(result>0) System.out.println("删除成功");
       else System.out.println("删除失败!");
        sqlSession.commit();
        sqlSession.close();
    }

2b1a5a083fcb4100ba08735541d74d60.png

cac4c1b0ff6c4823ae8b73a19ec4adb2.png

原来的uid为1 的小王同学的一列删除成功!!~

完整代码附上:

package cn.wxz.mybatistest.test;
import cn.wxz.mybatistest.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 org.junit.Test;
import java.io.IOException;
import java.io.Reader;
public class UserTest {
    @Test
    public  void findUserById(){
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=sqlSession.selectOne("findUserById",2);
        System.out.println(user.getUname());
        sqlSession.close();
    }
    @Test
    public void  addUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=new User();
        user.setUname("王五");
        user.setUage(19);
        int ret = sqlSession.insert("addUser",user);
        sqlSession.commit();
        if(ret>0) System.out.println("添加成功!!");
        else System.out.println("添加失败!!");
        sqlSession.close();
    }
    @Test
    public void  updateUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
        User user=new User();
        user.setUid(1);
        user.setUname("小王同学");
        user.setUage(12);
       int ret=sqlSession.update("updateUser",user);
       if(ret>0) System.out.println("修改成功");
       else System.out.println("修改失败");
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    public void  deleteUserTest() {
        String  resouces="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resouces);
        } catch (IOException e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new   SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=sqlMapper.openSession();
       int result=sqlSession.delete("deleteUser",1);
       if(result>0) System.out.println("删除成功");
       else System.out.println("删除失败!");
        sqlSession.commit();
        sqlSession.close();
    }
}

以上就是王同学给大家带来的mybatis连接mysql 实现CRUD!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
SQL Java 数据库连接
MyBatis-Plus:简化 CRUD 操作的艺术
MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。
37 1
MyBatis-Plus:简化 CRUD 操作的艺术
|
11天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
14天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
20天前
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
93 1
|
23天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
36 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
35 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2月前
|
关系型数据库 MySQL 数据库
MySQL 表的CRUD与复合查询
【9月更文挑战第26天】本文介绍了数据库操作中的 CRUD(创建、读取、更新、删除)基本操作及复合查询。创建操作使用 `INSERT INTO` 语句插入数据,支持单条和批量插入;读取操作使用 `SELECT` 语句查询数据,可进行基本查询、条件查询和排序查询;更新操作使用 `UPDATE` 语句修改数据;删除操作使用 `DELETE FROM` 语句删除数据。此外,还介绍了复合查询,包括连接查询(如内连接、左连接)和子查询,以及聚合函数与分组查询,并提供了示例代码。
|
22天前
|
SQL JavaScript 关系型数据库
Node.js 连接 MySQL
10月更文挑战第9天
17 0
|
25天前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
162 0
|
2月前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
38 0
Node服务连接Mysql数据库