三.Mybatis高级查询
来源:互联网 发布:软件项目关键技术指标 编辑:程序博客网 时间:2024/04/30 15:27
一关联查询:
表:
author: id realName userID IDCard
jikeUse: id userName password
visit: visitID userID visitDate visitIp
联合查询:查询所有作者带出其用户名
mapping: <resultMap id="JiKeAuthorMap" type="Author"> <id property="id" column="author.id" /> <result property="realName" column="realName" /> <result property="IDCard" column="IDCard" /> <association property="jikeUser" column="userID" javaType="JiKeUser"> <id property="id" column="jikeUser.id" /> <result property="userName" column="userName" /> <result property="password" column="password" /> </association> </resultMap> <select id="selectAuthorJoin" resultMap="JiKeAuthorMap"> select * from author inner join jikeUser on jikeuser.id=author.userID </select>
构造查询:
mapping:<resultMap id="JiKeAuthorMapByCon" type="Author"> <id property="id" column="author.id" /> <result property="realName" column="realName" /> <result property="IDCard" column="IDCard" /> <association property="jikeUser" column="userID" javaType="JiKeUser"> <constructor> <arg column="userName" javaType="String" /> <arg column="password" javaType="String" /> </constructor> </association> </resultMap><select id="selectAuthorJoin" resultMap="JiKeAuthorMapByCon"> select * from author inner join jikeUser on jikeuser.id=author.userID </select>测试:List<Author> ap=session.selectList("selectAuthorJoin");
构造查询有些参数无值
子查询:
mapping:<resultMap id="JiKeAuthorSubMap" type="Author"> <id property="id" column="author.id" /> <result property="realName" column="realName" /> <result property="IDCard" column="IDCard" /> <association property="jikeUser" column="userID" javaType="JiKeUser" select="findById"> </association></resultMap><select id="selectAuthor" resultMap="JiKeAuthorSubMap"> select * from author </select>
懒加载可以在基本配置文件开启:
<settings> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/></settings>
二.集合查询
表:
jikeUser:id userName password
visit: visitID userID visitDate vistIP
JikeUser类中添加private List visitList;一对多
mapping:
<resultMap id="visitMap" type="JiKeUser"> <id property="id" column="id" /> <result property="userName" column="userName" /> <collection property="visitList" javaType="ArrayList" column="visitID" ofType="jike.book.pojo.Visit"> <result property="visitID" column="visitID" /> <result property="visitIP" column="visitIP" /> <result property="visitDate" column="visitDate" /> </collection></resultMap><select id="selectVisit" resultMap="visitMap"> select * from JiKeUser inner join visit on jikeuser.id=visit.userID</select>
测试:
List<JiKeUser> ap=session.selectList("selectVisit"); for(JiKeUser temp:ap) { System.out.println("用户名="+temp.getUserName()); for(Visit oneVisit:temp.getVisitList()) { System.out.println("登录时间="+oneVisit.getVisitDate()+ "登录IP="+oneVisit.getVisitIP()); } }
三.鉴别器
简单鉴别:
Id Gender Husband wife
主键 性别 丈夫 妻子
为1给丈夫赋值,为2给妻子赋值
<discriminator javaType=“byte" column="gender"> <case value="1" > <result property=”husband” column=“husband" /> </case> <case value="2" > <result property=”wife” column=“wife" /> </case> </discrimindator>
复杂鉴别:
会员等级 等级对象
byte UserClass
为1实例化一个普通会员,为2实例化一个高级会员,为3实例化一个VIP
Class GeneralClass extends UserClass //普通会员,等级为1Class SeniorClass extends UserClass //高级会员,等级为2Class VIPClass extends UserClass //VIP会员,等级为3
0 0
- 三.Mybatis高级查询
- [Mybatis]高级查询
- MyBatis-高级查询
- mybatis之高级查询
- MyBatis-高级查询
- MyBatis高级查询
- mybatis高级查询
- MyBatis高级查询
- mybatis高级查询-一对一查询
- Mybatis高级查询(一)
- Mybatis高级映射一对一查询
- Mybatis高级特性学习(三)
- mybatis高级查询(一对一查询)
- Mybatis高级查询之关联查询
- mybatis联合查询 之 高级结果映射
- 【MyBatis框架】高级映射-一对一查询
- 【MyBatis框架】高级映射-一对多查询
- MyBatis分页的拓展--合并高级查询
- Unity制作《水果忍者》刀光特效
- DIY心形流水灯
- 动态布局
- 3分钟弄明白JAVA三大修饰符
- sublime text 3 + python配置,完整搭建及常用插件安装
- 三.Mybatis高级查询
- 二叉排序树的建立与查找
- Android动画(二),属性动画
- 排序1:冒泡排序
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- LeetCode题目:376. Wiggle Subsequence
- Is there anybody in there?
- Android MVP模式实战
- meta http-equiv属性