2.mybatis的简单增删改查

本文详细介绍了MyBatis框架中的CRUD操作,包括查询、插入、更新和删除等核心功能的实现方式,以及如何通过接口和SQL映射文件进行数据库交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis的crud

1.CRUD

1. namespance

namespace中的包名要和dao/mapper接口的包名一致!

2.select

选择,查询语句:

  • id:就是对应的namespace中的方法名;
  • resultType:sql语句执行的返回值;
  • parameterType:参数类型;
  1. 编写接口

    User getById(int id);
    
  2. 编写对应的mapper中的sql语句

     <select id="getById" resultType="com.pojo.User" parameterType="int">
            select * from mybatis.user where id=#{id};
        </select>
    
  3. 测试

      public void getById(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            User byId = mapper.getById(1);
            System.out.println(byId);
            sqlSession.close();
        }
    

3.insert

增加语句:

  1. 接口

    int  insert(User user);
    
  2. sql语句

    <insert id="insert" parameterType="com.pojo.User">
            insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
        </insert>
    
  3. 测试

      @Test
        public void insert(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            mapper.insert(new User(4,"zhaoliu","159488"));
            sqlSession.commit();
            sqlSession.close();
        }
    

4.update

修改语句:

  1. 接口

    int updataList(User user);
    
  2. sql语句

     <update id="updataList" parameterType="com.pojo.User">
           update mybatis.user set `name`=#{name},pwd=#{pwd}  where id=#{id} ;
       </update>
    
  3. 测试

     @Test
        public void updata(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            mapper.updataList(new User(2,"wangwu","123456"));
    
            sqlSession.commit();
            sqlSession.close();
        }
    

5.delete

删除语句:

  1. 接口

    int deleteUser(int id);
    
  2. sql语句

    <!--删除语句    -->
        <delete id="deleteUser" parameterType="int">
            delete from mybatis.user where id=#{id};
        </delete>
    
  3. 测试

        @Test
        public void deleteUser(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            mapper.deleteUser(4);
            sqlSession.commit();
            sqlSession.close();
        }
    

注意点

  • 增删改需要提交事务

6.万能的map

假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!

  1. 接口

    int insert2(Map<String,Object> map);
    
  2. sql语句

     <!--map增加语句    -->
        <insert id="insert2" parameterType="map">
            insert into mybatis.user (id,name,pwd) values (#{userid},#{username},#{password});
        </insert>
    
  3. 测试

        @Test
        public void insert2(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("userid",4);
            map.put("username","tianqi");
            map.put("password","456789");
            mapper.insert2(map);
            
            sqlSession.commit();
            sqlSession.close();
        }
    
  • Map传递参数,直接在sql中取key即可! [parameterType=“map”]
  • 对象传递参数,直接在sql中取对象的属性即可![parameterType=“Object”]
  • 只有一个基本类型参数的情况下,可以直接在sql中取到!
  • 多个参数用Map,或者注解

7.模糊查询

  1. java代码执行的时候,传递通配符% %

      <!--模糊查询    -->
        <select id="getUserLike" resultType="com.pojo.User">
            select * from mybatis.user where `name` like #{value};
        </select>
    
        @Test
        public void getUserLike(){
            SqlSession sqlSession = MybatisUtil.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userLike = mapper.getUserLike("%wu%");
            for (User user : userLike) {
                System.out.println(user);
            }
    
            sqlSession.close();
        }
    
  2. 在sql拼接中使用通配符!

    	<select id="getUserLike" resultType="com.pojo.User">
            select * from mybatis.user where `name` like "%"#{value}"%";
        </select>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值