Mybatis第二篇| CRUD,这才是程序员入门第一课

简介: Mybatis第二篇| CRUD,这才是程序员入门第一课

目录

1.Mybatis第一篇|我的第一个Mybatis程序


前言

增删改查(CRUD)是程序员必会的技能,我们大部分的时间也都是消耗在增删改查上,当然我们不能只做一个只会CRUD的程序员,当我们掌握并且熟练了CRUD后,我们可以对CRUD进行进一步的优化。这篇文章主要讲解的是如何通过Mybatis来实现CRUD


XML映射器

大家可能会疑惑xml映射器是个啥玩意,其实简单点说,就是上一篇文章中的UserMapper.xml那玩意,我们来看看文档里怎么说的


1.jpg


MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

上面就是截取官方文档上的文字,简单粗暴点说就是比JDBC牛逼,然后让我们专注于SQL的代码的编写。


<!--namespace绑定对应的接口-->
<mapper namespace="com.kuls.dao.UserMapper">
<select id="getUserList" resultType="com.kuls.pojo.User">
select * from mybatis.user
</select>
</mapper>


上面的代码是我们上篇文章中的UserMapper.xml代码,可以看出标签中我们写了一个常见的Select语句,相应的update、insert...都是通过相应的标签来定义的。官方也给出了一些相应的标签:我们接下来一个一个讲解:namespace首先我们来看下namespace这个属性,从字面意思上就可以看出是命名空间,也就是说我们需要设置一个此xml文件对应的Mapper接口,这里我们只需要记住namespace中的包名要和Dao/mapper接口的包名保持一致selectselect我们应该不陌生,下面直接给大家一串代码看看Mybatis中的select怎么写?UserMapper.javaUserMapper.xml需要注意的是:id为UserMapper接口中的方法名resultType也就是查询返回结果的类型,很显然,我们这里查询的是所有的用户,那么肯定为User类,这里我们需要把实体类的全部路径写出来(在后面我们会学习更简单的写法)关于select标签中的属性配置,官方文档中都有说明(下图),大家看不懂也没关系,我们后面都会有涉及到。我们通过测试类可以来测试一下:我们还可以通过id来查询User对象:UserMapper.java相应的UserMapper.xmlinsert在UserMapper.java接口中添加一个方法:UserMapper.xml说明:id必须和接口方法同名因为我们接口方法中需要一个User类的参数,所以parameterType就代表着我们接口方法中需要参数的类型最后编写我们的测试类:上面的测试类中我们会发现多了一句代码:sqlSession.commit();这一句代码就是事务的提交,这个跟我们学习JDBC比较类似。update同样是在UserMapper.java中添加一个接口方法:UserMapper.xml相信大家这段代码应该能够看懂了,这里也就不再多说测试类:delete在UserMapper.java中添加一个接口方法UserMapper.xml在insert、delete、update标签属性中,官方文档也给出了说明通过map来插入数据通过map来插入数据是什么意思呢?首先给大家看完代码之后进行说明同样在UserMapper.java中添加接口方法大家看到,我们的参数是一个HashMap,也就是说我们待会需要插入的数据都是通过HashMap传送过来的。UserMapper.xml:大家可以看到上面的parameterType为map类型,这就说明我们需要传入一个map类型的参数。那么到底有啥用呢?在注释中,我也写了如果我们的实体类或者数据表中的字段太多,我们可以使用map我们再来看下我们测试类中是怎么写的:大家会注意到注意:这里map传入的键名和我们xml中values后面的名称是相同的,这也说明我们再xml中的insert语句中可以随意命名,只要map中传入的键值对的键名和其相同即可。 这里需要说明的是在实际开发和大部分开发下,使用Map的情况会比较多,因为这种方法非常的清晰明了,而且在实际开发中的参数都是非常多的,很适合通过Map来传值。”补充知识这里补充一个知识,后面我们也会有写到,但是提前告诉大家,防止大家在写上面代码时候报错。其实在上篇文章中有写到,就是每次我们写一个接口类也就是UserMapper.java时候,我们都需要进行绑定。在官方文档中也有说到从图中,我们看到有四种方式来进行绑定映射,我们目前使用的是第三种,也就是class的绑定方式,这些配置会告诉 MyBatis 去哪里找映射文件。本文代码完整代码:之后该系列的代码和文章全部放在这个GitHub项目,欢迎大家star!

相关文章
|
3月前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
56 6
|
2月前
|
XML Java 数据库连接
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
44 6
|
2月前
|
Java 关系型数据库 数据库连接
MyBatis入门(1)
MyBatis入门(1)
40 2
|
3月前
|
Java 数据库连接 测试技术
MyBatis-Plus入门
MyBatis-Plus入门
|
2月前
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
我们后端程序员不是操作MyBatis的CRUD Boy
MybatisPlus-标准CRUD制作,新增boolean save(T t),删除 ~ delete(int id),修改 ~ update(T t),根据id查询,T getById....
MybatisPlus-标准CRUD制作,新增boolean save(T t),删除 ~ delete(int id),修改 ~ update(T t),根据id查询,T getById....
|
2月前
|
Java 关系型数据库 数据库连接
技术好文共享:第一讲mybatis入门知识
技术好文共享:第一讲mybatis入门知识
26 6
|
2月前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
30 4
|
2月前
|
Java 程序员
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
36 1
|
2月前
|
SQL XML Java
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
25 1