首页 > 技术文章 > Mybatis的CRUD 增删改查

pojo 2021-01-14 16:01 原文

Mybatis 官网: https://mybatis.org/mybatis-3/zh/getting-started.html


namespace 命名空间

namespace绑定一个对应的 Dap/Mapper 接口

<!--namespace: 绑定一个对应的 Dao/Mapper 接口-->
<mapper namespace="com.pro.dao.UserMapper">

    <!--  id: 绑定接口中方法  -->
    <select id="getUserList" resultType="com.pro.pojo.User">
        select * from user
    </select>
</mapper>


select

查询语句

  • id:绑定 namespace 中接口的方法
  • resultType:SQL返回值类型
  • parameterType:参数类型

编写接口

// 根据id查询用户
User getUserById(int id);

编写SQL

<!--  根据id查询用户  -->
<select id="getUserById" resultType="com.pro.pojo.User" parameterType="int">
    select * from user where id = #{id}
</select>

测试

@Test // 根据id查询用户
public void getUserById() {
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    User user = mapper.getUserById(1);
    System.out.println("getUserById --> " + user);

    // 关闭资源
    sqlSession.close();
}

insert

增删改操作都差不多,这里就演示 insertupdatedelete 就只写了 SQL

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

接口

// 新增用户
int addUser(User user);

SQL

<!--  新增用户, 对象中的属性可以直接拿出来用  -->
<insert id="addUser" parameterType="com.pro.pojo.User">
    insert into user(name,pwd) values(#{name},#{pwd})
</insert>

测试

@Test // 新增用户
public void addUser() {
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);

    User user = new User(0, "test", "123456");
    int test = mapper.addUser(user);

    // 提交事务
    sqlSession.commit();
    sqlSession.close();
}

update

需要提交事务

<!--  修改用户  -->
<update id="updateUserById" parameterType="com.pro.pojo.User">
    update user set name = #{name}, pwd = ${pwd} where id = #{id}
</update>

delete

需要提交事务

<!--  删除用户  -->
<delete id="deleteUserById" parameterType="int">
    delete from user where id = #{id}
</delete>

推荐阅读