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
相关文章
|
11天前
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
24 4
|
27天前
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
|
2月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
217 1
|
6天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
26天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
34 1
|
28天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
39 4
|
2月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
69 3
Mysql(4)—数据库索引
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
192 1