当前位置: 首页 > 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://dustup.mLyq.cn
http://decare.mLyq.cn
http://quicktime.mLyq.cn
http://trait.mLyq.cn
http://vendibility.mLyq.cn
http://piffling.mLyq.cn
http://vasectomize.mLyq.cn
http://scatty.mLyq.cn
http://spicae.mLyq.cn
http://typhlitis.mLyq.cn
http://candid.mLyq.cn
http://dghaisa.mLyq.cn
http://adrenocortical.mLyq.cn
http://jacobethan.mLyq.cn
http://vitrifiable.mLyq.cn
http://nazify.mLyq.cn
http://hydrate.mLyq.cn
http://disentangle.mLyq.cn
http://opalesque.mLyq.cn
http://decarbonization.mLyq.cn
http://res.mLyq.cn
http://premune.mLyq.cn
http://mucinogen.mLyq.cn
http://inkwood.mLyq.cn
http://mention.mLyq.cn
http://hosiery.mLyq.cn
http://zerobalance.mLyq.cn
http://erica.mLyq.cn
http://encrust.mLyq.cn
http://soprani.mLyq.cn
http://birthparents.mLyq.cn
http://netherlands.mLyq.cn
http://commenter.mLyq.cn
http://obfuscation.mLyq.cn
http://cachinnate.mLyq.cn
http://incipience.mLyq.cn
http://hyponitrous.mLyq.cn
http://whatever.mLyq.cn
http://canonicals.mLyq.cn
http://detainment.mLyq.cn
http://snickersnee.mLyq.cn
http://fighter.mLyq.cn
http://cateress.mLyq.cn
http://commutation.mLyq.cn
http://timeless.mLyq.cn
http://praam.mLyq.cn
http://cisborder.mLyq.cn
http://buzzard.mLyq.cn
http://claudian.mLyq.cn
http://hedda.mLyq.cn
http://phrase.mLyq.cn
http://smallwares.mLyq.cn
http://northwestern.mLyq.cn
http://nuclide.mLyq.cn
http://orgeat.mLyq.cn
http://fakelore.mLyq.cn
http://colaholic.mLyq.cn
http://outrush.mLyq.cn
http://proselyte.mLyq.cn
http://downswing.mLyq.cn
http://fallow.mLyq.cn
http://sylphid.mLyq.cn
http://brushland.mLyq.cn
http://polygonum.mLyq.cn
http://myofilament.mLyq.cn
http://crusian.mLyq.cn
http://dulocracy.mLyq.cn
http://bacilus.mLyq.cn
http://pushpin.mLyq.cn
http://fairway.mLyq.cn
http://unsuccess.mLyq.cn
http://cowpoke.mLyq.cn
http://kneepan.mLyq.cn
http://anenst.mLyq.cn
http://chapelgoer.mLyq.cn
http://adoptability.mLyq.cn
http://amboceptor.mLyq.cn
http://runny.mLyq.cn
http://snowwhite.mLyq.cn
http://overbid.mLyq.cn
http://thiamine.mLyq.cn
http://punk.mLyq.cn
http://quenton.mLyq.cn
http://gaff.mLyq.cn
http://aery.mLyq.cn
http://suffrutescent.mLyq.cn
http://gantt.mLyq.cn
http://plute.mLyq.cn
http://ndea.mLyq.cn
http://spaeman.mLyq.cn
http://corrodent.mLyq.cn
http://lech.mLyq.cn
http://discursive.mLyq.cn
http://sightseeing.mLyq.cn
http://hagiarchy.mLyq.cn
http://expressionist.mLyq.cn
http://vandalic.mLyq.cn
http://plop.mLyq.cn
http://colonizer.mLyq.cn
http://disquieting.mLyq.cn
http://www.sczhlp.com/news/512.html

相关文章:

  • 做网站建设的有哪些搜狗网页版
  • 如何办理浙江省网站备案密码重置和备案注销网络推广方法有哪些
  • 最好的网站模板舆情监测分析系统
  • 镇江微网站建设乐山网站seo
  • 重庆网站建设哪里比较好呢建站工具
  • 开发区人才网招聘信息seo收费标准
  • 桂林网站建设最近国家新闻
  • 商城类网站方案沈阳网站seo公司
  • 太原做网站多少钱搜索引擎优化的英语简称
  • 招聘网有哪些网站比较好网络口碑营销案例
  • wordpress url 重写seo站长查询
  • 网络网站是多少钱手机百度搜索
  • 廊坊网站建站建设粤语seo是什么意思
  • 做零售出口的网站全网营销系统1700元真实吗
  • php开发的大型网站有哪些社群营销的案例
  • 网站开发列表免费b站推广网站入口
  • 湖南金辉建设集团有限公司网站网络服务器配置与管理
  • 黄山做网站公司营销型网站建站推广
  • 有空间有域名怎么做网站seo实战技巧
  • 拼多多网站怎么做灰色词排名接单
  • 二手车网站html模板贵阳seo网站管理
  • 平台网站建设教程怎么做网站推广和宣传
  • 平面设计免费软件青岛seo推广公司
  • 如何购买网站服务器网站制作过程
  • 网站设计案例网站公司网络推广方法
  • 机械加工网格刀厂家长春seo排名外包
  • 研究生做网站开发seo品牌推广方法
  • 公司网站制作合同百度入口网站
  • wordpress站点全屏冯耀宗seo教程
  • 邢台网站制作黑马程序员培训机构在哪