当前位置: 首页 > news >正文

MyBatis入门程序之客户添加、更新与删除

【图书介绍】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》-CSDN博客

《Spring+Spring MVC+MyBatis从零开始学 视频教学版 第3版+整合开发实战+快速开发与项目实战+框架技术精讲与整合案例 计算机与互联网 编程语言与程序设计 Spring+Sprin》【摘要 书评 试读】- 京东图书

添加客户

在MyBatis的映射文件中,添加操作是通过<insert>元素来实现的。例如,向数据库中的t_user表中插入一条数据可以通过如下配置来实现:

<!--添加用户信息 --> 
<insert id="addUser" parameterType="com.ssm.po.User">insert into t_user(username,jobs,phone)values(#{username}, #{jobs},#{phone})
</insert>

在上述配置代码中,传入的参数是User类型的。在该类型的参数对象被传递到语句中时,#{username}会查找参数对象User的username属性(#{jobs}和#{phone}也是一样的),并将其属性值传入SQL语句中。

【示例6-3】为了验证上述配置是否正确,下面编写一个测试方法来执行添加操作。

在测试类MybatisTest中添加测试方法addUserTest(),其代码如下所示:

@Test
public void addUserTest() throws Exception {
String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = 
new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//创建User对象,并向对象中添加数据User user = new User();user.setUsername("tom");user.setJobs("worker");user.setPhone("13624589654");//执行SqlSession的插入方法,返回SQL语句影响的行数int rows = sqlSession.insert("com.ssm.mapper.UserMapper.addUser", user);//通过返回结果判断插入操作是否执行成功if (rows > 0) {System.out.println("成功添加" + rows + "条数据!");} else {System.out.println("添加数据失败!");}//提交事务sqlSession.commit();//关闭SqlSessionsqlSession.close();
}

上述代码中,创建了User对象,并向User对象中添加了属性值;然后通过SqlSession对象的insert()方法执行插入操作,并通过该操作返回的数据来判断插入操作是否执行成功;最后通过SqlSession的commit()方法提交事务,并通过SqlSession.close()方法关闭了SqlSession。

更新用户

MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的。如果需要更新用户数据,可以通过如下代码配置来实现:

<!--更新用户信息 -->
<update id="updateUser" parameterType="com.ssm.po.User">update t_user set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id}
</update>  

与插入数据的配置相比,更新操作配置中的元素与SQL语句都发生了相应变化,但其属性名却没有变。

【示例6-4】为了验证配置是否正确,下面以6.2.2节中新插入的数据为例进行更新用户测试。

在测试类MybatisTest中添加测试方法updateUserTest(),将id为4的用户的jobs属性值修改为“teacher”,其代码如下所示:

@Test
public void updateUserTest() throws Exception {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//创建User对象,并对对象中的数据进行模拟更新User user = new User();user.setId(4);user.setUsername("tom");user.setJobs("teacher");user.setPhone("13624589654");//执行SqlSession的更新方法,返回SQL语句影响的行数int rows = sqlSession.update("com.ssm.mapper.UserMapper.updateUser", user);if (rows > 0) {System.out.println("成功修改了" + rows + "条数据!");} else {System.out.println("修改数据失败!");}sqlSession.commit();sqlSession.close();
}

与添加用户的方法相比,更新操作的代码增加了id属性值的设置,并调用SqlSession的update()方法对id为4的用户的jobs属性值进行了修改。

删除用户

MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。在映射文件UserMapper.xml中添加删除客户信息的SQL语句,其示例代码如下:

<!--删除用户信息-->
<delete id="deleteUser" parameterType="Integer">delete from t_user where id=#{id}
</delete>

从上述配置的SQL语句中可以看出,我们只需要传递一个id值就可以将数据表中相应的数据删除掉。要测试删除操作的配置十分简单,只需使用SqlSession对象的delete()方法传入需要删除数据的id值即可。

【示例6-5】在测试类MybatisTest中添加测试方法deleteUserTest(),该方法用于将id为4的用户信息删除,其代码如下所示:

@Test
public void deleteUserTest() throws Exception {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//执行SqlSession的删除方法,返回SQL语句影响的行数int rows = sqlSession.delete("com.ssm.mapper.UserMapper.deleteUser", 4);if (rows > 0) {System.out.println("成功删除了" + rows + "条数据!");} else {System.out.println("删除数据失败!");}sqlSession.commit();sqlSession.close();
}

至此,MyBatis入门程序的增、删、改、查操作已经讲解完了。关于程序中映射文件和配置文件中的元素信息,将在第7章详细讲解,本章只需要了解所使用的元素即可。

http://www.lryc.cn/news/465686.html

相关文章:

  • 查缺补漏----数据结构树高总结
  • jenkins添加新服务
  • 网络连接设备的功能与应用概述
  • 【SpringCloud】04-Gateway网关登录校验
  • FFmpeg 库的简要说明
  • Go:error处理机制
  • Python机器学习中的主成分分析(PCA)全面解析与应用
  • MySQL 安装和基本使用
  • RequestBody接收参数报错com.fasterxml.jackson.databind.exc.MismatchedInputException
  • 大数据治理的关键技术:构建稳固的数据基石
  • OS管理和进程的学习
  • Linux 部署 Harbor 镜像仓库详解
  • 怎么把flv格式转换成mp4?将flv格式换成MP4格式的简单方法
  • 原型模式和建造模式的区别
  • 最新 client-java 调用 k8s ApiServer
  • TCP单包数据大于1460字节会被拆包的问题
  • 苏宁关键字搜索接口技术解析与实战
  • Java学习教程,从入门到精通,Java 基本数据类型详解(5)
  • 使用Flask实现本机的模型部署
  • 基于SSM的校园跑腿网站的设计与实现
  • 【Java】正则表达式详解
  • Java知识巩固(七)
  • Ubuntu22.04 更换源
  • 江恩理论和波浪理论的结合
  • AJAX——AJAX 取消请求
  • ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)
  • 嵌入式QT中基本工程模板分析
  • Linux网络:UDP socket - 简单聊天室
  • Codeforces Round 646 (Div. 2) E. Tree Shuffling(树,贪心)
  • HCIE-Datacom题库_11_IPsecVPN【17道题】