首页 > 编程语言 >Mybatis入门程序-实现对用户的增删改查

Mybatis入门程序-实现对用户的增删改查

时间:2024-09-13 16:52:07浏览次数:3  
标签:username 改查 用户 增删 sqlSession 添加 user Mybatis User

目录

1、MyBatis 入门程序——查询用户

方法一

方法二

2、MyBatis 入门程序——添加用户

3、MyBatis 入门程序——更新用户

4、MyBatis 入门程序——删除用户


1、MyBatis 入门程序——查询用户

实现根据用户名模糊查询用户 查询 sql : SELECT * FROM `user` WHERE username LIKE '% 王 %'
方法一
映射文件 在 User.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="test">
<select id="queryUserByUsername1" parameterType="string" resultType="User">
    select * from user where username like #{username}
</select>
</mapper>

测试程序

MybatisTest 中添加测试方法如下:

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.Before;
import org.junit.Test;


import java.io.InputStream;
import java.util.List;


public class MybatisTest {
    private SqlSessionFactory sqlSessionFactory=null;

    @Before
    public void init() throws Exception{
        //1.创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();

        //2.加载mybatis-config配置文件
        InputStream inputStream= Resources.getResourceAsStream("mybatis-config.xml");

        //3.创建sqlSessionFactory对象
        this.sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
    }
    

    @Test
    public void testQueryUserByUsername1() throws Exception{
        SqlSession sqlSession=sqlSessionFactory.openSession();
        List<User> list=sqlSession.selectList("test.queryUserByUsername1","%王%");
        for(User user:list){
            System.out.println(user);
        }
        sqlSession.close();
    }
}

方法二
映射文件: 在 User.xml 配置文件中添加如下内容:
<!-- 如果传入的参数是简单数据类型,${}里面必须写 value -->
<select id="queryUserByUsername2" parameterType="string"
resultType="com.haust.mybatis.pojo.User">
SELECT * FROM `user` WHERE username LIKE '%${value}%'
</select>
测试程序: MybatisTest 中添加测试方法如下:
    @Test
    public void testQueryUserByUsername2() throws Exception{
        SqlSession sqlSession=sqlSessionFactory.openSession();
        List<Object> list=sqlSession.selectList("queryUserByUsername2","王");
        for(Object user : list){
            System.out.println(user);
        }
        sqlSession.close();
    }

2、MyBatis 入门程序——添加用户

使用的 sql : INSERT INTO `user` (username,birthday,sex,address) VALUES ('张飞 ','2016-07-26','男','蜀国 ') 映射文件: 在 User.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="test">
    <insert id="saveUser" parameterType="User">
        insert into user(username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address})
    </insert>
</mapper>
测试程序 MybatisTest 中添加测试方法如下:
@Test
    public void testSaveUser(){

        SqlSession sqlSession=sqlSessionFactory.openSession();

        User user=new User();
        user.setUsername("张飞");
        user.setSex("男");
        user.setBirthday(new Date());
        user.setAddress("蜀国");

        sqlSession.insert("test.saveUser",user);
        System.out.println(user);

        sqlSession.commit();
        sqlSession.close();
    }

3、MyBatis 入门程序——更新用户

修改用户 根据用户 id 修改用户名 使用的 sql : UPDATE `user` SET username = ' 赵云 ' WHERE id = 26 映射文件 在 User.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="test">
    <update id="updateUserById" parameterType="User">
        update user set username=#{username} where id=#{id}
    </update>
</mapper>
测试程序 MybatisTest 中添加测试方法如下:
    @Test
    public void testUpdateUserById(){
        SqlSession sqlSession=sqlSessionFactory.openSession();
        User user=new User();
        user.setId(26);
        user.setUsername("赵云");
        user.setSex("1");
        user.setBirthday(new Date());
        user.setAddress("蜀国");

        sqlSession.update("test.updateUserById",user);

        sqlSession.commit();
        sqlSession.close();
    }

4、MyBatis 入门程序——删除用户

删除用户 根据用户 id 删除用户 使用的 sql DELETE FROM `user` WHERE id = 47 映射文件: 在 User.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="test">
    <delete id="deleteUserById" parameterType="int">
        delete from user where id=#{id}
    </delete>
</mapper>
测试程序: MybatisTest 中添加测试方法如下:
    @Test
    public void testDeleteUserById(){
        SqlSession sqlSession=sqlSessionFactory.openSession();

        sqlSession.delete("test.deleteUserById",2);

        sqlSession.commit();

        sqlSession.close();
    }

以上就是基本的用法,希望能够帮助到大家。

标签:username,改查,用户,增删,sqlSession,添加,user,Mybatis,User
From: https://blog.csdn.net/m0_74202856/article/details/142212241

相关文章

  • MyBatis 3种 使用 SQL 语句的方式;注解方式、注解提供器方式、XML 配置方式
    结论:为了统一使用方式,建议采用XML配置的方式;MyBatis提供了多种配置和使用SQL语句的方式,主要包括:注解方式(如@Select)、注解提供器方式(如@SelectProvider)和XML配置方式。每种方式都有其独特的优缺点,适用于不同的场景。以下是这三种方式的详细对比:1.@Select这类注解优点:......
  • mybatis exists 中使用代替in关键字
      使用场景,in适合数据量小的时候,exists适合数据量大的时候。<iftest="torqueRecordPageDTO.vinList!=nullandtorqueRecordPageDTO.vinList.size>0">andexists(select1from(<foreachcollection="......
  • mybatis in中超过1000个值解决办法(超简单)
    众所周知sql中条件in的值是不能超过1000个的,而mybatis可以使用动态sql拼接的方式绕开这个限制,网上看了很多例子,我感觉都不太好理解,下面介绍一个超简单的例子。select*fromuser_infowhere1=1<iftest="userList!=nullanduserList.size()>0">and(userIdin<f......
  • Mybatis与Mybatis-plus的比较
    MyBatis和MyBatis-Plus都是流行的JavaORM框架,它们在处理数据库操作时各有优势和特点。以下是对两者的比较:MyBatisMyBatis是一个成熟的ORM框架,它提供了映射SQL语句到Java对象的能力。以下是MyBatis的一些优缺点:优点:灵活性高:MyBatis允许开发者编写原生SQL,提......
  • 浅析 MyBatis 中的连接池和缓存
    文章目录一、MyBatis简介二、连接池1.连接池的作用2.MyBatis中的连接池实现3.连接池的参数配置三、缓存1.缓存的作用2.MyBatis的一级缓存3.MyBatis的二级缓存4.缓存的刷新和清空四、总结在使用MyBatis进行Java应用开发时,连接池和缓存是两个非常重要......
  • 2024年该怎么写增删改查
    校验总结:快速失败校验放最外层节省内存xml都加条件标签然后其他的校验都根据业务以及具体情况来没有业务的时候要有空指针的校验避免空指针问题校验的细节见 该如何做参数校验-稳健国国王-博客园(cnblogs.com)魔法值问题建枚举类入参问题post请求put请求必须用@RequestBod......
  • MyBatis-Plus动态表名
    MyBatis-Plus动态表名一、早期方案1.1MyBatis-Plus版本1、添加MyBatis-Plus依赖<dependency>   <groupId>com.baomidou</groupId>   <artifactId>mybatis-plus-boot-starter</artifactId>   <version>3.5.1</version></dependency>......
  • Mybatis读取和存储json类型的数据
    目录一、测试使用JSONObject来获取json二、设置@TableName的autoResultMap为true,@TableField的typeHandler为JacksonTypeHandler.class三、设置xml当中的resultMap四、JacksonTypeHandler讲解五、新增假如是JSONObject异常问题六、遇到转义的问题不管数据库当中是以json还是longte......
  • 滚雪球学MyBatis(12):常见问题与解决方案
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们已经进行了MyBatis的基础使用、进阶功能及项目实战的详细讲解。通过这些内容,相信大家对MyBatis有了全面的了解,并能够在实际项目中应用MyBatis。然而,在使用MyBatis的过程中,我们可能会遇到各种问题。本期内容中,我们将总结......
  • 滚雪球学MyBatis(13):总结与展望
    前言欢迎回到我们的MyBatis系列教程。在前几期中,我们从基础到进阶,详细讲解了MyBatis的各个方面,并通过项目实战帮助大家巩固所学知识。本期内容中,我们将对整个系列教程进行总结与回顾,并展望未来的学习方向。通过这一期的内容,希望大家能够全面回顾MyBatis的核心知识点,并了解......