当前位置: 首页 > news >正文

江西省建设监督网站电子网中国第一作文网

江西省建设监督网站电子网,中国第一作文网,黄骅港潮汐表2021,环境设计专业介绍简单介绍#xff1a; 在之前的章节#xff0c;我们简单介绍了MyBatis中的一对一的关联查询#xff0c;使用了嵌套查询和嵌套结果集两种方式进行讲解#xff0c;但是在实际的使用中#xff0c;我们常用的是嵌套结果集的查询方式#xff0c;所以在一对多的查询中#xff…简单介绍 在之前的章节我们简单介绍了MyBatis中的一对一的关联查询使用了嵌套查询和嵌套结果集两种方式进行讲解但是在实际的使用中我们常用的是嵌套结果集的查询方式所以在一对多的查询中我们也只针对嵌套结果集的查询方式进行讲解。嵌套结果集映射的核心思想就是通过一条SQL语句查询两个表然后把两个表中查询出来的字段自定义映射到两个实体类中最后实体类再进行嵌套。 如果之前已经熟练掌握或者能理解一对一查询中的各个标签的使用在一对多的查询中的原理也是基本一样的只不过是将配置一对一查询中的association标签换成了collection标签并且增加了一个新的属性叫做ofType这个属性的值就是我们List列表中的属性的类关于这个属性我们会在后面使用的时候进行详细的演示。 我们首先来复习一下一对多的数据表查询结构 那么对应到SQL语句中就是下面这样  查询结果如下  简单地说就是一张表中的一列数据可以对应另一张表的多行数据就像这个查询结果一样张三的信息可以查询出两条订单信息但是每一条订单信息的只属于张三一个人。 对应到Java类中的效果如下 查询出多条信息对应就是B类的集合而B类的每一条信息只能对应一个A类。 使用方法 !-- 配置一对多的查询--select idone_more_select resultMapone_more_mappers parameterTypeintselect u.id , u.name , u.sex , u.order_id uoid , o.order_id ooid , o.order_information from user u,orders o where u.order_id o.order_id and u.id #{id}/selectresultMap idone_more_mappers typeUserresult propertyid columnid/result propertyname columnname/result propertysex columnsex/collection propertyListOrder ofTypeOrders javaTypejava.util.Listresult propertyorder_id columnooid/result propertyorder_information columnorder_information//collection/resultMap 在实现一对多的嵌套结果集映射中 我们需要使用一个新的标签collection使用这个标签配置一对多的嵌套结果集查询使用一个特殊的属性ofType这个属性的含义是指出我们需要填充进List集合中的反省的类型也就是B类的类型 只要掌握了这个标签和属性的使用之后剩下的就和之前的嵌套结果集查询的写法是一样的了接下来我们来进行完整的代码演示。  代码实现 数据库内的数据 SQL映射文件 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd !-- 接口式开发有两个规范: -- !--1.接口中方法的名称必须与SQL语句的唯一标识,也就是id的值保持一致,resultType就是接口中返回值的类型,parameterType就是接口中方法的参数的类型-- !-- 2.mapper标签的namespace属性必须是接口的全路径,否则在运行的时候会无法找到接口对象的SQL映射文件 -- mapper namespacemappers.one_more_select!-- 根据id查询单条数据--select idselectOne resultTypeuser parameterTypeintselect *from userwhere id #{id};/select!-- 查询所有的数据--select idselectAll resultTypeuserselect *from user;/select !-- 配置一对多的查询--select idone_more_select resultMapone_more_mappers parameterTypeintselect u.id , u.name , u.sex , u.order_id uoid , o.order_id ooid , o.order_information from user u,orders o where u.order_id o.order_id and u.id #{id}/selectresultMap idone_more_mappers typeUserresult propertyid columnid/result propertyname columnname/result propertysex columnsex/collection propertyListOrder ofTypeOrders javaTypejava.util.Listresult propertyorder_id columnooid/result propertyorder_information columnorder_information//collection/resultMap /mapper 接口文件 package mappers;import com.mybatis.POJO.User;import java.util.List;public interface one_more_select {public User selectOne(int i);public ListUser selectAll();public ListUser one_more_select(int i); }实体类 package com.mybatis.POJO;import java.util.List;public class User{private int id;private String name;private String sex;private ListOrders ListOrder;public User() {}public User(int id, String name, String sex, ListOrders listOrder) {this.id id;this.name name;this.sex sex;ListOrder listOrder;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public ListOrders getListOrder() {return ListOrder;}public void setListOrder(ListOrders listOrder) {ListOrder listOrder;}Overridepublic String toString() {return com.mybatis.POJO.User{ id id , name name \ , sex sex \ , ListOrder ListOrder };} } package com.mybatis.POJO;public class Orders {private int order_id;private String order_information;public Orders() {}public Orders(int order_id, String order_information) {this.order_id order_id;this.order_information order_information;}public int getOrder_id() {return order_id;}public void setOrder_id(int order_id) {this.order_id order_id;}public String getOrder_information() {return order_information;}public void setOrder_information(String order_information) {this.order_information order_information;}Overridepublic String toString() {return orders{ \n order_id order_id , order_information order_information \ }\n;} }测试类 package mappers;import com.mybatis.POJO.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test;import java.io.InputStream;public class one_more_selectTest {SqlSession session null;one_more_select mapper null;Beforepublic void setUp() throws Exception {InputStream stream Resources.getResourceAsStream(mybatis.xml);SqlSessionFactory build new SqlSessionFactoryBuilder().build(stream);session build.openSession(true);mapper session.getMapper(one_more_select.class);}Testpublic void testSelectOne() {User user mapper.selectOne(1);System.out.println(user);}Testpublic void testSelectAll() {for (User user : mapper.selectAll()) {System.out.println(user.toString());}}Testpublic void testOne_more_mappers() {for (User oneMoreMapper : mapper.one_more_select(2)) {System.out.println(oneMoreMapper.toString());}} } 注意点 在这个案例中我们需要注意的是A类和B类的嵌套关系一定要清楚以及ofTyoe的类型一定是B类的属性值最后就是在自定义映射规则的时候一定要确定规则的正确对应好每一个列和属性的映射关系。如果发现自己最后的查询结果和自己预期的不一致首先去检查映射规则是否配置正确。
http://www.dnsts.com.cn/news/87847.html

相关文章:

  • 毕设DW做网站的过程wordpress 看不到图
  • 网站服务器维护 价目表成都APP 微网站开发
  • 网站运营招聘dedecms的网站如何添加个引导页
  • 哪个网站可以做行程表wordpress 数学主题
  • 金融类网站模板北京html5网站建设
  • 直播网站 建设WordPress行距太大
  • 绿色食品网站建设论文优秀网站设计欣赏图片
  • 做周边的网站外贸手机网站建设
  • 怎么做打鱼网站wordpress 仿微信评论
  • 关于做教育新闻的网站网站建设外地便宜
  • 合肥网站建设发布影城网站建设
  • 广州网站建设studstu国际知名设计公司排名
  • 招商加盟网站怎么做做网站服务器租一年多少钱
  • 健康养老网站建设网上接手袋做是哪一个网站
  • 国家建设部门三类人员官方网站南平抖音搜索排名seo软件
  • 杭州市富阳区建设局网站无锡网络公司服务
  • 免费网站站长查询校友网站建设
  • 南昌建网站那家好yxcms wordpress
  • 视频网站app怎么做的asp网站开发好怎么预览
  • 省级建设主管部门网站产品展示型网站模板
  • 自己可以做网站服务器吗抖音代运营怎么做
  • 电商设计参考网站做电器哪个网站好
  • 张家界建设局网站电话号码六安城市网官网
  • 陕西省住房和城乡建设厅执业资格注册中心网站图片wordpress博客
  • 网站制作要多少钱医疗网站建设咨询
  • 深圳企业网站制作公司哪家好国外网站的建设
  • 温岭做网站洛阳网站建设优惠公司
  • 海口市公司网站建设dw制作班级网站
  • html5网站制作软件网站建设维护保密协议书
  • 网站建设找星火龙新网域名注册官网