mybatis 连接mysql 实现CRUD

简介: 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!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
3月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
154 13
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1119 11
|
3月前
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
362 3
|
3月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
419 11
|
4月前
|
存储 关系型数据库 MySQL
修复.net Framework4.x连接MYSQL时遇到utf8mb3字符集不支持错误方案。
通过上述步骤大多数情况下能够解决由于UTF-encoding相关错误所带来影响,在实施过程当中要注意备份重要信息以防止意外发生造成无法挽回损失,并且逐一排查确认具体原因以采取针对性措施解除障碍。
280 12
|
6月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1146 1
Spring boot 使用mybatis generator 自动生成代码插件
|
9月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
744 0
|
11月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
540 2
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
627 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
575 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块

推荐镜像

更多