ibatis小知识点
2013-12-02 18:21
302 查看
1、resultMap和resultClass的区别,下面是两者的区别
一:当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类型。
二:当查询结果集与属性名对应不上的时候,就可以采用resultMap指定列名与对象属性名之间的对应关系,否则对应不上的属性将为null或0.
resultClass: 可以把结果自动映射到相应的 JAVA 类中,但无法指定输出字段的类型,会对性能产生轻微的影响。
resultMap: 可以预先定义 resultMap 元素,可以控制数据如何从结果集中取出,以及哪个属性匹配哪个字段,
若不小心将resultMap写成了 resultClass,导致最后返回的结果,有好多字段是空值,而DB中是有值的。因为resultClass所匹配的字段是javabean的字段名,通常javabean的字段命名与数据库的命名方式有所区别
2、ibatis的<sql id="">的位置需要比使用该id的<include ref>要上面才行,否则会找不到
第一步:
在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into tb_user(name)values(#{name})
</insert>
第二步:
Mybatis执行完插入语句后,自动将自增长值赋值给对象User的属性id。因此,可通过User对应的getter方法获取!
注:这里插入进去后返回的不是ID,而是插入行数,所以成功总是返回1,这不是ID,要得到ID就直接getter对象里面的ID就可以了。
一:当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类型。
二:当查询结果集与属性名对应不上的时候,就可以采用resultMap指定列名与对象属性名之间的对应关系,否则对应不上的属性将为null或0.
resultClass: 可以把结果自动映射到相应的 JAVA 类中,但无法指定输出字段的类型,会对性能产生轻微的影响。
resultMap: 可以预先定义 resultMap 元素,可以控制数据如何从结果集中取出,以及哪个属性匹配哪个字段,
若不小心将resultMap写成了 resultClass,导致最后返回的结果,有好多字段是空值,而DB中是有值的。因为resultClass所匹配的字段是javabean的字段名,通常javabean的字段命名与数据库的命名方式有所区别
2、ibatis的<sql id="">的位置需要比使用该id的<include ref>要上面才行,否则会找不到
3、MyBatis获取插入记录的自增长字段值
第一步:在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into tb_user(name)values(#{name})
</insert>
第二步:
Mybatis执行完插入语句后,自动将自增长值赋值给对象User的属性id。因此,可通过User对应的getter方法获取!
注:这里插入进去后返回的不是ID,而是插入行数,所以成功总是返回1,这不是ID,要得到ID就直接getter对象里面的ID就可以了。
相关文章推荐
- 糊涂窗口综合症和Nagle算法
- iOS 5中的strong和weak关键字
- python函数全局变量和局部变量
- 体验输出字符中有多少个‘A
- x86和x64
- SSD和HDD的区别
- 数字转成字母的方法
- Django Form处理(一)
- AP发票数据导入接口开发实例(ap_invoices_interface)
- Eclipse快捷键
- 大宗交易软件
- No module named yum错误的解决办法
- 自动提示email输入功能
- 各种 JSON 解析库的功能简介
- python学习笔记
- 查看Android签名打包信息
- JS 中 Class - 类创建
- [SHELL] LNMP一键安装脚本设计(v1.0)
- python函数形参和实参
- nginx上搭建HLS流媒体服务器