Mybatis CURD (增删改查)

CURD (增删改查)

命名空间(Namespaces)

namespaces中的包名要和mapper接口的包名一致

1. 示例 《增删改要提交事务》

选择,查询语句

  • id:对应namespace中的方法名

  • resultType:sql语句执行的返回值

  • parameterType:参数类型

    package com.zsq.mapper;

    import com.zsq.entity.User;

    import java.util.List;

    public interface UserMapper {
       // 获取全部用户
       List<User> getAllUser();

       // 根据用户ID会对应用户
       User getOneUserById(int uid);

       // 添加用户
       int addUser(User user);

       // 修改用户信息
       int updateUserById(User user);

       // 根据用户ID删除对应用户
       int deleteUserById(int uid);

    }
    <?xml version="1.0" encoding="UTF8" ?>
    <!DOCTYPE mapper
           PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zsq.mapper.UserMapper">
       <select id="getAllUser" resultType="com.zsq.entity.User">
          select * from `user`
       </select>

       <select id="getOneUserById" parameterType="int" resultType="com.zsq.entity.User">
          select * from `user` where id = #{uid}
       </select>

       <insert id="addUser" parameterType="com.zsq.entity.User">
          insert into `user`(id,name,pws) value (#{id},#{name},#{pws})
       </insert>

       <update id="updateUserById" parameterType="com.zsq.entity.User">
          update `user` set name = #{name},pws = #{pws} where id = #{id}
       </update>

       <delete id="deleteUserById" parameterType="int">
          delete from `user` where id = #{uid}
       </delete>
    </mapper>
    package com.zsq.entity;

    import com.zsq.entity.User;
    import com.zsq.mapper.UserMapper;
    import com.zsq.untils.MybatisUntil;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;

    import java.util.List;

    public class Test01 {

       @Test
       public void selectUserListTest(){
           SqlSession sqlSession = MybatisUntil.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           List<User> allUser = mapper.getAllUser();
           for (User user : allUser) {
               System.out.println(user.toString());
          }
           sqlSession.close();
      }

       @Test
       public void getOneUserByIdTest(){
           SqlSession sqlSession = MybatisUntil.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           User oneUserById = mapper.getOneUserById(2);
           System.out.println(oneUserById.toString());
           sqlSession.close();
      }

       @Test
       public void addUserTest(){
           User user = new User(3,"新郑","123456");
           SqlSession sqlSession = MybatisUntil.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           int i = mapper.addUser(user);
           if (i > 0) System.out.println("添加用户成功!");
           sqlSession.commit();
           sqlSession.close();
      }

       @Test
       public void updateUserById(){
           User user = new User(3,"新郑修改","123456");
           SqlSession sqlSession = MybatisUntil.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           int i = mapper.updateUserById(user);
           if (i > 0) System.out.println("更新用户成功!");
           sqlSession.commit();
           sqlSession.close();
      }

       @Test
       public void deleteUserById(){
           SqlSession sqlSession = MybatisUntil.getSqlSession();
           UserMapper mapper = sqlSession.getMapper(UserMapper.class);
           int i = mapper.deleteUserById(2);
           if (i > 0) System.out.println("删除用户成功!");
           sqlSession.commit();
           sqlSession.close();
      }

    }

2.MAP类型

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

  • 定义接口


   // 添加用户Map类型
   int addUser2(Map<String,Object> property);
  • 接口绑定

        <insert id="addUser2" parameterType="map">
          insert into `user`(id,name,pws) value (#{userid},#{username},#{password})
       </insert>  
  • 测试

     @Test
       public void addUserTest2(){
           SqlSession sqlSession = MybatisUntil.getSqlSession();

           UserMapper mapper = sqlSession.getMapper(UserMapper.class);

           Map<String,Object> map = new HashMap<String, Object>();
           map.put("userid",55);
           map.put("username","mapAdd");
           map.put("password","123456");
           mapper.addUser2(map);
           sqlSession.commit();
           sqlSession.close();
      }

3.模糊查询

  • 定义接口


  // 模糊查询
   List<User> getUserListLike(String value);
  • 接口绑定

         <select id="getUserListLike" parameterType="String" resultType="com.zsq.entity.User">
          select * from `user` where name like #{value}
       </select>
  • 测试

  

@Test
public void getUserListLikeTest(){
SqlSession sqlSession = MybatisUntil.getSqlSession();

UserMapper mapper = sqlSession.getMapper(UserMapper.class);

List<User> userListLike = mapper.getUserListLike("%新%");
for (User user : userListLike) {
System.out.println(user.toString());
}

sqlSession.close();
}

posted @ 2022-09-12 00:08  大团长  阅读(152)  评论(0编辑  收藏  举报