六. 修改操作 update
修改的接口 :
public int updateUser(User user);
修改对应的xml sql语句:
<update id="updateUser" parameterType="user"> update user set name=#{name},sex=#{sex},age=#{age},description=#{description} where id=#{id} </update>
六.一 全部修改属性的测试
@Test public void updateTest(){ SqlSession sqlSession=SqlSessionFactoryUtils.getSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=new User(); user.setId(1); //编号为1 user.setName("修改老蝴蝶"); user.setAge(25); user.setSex("男"); user.setDescription("这是一个修改的老蝴蝶"); try{ userMapper.updateUser(user); //调用修改的方法,进行修改。 //需要手动提交事务 sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); }finally{ sqlSession.close(); } }
日志输出:
数据库结果展示:
六.二 部分属性修改
sql 语句保持不变。 如只修改属性描述时
@Test public void updateTest(){ SqlSession sqlSession=SqlSessionFactoryUtils.getSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=new User(); user.setId(1); //编号为1 user.setDescription("这是一个老蝴蝶,只修改描述"); try{ userMapper.updateUser(user); //调用修改的方法,进行修改。 //需要手动提交事务 sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); }finally{ sqlSession.close(); } }
六.三 查询后修改
目前的id =1 的记录为:
测试方法为:
@Test public void updateTest(){ SqlSession sqlSession=SqlSessionFactoryUtils.getSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.getById(1); user.setDescription("这是一个老蝴蝶,只修改描述"); try{ userMapper.updateUser(user); //调用修改的方法,进行修改。 //需要手动提交事务 sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); }finally{ sqlSession.close(); } }
在修改的时候,也是修改的表中的全部字段。 需要动态sql 语句来优化。 以后会讲。
七. 删除对象根据id 编号 delete
接口:
public int delete(int id);
sql语句:
<!-- 删除记录 --> <delete id="delete" parameterType="int"> delete from user where id=#{id} </delete>
测试方法:
@Test public void deleteTest(){ SqlSession sqlSession=SqlSessionFactoryUtils.getSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); try{ userMapper.delete(1); //调用删除的方法,进行删除的操作。 //需要手动提交事务 sqlSession.commit(); }catch(Exception e){ sqlSession.rollback(); }finally{ sqlSession.close(); } }
运行后的日志为:
上面就是利用Mapper方式进行增删改查的基本操作用法 , 以后建议均用Mapper 的方式来处理持久化操作。
谢谢!!!