MyBatis的命名空间方式的增删改查操作(二)下

简介: MyBatis的命名空间方式的增删改查操作(二)

四.修改 update


四.一 全部修改时


接口:


int update(User user);


实现方法:


@Override
  public int update(User user) {
    SqlSession sqlSession=SqlSessionFactoryUtils.getSession();
    int result= sqlSession.update("com.yjl.pojo.User.updateUser",user);
    sqlSession.commit();  //手动提交
    sqlSession.close();
    return result;
  }


测试方法:


@Test
  public void updateTest(){
    UserDao userDao=new UserDaoImpl();
    User user=new User();
    user.setId(1); //编号为1
    user.setName("修改老蝴蝶");
    user.setAge(25);
    user.setSex("男");
    user.setDescription("这是一个修改的老蝴蝶");
    userDao.update(user);
  }


xml 修改语句


<update id="updateUser" parameterType="com.yjl.pojo.User">
    update user set name=#{name},sex=#{sex},age=#{age},description=#{description}
    where id=#{id}
  </update>


运行时:


20190617215808642.png


数据库:


20190617215829875.png


确实发生了修改的操作。是正确的。


四.二 部分修改字段时


xml 不变。

测试方法:


@Test
  public void update1Test(){
    UserDao userDao=new UserDaoImpl();
    User user=new User();
    user.setId(1);
    user.setDescription("这是一个老蝴蝶,只修改描述");
    userDao.update(user);
  }


20190617215959891.png


传入的值为空,


20190617220026274.png


这样修改的话,#{name} 时取出的值 是默认的String 为null, #{age} 也是默认的Integer, 为null. 表示修改的传入值是null .


四.三 查询时修改


将id =1 的值设置成原先的值


20190617220227550.png


xml 不变,测试方法为:


@Test
  public void update2Test(){
    UserDao userDao=new UserDaoImpl();
    SqlSession sqlSession=SqlSessionFactoryUtils.getSession();
    User user=sqlSession.selectOne("com.yjl.pojo.User.getById",1);
    user.setDescription("这是一个老蝴蝶,只修改描述");
    userDao.update(user);
  }


20190617220409378.png


20190617220425888.png


可以正确的进行修改。


如果一个表中 有几十个字段,而现在只修改 一个描述字段,会将以前所有的字段都进行修改, 很浪费资源的。 希望 可以修改哪一个,就只修改哪一个, 后面的动态sql 语句会学习的。


五. 删除 delete


接口:


int delete(int id);


实现类:


@Override
  public int delete(int id) {
    SqlSession sqlSession=SqlSessionFactoryUtils.getSession();
    int result= sqlSession.delete("com.yjl.pojo.User.deleteById",id);
    sqlSession.commit();  //手动提交
    sqlSession.close();
    return result;
  }


测试方法:


@Test
  public void deleteTest(){
    UserDao userDao=new UserDaoImpl();
    userDao.delete(1);
  }


xml 语句:


  <!-- 删除记录 -->
  <delete id="deleteById" parameterType="int">
    delete from user where id=#{id}
  </delete>


写正常的删除语句。


运行:


20190617220857796.png


20190617220909457.png


六. 注意点


这就是原来 ibatis 时的命名空间的 单表基本操作, 当然 ,也有其他的操作形式,这里暂不讲解,会在Mapper 时进行详细的讲解。


另外注意, sql 语句时, 如:


delete from user where id=#{id}


加上; 和不加; 都可以运行, 但不建议加; 号。


谢谢!!!

相关文章
|
2月前
|
SQL XML Java
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
文章介绍了MyBatis的简单增删改查操作,包括创建数据表、实体类、配置文件、Mapper接口及其XML文件,并解释了`#{}`预编译参数和`@Param`注解的使用。同时,还涵盖了resultType与resultMap的区别,并提供了完整的代码实例和测试用例。
mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
44 1
|
4月前
|
Java 数据库连接 数据库
mybatis plus 中增删改查及Wrapper的使用
mybatis plus 中增删改查及Wrapper的使用
197 3
|
5月前
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
121 3
我们后端程序员不是操作MyBatis的CRUD Boy
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
315 0
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
4月前
|
Java 数据库连接 mybatis
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
|
5月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
67 2
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法
MybatisPlus介绍新增用户,根据id查询,引入MybatisPlus的起步依赖,增删改查最简单的写法