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

南京一对一网站建设天津网站推广

南京一对一网站建设,天津网站推广,wordpress首页轮换图片入口,深圳网站建设推选上榜网络简单介绍#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/251136.html

相关文章:

  • 新余哪有做网站的公司企业建站免费模板
  • 网站设计师专业wordpress 菜单图标
  • 苏州做视频网站广告公司推广教程
  • 谷歌seo网站推广怎么做衡州网站建设seo
  • 网站建设好后能直接打开吗怎么做免费的公司网站
  • 浙江建设信息港成绩查询栏网站优化潍坊
  • 网页建站网站网站制作软件培训
  • 南京 招网站开发永州网站建设效果
  • 新乡网站自然优化先做它个天猫网站
  • 做ps图标什么网站最好专业seo网络营销公司
  • 网站架设有没有免费找客户的软件
  • 浦口国家建设部网站建设项目技术服务网站
  • 西安那些做网站的公司品牌建设的目标
  • 网站响应式技术网站制作青岛
  • 建设网站软件下载建筑工人找活正规平台
  • 装饰网站卧室做炕百度通信公司网站建设
  • 可以自己做网站服务器不珠海电商网站制作
  • 中山企业集团网站建设wordpress 评论时间
  • 手机网站跳出率低站长工具一区
  • 小游戏网站代码国内做优秀的农业信息网站
  • 安丘做网站的公司杭州做网站的优质公司
  • 网站建设 语言wordpress调用header
  • 做网站 就如何搭建一个局域网
  • 免费企业名录网站成都网站建设六六
  • 福建工程建设网站硅胶鞋垫移动网站建设
  • 网站推广优化软件学校网站搭建
  • 建设部网站首页百度引擎提交入口
  • 资源网站优化排名软件网络营销是什么的产物
  • 网站建设岗位廉政风险防控wordpress媒体库无法显示
  • 成品网站和模板建站阿里巴巴网