MyBatis之增删改查

编程入门 行业动态 更新时间:2024-10-09 17:20:12

<a href=https://www.elefans.com/category/jswz/34/1769966.html style=MyBatis之增删改查"/>

MyBatis之增删改查

在前面入门小案例的基础上来学习 CRUD 操作

目录

查询一个用户

添加一个用户

删除一个用户

修改用户信息

使用map来简化操作


查询一个用户

要求:通过用户的 id 查询到用户

用户表:

 

在 UserDao 接口中编写查询用户的方法

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

 在 userMapper.xml 文件中编写对应 sql 语句

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

测试

@Testpublic void test1(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);User userById = mapper.getUserById(4);System.out.println(userById);sqlSession.close();}

添加一个用户

注意:增、删、改操作需要使用 sqlSessionmit() 方法提交事务,否则不会生效

要求:向数据库中添加一个 user 对象

接口中设置方法

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

编写 sql 语句

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

测试

    //增删改需要提交事务@Testpublic void test2(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);int i = mapper.addUser(new User(5, "Cube", "Cube666"));if (i > 0){System.out.println("添加成功");}//提交事务sqlSessionmit();sqlSession.close();}

删除一个用户

要求:通过用户 id 删除数据库中对应用户信息

 

接口中设置方法

    //根据 id 删除一个用户int delUser(int userId);

 编写 sql 语句

    <delete id="delUser" parameterType="int">deletefrom mybatis.userwhere id=#{userId};</delete>

测试

    @Testpublic void test3(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);int i = mapper.delUser(7);if (i > 0){System.out.println("删除成功");}sqlSessionmit();sqlSession.close();}

修改用户信息

要求:根据 id 修改对应用户的信息

接口中设置方法:

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

 编写 sql 语句,这里的参数名称必须与前面(属性名)的相同

    <update id="updateUser" parameterType="com.zhouyue.pojo.User">update mybatis.userset name = #{name}, pwd = #{pwd}where id = #{id};</update>

测试

 @Testpublic void test4(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);int i = mapper.updateUser(new User(5, "BiuBiu", "BiuBiu666"));if (i > 0){System.out.println("修改成功");}sqlSessionmit();sqlSession.close();}

使用map来简化操作

在上面修改操作中,我们在方法里面传入的是一个 user 对象,如果 user 对象属性太多,我们又只修改其中的一个属性的值,使用上面的方法就很麻烦,因此我们可以使用 map 来简化操作

接口中设置方法

    //修改用户信息方法二int updateUser2(Map<String,Object> map);

编写 sql 语句,这里的参数名称可以随意设置,不一定要与前面(属性名)相同

    <update id="updateUser2" parameterType="map">update mybatis.userset pwd = #{password}where id = #{userid};</update>

测试,可以发现我们只需向 map 传入 userid 和 password 的值即可,不用修改的 name 值,就不必传入

    @Testpublic void test5(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);Map<String, Object> map = new HashMap<>();map.put("password", "xxss12345");map.put("userid", 5);int i = mapper.updateUser2(map);if (i > 0){System.out.println("修改成功");}sqlSessionmit();;sqlSession.close();}

CRUD 都可以使用这种方式来进行简化  

更多推荐

MyBatis之增删改查

本文发布于:2024-02-25 06:11:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1698058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:MyBatis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!