MyBatis的Mapper 代理的增删改查操作(三)下

简介: MyBatis的Mapper 代理的增删改查操作(三)

六. 修改操作 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();
    }
  }


日志输出:


20190618211244769.png


数据库结果展示:


20190618211307443.png


六.二 部分属性修改


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();
    }
  }


20190618211437990.png


20190618211456752.png


六.三 查询后修改


目前的id =1 的记录为:


20190618211627310.png


测试方法为:


@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();
    }
  }


20190618211712936.png


在修改的时候,也是修改的表中的全部字段。 需要动态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();
    }
  }


运行后的日志为:


20190618212132583.png


20190618212148161.png


上面就是利用Mapper方式进行增删改查的基本操作用法 , 以后建议均用Mapper 的方式来处理持久化操作。


谢谢!!!

相关文章
|
1天前
|
XML Java 数据库连接
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
14 6
|
5天前
|
SQL Java 数据库连接
MyBatis 初识简单操作
MyBatis 初识简单操作
10 0
|
6天前
|
SQL Java 数据库连接
【mybatis】动态sql之批量增删改查
【mybatis】动态sql之批量增删改查
11 0
|
18天前
|
Java 数据库连接 数据库
spring+mybatis_编写一个简单的增删改查接口
spring+mybatis_编写一个简单的增删改查接口
17 2
|
19天前
|
算法 数据库
Mybatis-Plus实现常规增删改操作
Mybatis-Plus实现常规增删改操作
13 0
|
19天前
|
Java 数据库连接 mybatis
MyBatis中Mapper接口和dao区别是什么?
MyBatis中Mapper接口和dao区别是什么?
|
21天前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之查询操作的详细解析
Javaweb之Mybatis的基础操作之查询操作的详细解析
22 0
|
21天前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
Javaweb之Mybatis的基础操作之新增和更新操作的详细解析
18 0
|
1月前
|
XML Java 数据库连接
探秘MyBatis:手写Mapper代理的源码解析与实现
探秘MyBatis:手写Mapper代理的源码解析与实现
21 1
|
1月前
|
SQL Java 数据库连接
MyBatis精髓揭秘:Mapper代理实现的黑盒探索
MyBatis精髓揭秘:Mapper代理实现的黑盒探索
24 1