mybatis使用技巧
来源:互联网 发布:中软国际java笔试题 编辑:程序博客网 时间:2024/05/10 20:39
mybatis定义
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
mybatis优点
减少dao层代码,将java实现跟sql分离,方便管理。
减轻了程序员书写维护代码的成本,精力。
resultMap的使用
mybatis中映射结果的返回方式,分为resultType和resultMap,二者不能同时存在。
resultType简便好用
但是resultMap作为mybatis的神兵利器,在数据库中表格的字段名与java中类的属性名不一致的时候,我们就要使用resultMap的强大功能。
用一对一,一对多举例: 一个用户表,一个用户的账单表(一个用户有多个账单),一个用户信息表 方案一:联表查询join(一对多映射集合,一对一映射对象),注意字段冲突 <!--这里的id="ss",是唯一标识符,方便别其他select引用--> <!--这里的type是返回对象的属性--><resultMap id="ss" type="entity.Student"> <!--子标签分两种:主键,非主键--> <!--id代表主键--> <!--result代表非主键--> <!--column指定字段名,property指定属性名--> <id column="id" property="id"/> <result column="user_name" property="userName"/> <result column="password" property="password"/> <result column="gender" property="gender"/> <result column="age" property="age"/> <!--collection映射集合,ofType指定bills集合中的对象类型--> <collection property="bills" ofType="entity.Bill"> <id column="bill_id" property="billId"/> <result column="user_id" property="userId"/> <result column="bill_name" property="billName"/> <result column="money" property="money"/> </collection> <!--association映射对象,javaType指定对象的类型--> <association property="userInfo" javaType="entity.UserInfo"> <id column="user_info_id" property="id"/> <result column="user_id" property="userId"/> <result column="hobby" property="hobby"/> <result column="company" property="company"/> </association> </resultMap> <select id="selectAll" resultMap="userObj"> SELECT * from `user` LEFT JOIN bill ON `user`.id=bill.user_id </select> 方案二:套用子查询,可以解决字段冲突 <!-- 方案二:套用子查询 主查询resultMap --> <resultMap id="userObj" type="obj.UserObj"> <id column="id" property="id"></id> <result column="user_name" property="user_name"></result> <result column="password" property="password"></result> <result column="gender" property="gender"></result> <result column="age" property="age"></result> <!--select 子查询的id名,column=""当前表传入子查询中的参数值--> <collection property="bills" select="selectBillsByUserId" column="id"/> <!--同理对象类型association也可以这么干--> </resultMap> <!--sql语句--> <select id="selectAll" resultMap="userObj"> SELECT *FROM `user`; </select> <select id="selectBillsByUserId" resultMap="billMap"> SELECT * FROM bill WHERE user_id=#{id} </select> <!--子查询resultmap--> <resultMap id="billMap" type="obj.Bill"> <id property="id" column="bill_id"/> <result property="billName" column="bill_name"/> <result property="money" column="money"/> <result property="userId" column="user_id"/> </resultMap>
0 0
- MyBatis使用技巧
- Mybatis--使用小技巧
- Mybatis使用技巧
- Mybatis 使用技巧总结
- Mybatis使用常见技巧
- mybatis使用技巧
- mybatis使用技巧
- Mybatis中使用junit的一些技巧
- Mybatis 使用技巧-通用的搜索
- Mybatis中运用小技巧(二) like的使用
- 关于MyBatis中treeselect.tag控件使用技巧
- MyBatis学习总结(14)——Mybatis使用技巧总结
- MyBatis日期用法技巧
- MyBatis日期用法技巧
- mybatis常见技巧
- mybatis一些小技巧
- MyBatis使用
- Mybatis使用
- 欢迎使用CSDN-markdown编辑器
- Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Cou
- Android EditText输入监听
- 使用BigDecimal进行精确运算
- 字符设备驱动--interrupt
- mybatis使用技巧
- 什么是Integer对象
- 血压计准吗?一张图告诉你正确的使用方法
- JS继承的实现几种方式
- 数据结构—堆
- java 单点登录 cas 修改配置文件 为查询数据库登录
- quartus 无法识别usb blaster确实帮了我大忙
- 毛泽东给中国留下46个“一个”!(写给反毛者)
- ios正则表达式