Mybatis开发总结
来源:互联网 发布:灰鸽子远程控制软件 编辑:程序博客网 时间:2024/05/11 21:12
有了Hibernate的开发基础,上手MyBatis是非常快的。但是在实际应用中,还是遇到了一些问题。总结一下,分享出来:
1、使用插件“mybatisGenerator”生成的辅助代码 Example做组合查询,非常方便,如下:
AfficheExample example = new AfficheExample();Criteria cri = example.createCriteria().andNameEqualTo("ttt").andUserIdEqualTo("mm");example.setOrderByClause("id asc");afficheMapper.selectByExample(example);
2、直接写语句,做组合查询也非常方便:
SELECT * FROM hc_product<where><if test="productname!=null">productName = '${productname}'</if><if test="productid!=null">and p.productId = '${productid}'</if></where>
这样就能完成多选择条件查询。
3、一般的查询,直接返回实体类型即可。对于关联查询,处理方式之一就是:自己构造一个ResultMap,如名为Map1,将自己所需要的字段字段放在Map1中做映射。然后将查询的结果设置为Map1.
在Map1中,我们可以多映射一些字段,为空的查询默认不映射。
而在dao层接口中,我们一般会设置改方法的返回类型为:List<Map<String,Object>>,每一个list里面,存放的诸多map键值对,就对应查询上来的一条记录;而map键值对里面就是对应的字段名:字段值;
4、Mybatis中mapper文件中的增删改方法,默认返回int类型。如果是增方法,则默认返回增加记录的条数,如果增加1条记录,则返回1,;如果增加100条记录,则返回100。改、删方法与增方法相同。
5、Mybatis中不兼容不同的">"或者"<"符号,我们可以将sql语句写在"<!CDATA[你的sql]>"中,也可以使用对应的符号代替:
< 小于 <
> 大于 >
& 和 &
' 单引号 '
" 双引号"
ps:写在 <!CDATA[你的sql]> 中的sql语句,mybatis不会对其中的内容再做智能解析。
6、注意Mybatis中ResultMap和ResultType不一样。
7、批量添加例子:
<insert id="batchInsertRepay" parameterType="java.util.List"> <selectKey resultType="long" keyProperty="id" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO hc_theory(id,Term,repayTime) VALUES <foreach collection="list" item="theory" index="index" separator=","> ( #{theory.id}, #{theory.term}, #{theoryRepay.repaytime} ) </foreach> </insert>
8、返回数量(Integer)的处理:
Mybatis映射中没有Java的基本类型int,返回Integer,有可能返回Null,所以要做如下处理:
public Integer selectStockNumByProductId(String productId){Integer i =stockMapper.selectStockNumByProductId(productId);return i==null?0:i;}
Mybatis的映射很好用。
- Mybatis开发总结
- mybatis开发步骤总结
- Mybatis开发总结
- Mybatis开发总结
- mybatis开发--总结--简要说明
- mybatis总结(4)---Mybatis 开发DAO两种方法
- MyBatis——Dao层开发总结
- mybatis总结
- MyBatis总结
- MyBatis 总结
- mybatis 总结
- mybatis--总结
- Mybatis总结
- mybatis 总结
- mybatis总结
- mybatis总结
- mybatis总结
- mybatis总结
- iOS新浪微博客户端开发(2)——OAuth授权
- 【 题集 】 寒假计划——最短路
- 排序算法九:基数排序
- 工作日志
- Qt开发:DOM解析xml实现读、写、增、删、改
- Mybatis开发总结
- Android 自定义控件打造史上最简单的侧滑菜单
- unity3D之通用Windows的设计
- 教你手工mysql拆库
- Map迭代过程中remove引发的java.util.concurrentmodificationexception
- excel 图表 保持矢量图格式 粘贴进word
- memcache
- 关键字参数
- pipe管道