ibatis小知识点

1、resultMap和resultClass的区别,下面是两者的区别

一:当结果集列名和类的属性名完全相对应的时候,则可直接用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就可以了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值