Mybatis属性用法
来源:互联网 发布:物料管理系统. java 编辑:程序博客网 时间:2024/05/05 21:19
1.主键返回(mysql)
1)自增主键返回
<!-- 将插入数据的主键返回,返回到user对象中SELECT LAST_INSERT_ID():得到刚insert进去记录的主键值,只适用与自增主键keyProperty:将查询到主键值设置到parameterType指定的对象的哪个属性order:SELECT LAST_INSERT_ID()执行顺序,相对于insert语句来说它的执行顺序resultType:指定SELECT LAST_INSERT_ID()的结果类型 --><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">SELECT LAST_INSERT_ID()</selectKey>
2)非自增主键返回
使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。
<!-- 使用mysql的uuid()生成主键执行过程:首先通过uuid()得到主键,将主键设置到user对象的id属性中其次在insert执行时,从user对象中取出id属性值 --><selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">SELECT uuid()</selectKey>
2.自定义PO对象resultMap定义
1)一对一查询
<resultMap type="cn.itcast.mybatis.po.Orders" id="userordermap"><!-- 这里的id,是mybatis在进行一对一查询时将user字段映射为user对象时要使用,必须写 --><id property="id" column="id"/><result property="user_id" column="user_id"/><result property="number" column="number"/><association property="user" javaType="cn.itcast.mybatis.po.User"><!-- 这里的id为user的id,如果写上表示给user的id属性赋值 --><id property="id" column="user_id"/><result property="username" column="username"/><result property="address" column="address"/></association></resultMap>
2)一对多查询
<!-- 订单信息resultmap --><resultMap type="cn.itcast.mybatis.po.Orders" id="userorderdetailmap"><id property="id"column="id"/><result property="user_id" column="user_id"/><result property="number" column="number"/><association property="user" javaType="cn.itcast.mybatis.po.User"><id property="id" column="user_id"/><result property="username" column="username"/><result property="address" column="address"/></association><collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail"><id property="id" column="orderdetail_id"/><result property="items_id" column="items_id"/><result property="items_num" column="items_num"/></collection></resultMap>
3)多对多查询
<!-- 一对多查询查询用户信息、关联查询订单、订单明细信息、商品信息 --> <resultMap type="cn.itcast.mybatis.po.User" id="userOrderListResultMap"> <id column="user_id" property="id"/><result column="username" property="username"/> <collection property="orders" ofType="cn.itcast.mybatis.po.Orders"> <id column="id" property="id"/> <result property="number" column="number"/> <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail"> <id column="orderdetail_id" property="id"/> <result property="ordersId" column="id"/> <result property="itemsId" column="items_id"/> <result property="itemsNum" column="items_num"/> <association property="items" javaType="cn.itcast.mybatis.po.Items"> <id column="items_id" property="id"/> <result column="items_name" property="name"/> <result column="items_detail" property="detail"/></association> </collection> </collection>3.延迟加载
开启延时加载配置
<settings><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/></settings>
1)一对一延迟加载
<select id="findOrdersList3" resultMap="userordermap2">SELECTorders.*FROMorders</select>
<!-- 订单信息resultmap --><resultMap type="cn.itcast.mybatis.po.Orders" id="userordermap2"><id property="id" column="id"/><result property="user_id" column="user_id"/><result property="number" column="number"/><association property="user" javaType="cn.itcast.mybatis.po.User" select="findUserById" column="user_id"/></resultMap>
association:
select="findUserById":指定关联查询sql为findUserById
column="user_id":关联查询时将users_id列的值传入findUserById
最后将关联查询结果映射至cn.itcast.mybatis.po.User。
2)一对多延迟加载
一对多延迟加载的方法同一对一延迟加载,在collection标签中配置select内容。
ps:ORM框架(对象关系映射)
0 0
- Mybatis属性用法
- MyBatis(2):MyBatis标签以及对应的属性用法讲解
- Mybatis用法
- mybatis 用法
- MyBatis属性配置
- mybatis trim 属性
- Mybatis 级联属性赋值
- Mybatis之properties属性
- mybatis属性对应问题
- 【Mybatis】配置文件加载属性
- Mybatis配置文件属性讲解
- MyBatis配置文件属性解析
- mybatis properties属性
- Mybatis 属性 无法 赋值
- MyBatis属性回填
- mybatis 用法讲解
- MyBatis基本用法
- mybatis jdbctype用法注意
- [MYSQL]基础课程笔记1-基础语句
- String、StringBuffer与StringBuilder之间区别
- ANR应用无响应
- Spring MVC异常统一处理(异常信息的国际化,日志记录)
- 短信还原默认设置
- Mybatis属性用法
- 分割字符串C++
- Alibaba Fastjson 框架修炼
- 一个程序员的进化史-第七章
- VVDocumenter:用于提供快速注释的插件
- 关于对于一个新框架的学习心得
- 分布式事务及分布式系统一致性解决方案
- matlab文件操作
- LeetCode - 219. Contains Duplicate II