MyBatis02:CRUD 操作
本文为 SSM 框架系列之 MyBatis 第二部分:增删改查操作
其它内容的链接如下:
【1】MyBatis01:初识 MyBatis 与 第一个 MyBaits 程序
【2】MyBatis02:CRUD 操作
【3】MyBatis03:配置解析
【4】MyBatis04:作用域和生命周期
【5】MyBatis05:分页
【6】MyBatis06:日志
【7】MyBatis07:使用注解开发
【8】MyBatis08:ResultMap 的结果集映射
【9】MyBatis09:动态 SQL 与缓存
传送门:
- 1 CRUD操作
- 1.1 namespace
- 1.2 操作步骤
- 1.3 查(Retrieve)
- 1.3.1 根据 id 查询用户:直接在方法中传递参数
- 1.3.2 根据 密码 和 名字 查询用户:使用万能的 Map
- 1.4 增(Create)
- 1.5 改(Update)
- 1.6 删(Delete)
- 1.7 本章总结
1 CRUD操作
1.1 namespace
变换于原来实现类的 xml 文件中的 namespace 的参数必须是对应 Mapper 接口的完整包名路径。
1.2 操作步骤
- 先在 Mapper 接口中写入约束的方法名;
- 再对应实现类的 xml 文件写入具体的方法;
- 写一个测试类进行测试。
1.3 查(Retrieve)
1.3.1 根据 id 查询用户:直接在方法中传递参数
1)先在 Mapper 接口中写入约束的方法名;
/*** 根据指定 id 号查询对象* @param id* @return*/User selectUserById(int id);
2)再对应实现类的 xml 文件写入具体的方法;
<select id="selectUserById" parameterType="int" resultType="sharm.pojo.User">select * from mybatis.user where id = #{id}</select>
3)写一个测试类进行测试。
@Testpublic void testSelectUserById (){// 这里测试的方法的步骤也是死的// 1 首先得到利用工具类得到 session 对象SqlSession session = MyBatisUtils.getSession();// 2 然后利用该方法得到对应的 mapper 对象UserMapper mapper = session.getMapper(UserMapper.class);// 3 直接利用 mapper 的方法User user = mapper.selectUserById(1);System.out.println(user);session.close();}
1.3.2 根据 密码 和 名字 查询用户:使用万能的 Map
1)先在 Mapper 接口中写入约束的方法名;
/*** 根据密码和名字查询用户* @param map* @return*/User selectUserByNP(Map<String, String> map);
2)再对应实现类的 xml 文件写入具体的方法;
<select id="selectUserByNP" parameterType="Map" resultType="sharm.pojo.User">select * from mybatis.user where name = #{name} and password = #{password};</select>
3)写一个测试类进行测试。
@Testpublic void testSelectUserByNP (){// 这里测试的方法的步骤也是死的// 1 首先得到利用工具类得到 session 对象SqlSession session = MyBatisUtils.getSession();// 2 然后利用该方法得到对应的 mapper 对象UserMapper userMapper = session.getMapper(UserMapper.class);// 3 建立一个 Map 对象用于存放名称和密码HashMap<String, String> hashMap = new HashMap<>();hashMap.put("name", "luma");hashMap.put("password", "123456");// 4 直接利用 mapper 的方法User user = userMapper.selectUserByNP(hashMap);System.out.println(user);session.close();}
1.4 增(Create)
1)先在 Mapper 接口中写入约束的方法名;
/*** 在表中插入一个数据* @param user* @return*/void addUser(User user);
2)再对应实现类的 xml 文件写入具体的方法;
<insert id="addUser" parameterType="sharm.pojo.User">insert into mybatis.user(id, name, password) value (#{id}, #{name}, #{password})</insert>
3)写一个测试类进行测试。
@Testpublic void testAddUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);User jack = new User(2, "jack", "123456");sessionMapper.addUser(jack);session.commit();session.close();}
1.5 改(Update)
1)先在 Mapper 接口中写入约束的方法名;
/*** 更新表中的某一个对象* @param user*/void updateUser(User user);
2)再对应实现类的 xml 文件写入具体的方法;
<update id="updateUser" parameterType="sharm.pojo.User" >update mybatis.user set name=#{name}, password=#{password} where id=#{id}</update>
3)写一个测试类进行测试。
@Testpublic void testUpdateUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);User jula = new User(2, "luma", "123456");sessionMapper.updateUser(jula);session.commit();session.close();}
1.6 删(Delete)
1)先在 Mapper 接口中写入约束的方法名;
/*** 删除表中的某一个用户* @param id*/void deleteUser(int id);
2)再对应实现类的 xml 文件写入具体的方法;
<delete id="deleteUser" parameterType="int" >delete from mybatis.user where id = #{id}</delete>
3)写一个测试类进行测试。
@Testpublic void testDeleteUser(){SqlSession session = MyBatisUtils.getSession();UserMapper sessionMapper = session.getMapper(UserMapper.class);sessionMapper.deleteUser(2);// 必须提交事务session.commit();session.close();}
1.7 本章总结
- 所有的增删改操作都需要提交事务;
- 为了规范操作,在SQL的配置文件中,我们尽量将 Parameter 参数和 resultType 都写上;
- 一个接口对应一个 xml 文件,一个接口中约束的方法对应一个标签。在标签中,id 为方法名,resultType 为注入的对象类型, parameterType 为该方法需要导入的参数类型。
MyBatis02:CRUD 操作相关推荐
- MyBatis02:CRUD操作和配置解析
MyBatis02:CRUD操作和配置解析 CRUD select 根据id查询用户 接口方法 public interface UserMapper {//查询所有用户List<User> ...
- mybatis CRUD操作
mybatis CRUD操作 select select标签是mybatis最常用的标签之一. select语句有很多属性可以详细的配置每一天sql语句. id 命名空间唯一的标识. 接口中的方法名与 ...
- mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- php 命令执行crud_如何使用原始JavaScript执行CRUD操作
php 命令执行crud by Zafar Saleem 通过Zafar Saleem 如何使用原始JavaScript执行CRUD操作 (How to perform CRUD operations ...
- vue.js crud_如何使用VS Code和ADO.NET使用ASP.NET Core执行CRUD操作
vue.js crud 介绍 (Introduction) In this article we are going to create a web application using ASP.NET ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 创建包含CRUD操作的Web API接口-第一部
在这里,我们将创建一个新的Web API项目,它将使用实体框架实现Get,POST.PUT和DELETE方法来实现CRUD操作. 首先,在Visual Studio 2013 for Web expr ...
- java中利用框架传入相同的url实现crud操作_还在手写CRUD代码?这款开源框架助你解放双手!
相信很多朋友在项目中使用的ORM框架都是MyBatis,如果单用MyBatis来操作数据库的话,需要手写很多单表查询的SQL实现.这时候我们往往会选择一个增强工具来实现这些单表CRUD操作,这里推荐一 ...
- 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查...
第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...
最新文章
- jq修改iframe html代码,jQuery控制iFrame(实例代码)
- FileSystemWatcher使用方法具体解释
- 存储过程 psal emp.sal%type是什么意思
- python花钱培训值吗-交钱了,学了3天Python编程,我想放弃了......
- 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串
- 五大常用算法之四:回溯法
- 【Java基础总结】多线程
- JavaWeb工程师知识图谱
- 文件上传下载——sz和rz
- python定义和调用函数
- java excel批量导入数据库数据_java把excel数据批量导入到数据库
- 服装行业进销存软件有哪些简单好用又便宜的?
- kron matlab_MATLAB中kron命令有什么用途
- 省钱兄霸王餐源码uniapp前端
- 一个IT男的500强生涯
- android自定义相机打开闪光灯,Android 照相机(闪光灯,切换摄像头)
- div+css静态网页设计——代码质量好-海贼王(6页) 学生漫画网页设计模板代码 漫画网页制作模板 学生简单动漫网站设计成品
- 1,什么是JESD204
- 一文看懂区块链架构设计(附知识图谱)
- 矩阵乘法可交换的条件,其中的几何意义