mybatis 连接mysql 实现CRUD

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 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
相关文章
|
1月前
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
23天前
|
安全 Java 关系型数据库
Java连接Mysql SSL初始化失败
Java连接Mysql SSL初始化失败
|
26天前
|
JavaScript 关系型数据库 MySQL
node连接mysql,并实现增删改查功能
【8月更文挑战第26天】node连接mysql,并实现增删改查功能
42 3
|
27天前
|
关系型数据库 MySQL Java
【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error
【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error
|
1月前
|
关系型数据库 MySQL 数据库
postgresql使用mysql_fdw连接mysql
通过以上步骤,你可以在PostgreSQL中访问和查询远程MySQL服务器的数据,这对于数据集成和多数据库管理非常有用。
59 0
|
1月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之连接到MySQL的从库时遇到其他服务也连接到了从库,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
关系型数据库 MySQL 数据库
成功解决:Navicat 连接虚拟机Docker中的mysql数据库失败(仅限某些特殊情况)
这篇文章介绍了在Ubuntu环境中使用Docker部署Flask项目的方法,包括创建测试项目、设置数据库、构建Flask和Nginx镜像以及容器编排,其中使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理,并解决了Navicat连接Docker中的MySQL数据库失败的问题。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL - 左连接、右连接、内连接、完全外连接、交叉连接 & 一对多、多对一、多对多 & 联合连接
介绍MySQL中不同类型的SQL连接操作,包括左连接、右连接、内连接、完全外连接、交叉连接,以及数据库关系中的一对多、多对一、多对多和联合连接的概念和使用场景。
17 0
|
1月前
|
关系型数据库 MySQL 数据库连接
UiPath 连接 Mysql 报错: 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
UiPath 连接 Mysql 报错: 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
|
1月前
|
前端开发 Java 关系型数据库
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
144 0