北京网站建设推广服务,怎么设置网址,百度贴吧首页,ae模板素材网站对于初学者#xff0c;如果进行mybatis的学习呢#xff1f;我总结了几点#xff0c;会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点#xff1b;当知道了为什么的时候就开始了解如何用的问题#xff0c;如何使用my…对于初学者如果进行mybatis的学习呢我总结了几点会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点当知道了为什么的时候就开始了解如何用的问题如何使用mybatis、有几种使用方式、各种方式的优缺点在这个阶段也会学习mybatis涉及到的一些标签的用法当知道了基础用法之后就开始接触一些高级的用法例如动态sql的使用、mybatis的缓存使用等至此在实战项目中使用mybatis进行开发已经没有问题了。
接下来就开始深入的研究一下mybatis这个持久层的框架在纯技术的方面进行研究提高自己的能力。首先大家需要了解一下mybatis的整体技术架构和工作原理接下来就开始了解一下mybatis各大核心组件的具体功能及其工作原理。至此算是对mybatis的原理简单的了解一下了由于博主的能力有限因此对于mybatis的框架技术研究也就到这里算结束了。
最后会了解一些其他的东西例如mybatis的逆向工程使用、如何开发一个mybatis插件在这里会介绍一下mybatis的分页实现等。
至此mybatis也算是入门了出去就可以和别人说你稍微了解mybatis框架对其也多少有一点自己的理解和看法了。
目录
1、sql映射文件中的标签
2、insert 标签
3、delete 标签
4、update 标签
5、select 标签
6、sql 标签 在实际开发过程中最多的还是使用sql映射文件和接口绑定的方式进行应用开发对于接口而言没有什么要介绍的只需要记住sql映射文件中的命名空间要和绑定的接口的全路径限定名一致即可。接下来详细的介绍一下sql映射文件的开发。
1、sql映射文件中的标签
sql映射文件中除去自定义的sql主要还是一些标签正是通过这些标签和对应的标签属性才实现了自动映射接下来详细的说一下sql映射文件中的标签用法
序号标签名作用1select映射sql查询语句2insert映射sql添加语句3update映射sql修改语句4delete映射sql删除语句5sql声明可复用的sql语句6resultMap自定义从数据库结果集中加载对象的规则7cache设置当前sql映射文件的缓存信息8cache-ref应用其他sql映射文件的缓存信息
这一篇文章只介绍标签 insert、delete、update、select、sql 的基本用法
2、insert 标签
insert 标签用于映射sql的新增语句具体使用如下
!-- 添加一条记录 --insert idinsertUserinsert into oa_user (id, loginName, name) value (#{id}, #{loginName}, #{name})
/insert
上边是一个简单的新增记录的例子有时需要获取添加后数据的id或者是通过数据库自增的方式添加数据时需要返回新增数据的id这是可以使用属性userGeneratedKeys和keyProperty进行字段的获取具体使用如下
!-- 新增一条记录此时数据的主键ID通过自增的方式生成并返回ID封装到字段 id 中--insert idinsertUserAuto userGeneratedKeystrue keyPropertyidinsert into oa_user (loginName, name) value (#{loginName}, #{name})
/insert
如上这种主键自增的方式需要依赖于数据库支持主键自增但是有的数据库是不支持这个特性的例如oracle那如何获取增加的数据的字段呢此时就需要借助selectKey标签具体使用如下
insert idaddUser!-- keyProperty: 插入的主键值封装给javabean的id属性 --!-- resultType: 查出值的返回值类型 --!-- order:before 是先获取主键在插入after是先插入在获取一般不使用after--selectKey keyPropertyid orderBEFORE resultTypeIntegerselect user.nextval from dual /selectKeyinsert into user (id,name) values (#{id},#{name})
/insert
有时候为了提高效率需要进行批量添加mybatis中通过拼接的方式进行实现具体实现如下
!-- 批量添加记录的写法 使用 foreach 进行批量添加语句的拼接其中collection 是接受的数据类型 item 是迭代的每一个元素separator 是连接符
--
insert idinsertUserList useGeneratedKeystrue keyPropertyidinsert into oa_user (id, loginName, name) valuesforeach collectionlist itemuser separator,(#{user.id}, #{user.loginName}, #{user.name})/foreach
/insert
3、delete 标签
delete 标签用于映射sql的删除语句具体使用如下
!-- 删除标签的使用通过映射删除语句进行数据删除 --
delete iddelUserdelete from oa_user where id #{id}
/delete
可以看到非常简单只要会写sql语句这个开发就没有任何问题。
4、update 标签
delete 标签用于映射sql的修改语句具体使用如下
update idupdateUserupdate oa_user set loginName #{loginName} where id #{id}
/update
5、select 标签
select 标签用于映射sql的查询语句具体使用如下
!-- 使用select标签映射一个简单的查询语句 --
select idselectUser resultTypecom.app.mapper.Userselect * from oa_user where id #{id}
/select
6、sql 标签
sql 标签用来定义可重用的sql映射语句其使用方法比较简单只需要使用sql标签来定义重用的sql然后在需要用的地方通过 include 标签引用即可具体使用如下
!-- 自定义要查询显示的字段列表 --
sql idshowUserColsid , loginName, name
/sql!-- 重用 自定义的sql代码段 showUserCols --
select idselectUser resultTypecom.app.mapper.Userselect include refidshowUserCols/includefrom oa_user where id #{id}
/select
上边这是一个简单的例子可以为sql 段传入参数具体如下
!-- 通过${} 来获取传入的数据 --
sql idshowUserCols${show_user_cols}
/sql!-- 为sql复用段传入 参数值 --
select idselectUser resultTypecom.app.mapper.Userselect include refidshowUserColsproperty nameshow_user_cols valueid, name//includefrom oa_user where id #{id}
/select
以上便是基本开发中常用到的标签和具体的用法介绍。
其实看到这里对于刚开始接触mybatis的人来说有很多疑惑我在最初学的时候有两个疑惑
1、sql 中如何接受java代码中传过来的参数 也没看到在sql映射文件中声明和体现呀。
2、mybatis 是否能实现关联查询并封装结果集呢
其实针对于这两个问题就是下一篇要描述的 输入映射和输出映射也就是参数的接收和结果集的映射相关问题。