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

政府网站有哪些兰州网络seo公司

政府网站有哪些,兰州网络seo公司,应用商城下载,网站开源程序目录 一 对于映射的概念 1.1 三种关系映射 1.2 resultType与resultMap的区别 resultType: resultMap: 二,一对一关联查询 2.1 嵌套结果集编写 2.2 案例演示 三,一对多关联查询 3.1 嵌套结果集编写 3.3 案例演示 四&…

目录

一 对于映射的概念

1.1 三种关系映射

1.2 resultType与resultMap的区别

resultType:

resultMap:

二,一对一关联查询

2.1 嵌套结果集编写

2.2 案例演示

三,一对多关联查询

3.1 嵌套结果集编写

 3.3 案例演示

四,多对多关联查询 

4.1 嵌套结果集编写

 4.2 案例演示

一 对于映射的概念

     在关系型数据库中,表与表之间存在着三种关联映射关系,分别为一对一关系、一对多关系和多对多关系。  那在 MyBatis 中,通过 association 元素来处理对象与对象之间关联关系,association 元素提供了一系列属性用于维护数据表之间的关系。association 元素是 resultMap元素的子元素,它有两种配置方式,嵌套查询方式和嵌套结果集方式。

1.1 三种关系映射

一对一关联映射:

      这种关系表示两个实体类之间存在唯一的对应关系,通常通过在表之间使用外键来建立连接。在 MyBatis 中可以使用 association 元素来实现一对一关联映射

一对多关联映射:

     这种关系表示一个实体类关联多个其他实体类的实例。例如,在数据库中,一个文章可以对应多个评论。在 MyBatis 中可以使用 collection 元素来实现一对多关联映射

多对多关联映射:

         这种关系表示两个实体类之间存在多对多的关系,通常通过中间表来实现。例如,一个用户可以拥有多个角色,一个角色也可以被多个用户拥有。在 MyBatis 中可以使用中间表和联合查询来实现多对多关联映射。

1.2 resultType与resultMap的区别

resultType:

使用 resultType,我们直接指定了查询结果的类型,它通常用于简单的查询语句,不需要复杂的映射关系。优点是简单直观,缺点是不能进行复杂的映射操作(实体类没有该属性的情况)。

resultMap:

    而使用 resultMap,我们可以更加灵活地映射查询结果到任意类型的 Java 对象上。通过定义一个 resultMap,我们可以指定每个查询结果列与 Java 对象属性之间的映射关系。优点是功能强大,可以进行各种复杂的映射操作,缺点是需要编写更多的 XML 配置代码

二,一对一关联查询

这里需要建一个VO类,VO是Value Object的缩写,是一轻量级的数据结构,用于在视图层与业务逻辑层之间传递数据。VO通常用于表示视图层所需的数据,这些数据来自于业务逻辑层或数据访问层。VO的主要目的是将业务逻辑层的数据结构转换为视图层可以使用的数据结构 。简单来说就是用于关系映射时的结果接收

下面我们利用订单项以及订单来描述一对一的关系,所以我们建立一个OrderitemVo

OrderitemVo:

public class OrderitemVo extends Orderitem {private Order order;public Order getOrder() {return order;}public void setOrder(Order order) {this.order = order;}

2.1 嵌套结果集编写

<resultMap id="OrderitemvoMap" type="com.Bing.vo.OrderitemVo"><result column="order_item_id" property="orderItemId"></result><result column="product_id" property="productId"></result><result column="quantity" property="quantity"></result><result column="oid" property="oid"></result><association property="order" javaType="com.Bing.model.Order"><result column="order_id" property="orderId"></result><result column="order_no" property="orderNo"></result></association></resultMap><select id="selectByOiid" resultMap="OrderitemvoMap" parameterType="java.lang.Integer">select * from t_hibernate_order o,t_hibernate_order_item oi where o.order_id=oi.oid and oi.order_item_id=#{oiid}</select>

2.2 案例演示

接口类并实现

接口Biz编写:

public interface OrderitemBiz {OrderitemVo selectByOiid(Integer oiid);
}

实现类Impl类继承Biz:

@Service
public class OrderitemImpl implements OrderitemBiz {@Autowiredprivate OrderitemMapper OrderitemMapper;@Overridepublic OrderitemVo selectByOiid(Integer oiid) {return OrderitemMapper.selectByOiid(oiid);}
}

Test类编写:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-context.xml"})
public class OrderitemImplTest {@Autowiredprivate OrderitemBiz OrderitemBiz;@Testpublic void selectByOiid() {OrderitemVo orderitemVo = OrderitemBiz.selectByOiid(27);System.out.println(orderitemVo);System.out.println(orderitemVo.getOrder());}
}

测试运行结果:

三,一对多关联查询

下面我们利用订单以及订单项来描述一对多的关系,所以我们建立一个OrderVo。

注意:要使用list集合

public class OrderVo extends Order {private List<Orderitem> orderitems=new ArrayList<>();public List<Orderitem> getOrderitems() {return orderitems;}public void setOrderitems(List<Orderitem> orderitems) {this.orderitems = orderitems;}@Overridepublic String toString() {return "OrderVo{" +"orderitems=" + orderitems +'}';}
}

3.1 嵌套结果集编写

 <resultMap id="OrderMap" type="com.Bing.vo.OrderVo" ><result column="order_id" property="orderId"></result><result column="order_no" property="orderNo"></result><collection property="orderitems" ofType="com.Bing.model.Orderitem"><result column="order_item_id" property="orderItemId"></result><result column="product_id" property="productId"></result><result column="quantity" property="quantity"></result><result column="oid" property="oid"></result></collection></resultMap><select id="byOid" resultMap="OrderMap" parameterType="java.lang.Integer" >select * from t_hibernate_order o,t_hibernate_order_item oi where o.order_id=oi.oidand o.order_id=#{oid}</select>

 3.3 案例演示

接口类并实现

接口Biz编写:

public interface OrderBiz {OrderVo byOid(Integer id);
}

实现Impl类继承Biz:

@Service
public class OrderBizImpl implements OrderBiz {@Autowiredprivate OrderMapper orderMapper;@Overridepublic OrderVo byOid(Integer id) {return orderMapper.byOid(id);}
}

Test类编写:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-context.xml"})
public class OrderBizImplTest {
@Autowired
private OrderBiz orderBiz;@Testpublic void byOid() {OrderVo orderVo = orderBiz.byOid(7);System.out.println(orderVo);orderVo.getOrderitems().forEach(System.out::println);}
}

测试类运行结果:

四,多对多关联查询 

我们以书籍有多个类别以及每个类别又有多本书的这种关系来实操多对多关系的查询

HbookVo:

public class HbookVo  extends HBook {private List<HCategory> hcategory;public List<HCategory> getHcategory() {return hcategory;}public void setHcategory(List<HCategory> hcategory) {this.hcategory = hcategory;}
}

4.1 嵌套结果集编写

<resultMap id="HbookVo" type="com.Bing.vo.HbookVo" ><result column="book_id" property="bookId"></result><result column="book_name" property="bookName"></result><result column="price" property="price"></result><collection property="hcategory" ofType="com.Bing.model.HCategory"><result column="category_id" property="categoryId"></result><result column="category_name" property="categoryName"></result></collection></resultMap><select id="selectByBid" resultMap="HbookVo" parameterType="java.lang.Integer">SELECT*
FROMt_hibernate_book b,t_hibernate_book_category bc,t_hibernate_category c
WHEREb.book_id = bc.bidAND bc.cid = c.category_idAND b.book_id =#{bid}</select>

 4.2 案例演示

接口类并实现

接口Biz编写:

public interface HBookBiz {HbookVo selectByBid(Integer bid);
}

实现类Impl类继承Biz:

@Service
public class HBookBizImpl implements HBookBiz {@Autowiredprivate HBookMapper hbookMapper;@Overridepublic HbookVo selectByBid(Integer bid) {return hbookMapper.selectByBid(bid);}
}

Test类编写:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-context.xml"})
public class HBookBizImplTest {@Autowiredprivate HBookBiz hbookBiz;@Testpublic void selectByBid() {HbookVo hbookVo = hbookBiz.selectByBid(8);System.out.println(hbookVo);hbookVo.getHcategory().forEach(System.out::println);}
}

Test类运行结果:

                                好啦,今天的分享就到这了,希望能够帮到你呢!😊😊   

http://www.tj-hxxt.cn/news/39439.html

相关文章:

  • 网站开发合同官司网络营销的特点有几个
  • 网站必须备案站长工具官网
  • 网站开发流程图和介绍自媒体软文发布平台
  • 北海做网站成人教育培训机构十大排名
  • 城乡住房和城乡建设网站查询朝阳网站建设
  • 网站怎么做跳出提示筐seo详细教程
  • 建设网站的网站叫什么厦门seo排名公司
  • 机票网站建设seo推广是什么意思呢
  • 网站做产品的审核吗网络推广是网络营销的基础
  • b2b商城网站系统合肥网站设计
  • 网站查询备案服务商快刷网站
  • 网站没有备案可以做百度推广吗it培训四个月骗局
  • 网站搭建网站百度搜索关键词
  • 免费的网站域名查询方法有哪些搜索推广是什么意思
  • 嘉兴做网站的 seo won
  • wordpress站群源码友情链接交换统计表
  • wordpress 页面全屏郑州关键词优化平台
  • 电商的网站怎么做的免费建站工具
  • 网站建设亿码酷适合5seo专家招聘
  • 德州网站制作怎么在百度上推广
  • 网页设计及网站建设的相关概念二级域名分发平台
  • 网站源码在线下载百度的企业网站
  • 制造网站广告联盟哪个比较好
  • 网站建设存在四个问题营销案例
  • 郑州做网站排名公司哪家好发布新闻
  • 汉中市住房和城乡建设委员会网站seo竞价培训
  • 传奇私服网站新开网站长工具seo综合查询可以访问
  • 软件开发公司前十名做seo必须有网站吗
  • 百度云搜索引擎网站搜索排名怎么做
  • 上海网络平台网站建设百度认证有什么用