Mybatis---增删改查

这篇具有很好参考价值的文章主要介绍了Mybatis---增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、添加用户

(1)持久层接口方法

(2)映射文件

(3)测试方法

二、修改用户

(1)持久层接口方法

(2)映射文件

(3)测试方法

三、删除用户

(1)持久层接口方法

(2)映射文件

(3)测试方法

四、查询用户

(1)持久层接口方法

(2)映射文件

(3)测试方法

五、模糊查询

(1)持久层接口方法

(2)映射文件

(3)测试方法

 六、分页查询

(1)持久层接口方法

(2)映射文件

(3)测试方法

七、映射文件注意点


一、添加用户

(1)持久层接口方法

public interface UserMapper {
    //增加用户
    void add(User user);
}

(2)映射文件

<?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="com.gq.mapper.UserMapper">
    <!-- 增加用户-->
    <insert id="add" parameterType="com.gq.pojo.User">
        insert into user(username,sex,address) values(#{username},#{sex},#{address})
    </insert>
</mapper>

(3)测试方法

@Test
    public void addTest() throws Exception {
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        User user=new User("大明","女","合肥");
        userMapper.add(user);
        session.commit();
        session.close();
        is.close();
   }

二、修改用户

(1)持久层接口方法

public interface UserMapper {
 
    //更新用户
    void update(User user);
}

(2)映射文件

<?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="com.gq.mapper.UserMapper">
    <!-- 更新用户-->
    <update id="update" parameterType="com.gq.pojo.User">
        update user set username=#{username},sex=#{sex},address=#{address} where id=#{id}
    </update>
</mapper>

(3)测试方法

@Test
    public void updateTest() throws Exception{
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        User user=new User(7,"唐三","男","北京");
        userMapper.update(user);
        session.commit();
        session.close();
        is.close();
   }

三、删除用户

(1)持久层接口方法

public interface UserMapper {

    //删除用户
    void delete(int userid);
}

(2)映射文件

<?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="com.gq.mapper.UserMapper">
  
    <!--根据id删除用户-->
    <delete id="delete" parameterType="int">
        delete from user where id=#{userid}
    </delete>
</mapper>

(3)测试方法

@Test
    public void deleteTest() throws Exception{
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        userMapper.delete(7);
        session.commit();
        session.close();
        is.close();
    }

四、查询用户

(1)持久层接口方法

public interface UserMapper {
    //根据id查询用户
    User findById(int userid);
}

(2)映射文件

<?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="com.gq.mapper.UserMapper">
   
    <!--根据id查询用户 -->
    <select id="findById" parameterType="int" resultType="com.gq.pojo.User">
        select *from user where id=#{userid}
    </select>
</mapper>

(3)测试方法

 @Test
    public void selectByidTest() throws Exception{
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        User user=userMapper.findById(3);
        System.out.println("-------------_______---------------");
        System.out.println("username="+user.getUsername()+" address="+user.getAddress()+" sex="+user.getSex());
        session.commit();
        session.close();
        is.close();
    }

五、模糊查询

(1)持久层接口方法

  List<User> findByNameLike(String username);

(2)映射文件

 <select id="findByNameLike" parameterType="string" resultType="com.gq.pojo.User">
        select *from user where username like #{username}
    </select>

 

(3)测试方法

@Test
    public void findNameLikeTest() throws Exception{
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        List<User> userList=userMapper.findByNameLike("%北京%");
       for(User user:userList){
           System.out.println(user.toString());
       }
        session.commit();
        session.close();
        is.close();
    }

 六、分页查询

(1)持久层接口方法

 List<User> findPage(@Param("a1") int start, @Param("a2") int size);

对于这里的@Param注解,解释如下:

它可以定义参数名称,让我们在映射文件直接使用名称即可,如果没有他的话,分页查询传递的则为arg0,arg1....或者是param1,param2......并且这两个是死的,不能改

(2)映射文件

<?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="com.gq.mapper.UserMapper">
 
    <!-- 分页查询-->
    <select id="findPage" resultType="com.gq.pojo.User">
//因为这里我们前面已经使用@Param注解定义过名字了,不然不可以使用a1,a2
        select *from user limit #{a1},#{a2}
    </select>
</mapper>

(3)测试方法

    public void findPageTest() throws Exception{
        InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
        SqlSession session=sqlSessionFactory.openSession();
        UserMapper userMapper=session.getMapper(UserMapper.class);
        List<User> userList=userMapper.findPage(0,2);
        userList.forEach(System.out::println);
        session.commit();
        session.close();
        is.close();
    }

七、映射文件注意点

对于映射文件中的一些如parameterType等等,具体解释如下。

parameterType:表示参数类型

resultType:表示返回值的类型

对于parameterType,假如是字符串类型,我们将他的值写为string,而不是java.lang.String,为什么呢?

参数/返回值类型为基本数据类型/包装类/String等类型我们可以写全类名也可以写别名

数据类型      别名
byte          _byte
long         _long
short        _short
int         _int
int         _integer
double      _double
float       _float
boolean     _boolean
String      string
Byte        byte
Long        long
Short       short
Integer     int/integer
Double      double
Float       float
Boolean     boolean
Date        date
BigDecimal  decimal/bigdecimal
Object      object
Map         map
HashMap     hashmap
List        list
ArrayList   arraylist
Collection  collection
Iterator    iterator

 文章来源地址https://www.toymoban.com/news/detail-707760.html

到了这里,关于Mybatis---增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发实例:Spring Boot、MyBatis和Layui打造增删改查项目

    通过学习这个实例项目,我们将积累点滴技术知识和实践经验,进一步提升我们的开发能力。学习如何构建增删改查功能的完整应用,从数据库访问到前端界面的开发,涵盖了全栈开发的方方面面。此外,我们还将学会处理常见的业务逻辑和数据操作,提高编码质量和效率。

    2024年02月06日
    浏览(69)
  • Spring Boot入门(08):整合Mybatis访问MySQL实现增删改查 | 超级详细,建议收藏

            在现代的Web应用程序中,数据库操作是不可避免的。而Spring Boot作为一款快速开发框架,其优秀的集成能力非常适合与数据库交互,而MyBatis则是一个优秀的ORM框架,可以大大简化我们的数据库操作。本文将结合Spring Boot和MyBatis,带您实现高效的MySQL增删改查操作,

    2024年02月12日
    浏览(47)
  • Spring Boot入门(09):如何使用MyBatis的XML配置方式实现MySQL的增删改查操作?

            想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应用程序更加实用和强大。跟随本文一起来探索MyBatis在Spring Boot中的力量吧!        

    2024年02月11日
    浏览(70)
  • Spring Boot入门(09):使用MyBatis的XML配置方式访问MySQL实现增删改查 | 超级详细,建议收藏

            想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应用程序更加实用和强大。跟随本文一起来探索MyBatis在Spring Boot中的力量吧!        

    2024年02月13日
    浏览(46)
  • Java mybatis spring习题

    1、MyBatis 和 Spring 整合需要引入的 jar 包是( )。 A.spring -context B.mybatis-spring C.spring -jdbc D.spring -webmvc 答案:B 解析:MyBatis 与 Spring 整合包是 mybatis -spring 2、用户通过浏览器向服务器发送请求时,负责拦截用户请求的是 ()。 A.处理器 B.处理器映射器 C.前端控制器 D.处理器适配器

    2024年02月11日
    浏览(41)
  • Java Spring和Spring集成Mybatis

    1.Spring 2.Spring 集成Mybatis 1.Spring 特性 IOC :控制反转 AOP :面向切面 Spring 组成部分 在SMM中起到的作用(粘合剂) Spring 理念 OOP 核心思想【万物皆对象】 Spring 核心思想【万物皆Bean组件】 Spring 优势 低侵入式 独立于应用服务器 低耦合度 面向切面(集中式处理) 与第三方框架

    2024年02月16日
    浏览(45)
  • 【MyBatis】2、MyBatis 的动态 SQL 和增删改操作

    注意: openSession() 的参数默认值是 false (不自动提交事务) 🌼 设置新插入记录的主键(id)到参数对象中 动态 SQL 官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html ☆ 批量插入: 💦 批量添加的执行效率比 多次 单个添加的执行效率要高,但是无法获取到新插入的记录的主

    2024年02月07日
    浏览(50)
  • Mybatis---增删改查

    目录 一、添加用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 二、修改用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 三、删除用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 四、查询用户 (1)持久层接口方法 (2)映射文件 (3)测试方法 五

    2024年02月09日
    浏览(30)
  • 【Mybatis】增删改查

    在src目录下创建一个名为com.mybatis.po的包 创建持久化类MyUser,包含三个属性(uid,uname,usex) 在src目录下创建一个名为com.mybatis.mapper的包 创建映射文件UserMapper.xml 在src目录下创建Mybatis的核心配置文件(mybatis-config.xml) 在src目录下创建一个名为com.mybatis.test的包,在该包中创建MyBat

    2024年02月02日
    浏览(31)
  • MyBatis的增删改查

            本章学习MyBatis的基本crud操作。 java程序如下: ①使用map集合传参 ②使用pojo传参 SQL语句如下:  运行结果: ps:如果采用map集合传参,#{} 里写的是map集合的key,如果key不存在不会报错,数据库表中会插入NULL。 ps:如果采用POJO传参,#{} 里写的是POJO类中get方法的方法

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包