Mybatis中的CRUD

1.namespace
namespace中的包名要和mapper接口的包名一致

2. select
选择,查询语句
id:对应的namespace中的方法名
resultType:Sql语句执行的返回值
parameterType:参数类型

2.1、编写接口
//根据id查询用户

User getUserById(int id);

2.2、编写对应的mapper中的sql语句

<select id="getUserById" resultType="com.dai.pojo.User" parameterType="int">
        select * from mybatis.user where id = #{id}
    </select>

2.3、测试

@Test
    public void testId(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User userById = mapper.getUserById(2);

        System.out.println(userById);
        sqlSession.close();
    }

3.insert

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

4.update

 <update id="updateUser" parameterType="com.dai.pojo.User">
        update user set `name` =#{name},pwd=#{pwd} where id=#{id}
    </update>

5.delete

<delete id="deleteUser" parameterType="int">
        delete from user where id = #{id}
    </delete>

注意:增删改需要提交事务

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

//依靠Map来查询用户
    Map getUserById2(Map<String,Object> map);
  <select id="getUserById2" resultType="Map" parameterType="Map">
        select * from mybatis.user where id = #{id}
    </select>
@Test
public void testId2(){
    
    
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    HashMap<String, Object> map = new HashMap<String, Object>();

    map.put("id",2);

    Map userById2 = mapper.getUserById2(map);
    System.out.println(userById2);
    sqlSession.close();
}

Map传递参数,直接在sql中取出key即可
对象传递参数,直接在sql中取对象的属性即可

只有一个基本类型参数的情况下,可以直接在sql中取到

模糊查询:
1.Java代码执行的时候,会传递通配符 % %

List<User> userList = mapper.getUserLike("%李%");

2.在sql拼接中使用通配符

select * from mybatis.user where name like "%"#{value}"%"

猜你喜欢

转载自blog.csdn.net/weixin_47620760/article/details/114343342