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

南京做南京华美整容网站潍坊网站建设wancet

南京做南京华美整容网站,潍坊网站建设wancet,网站广告推广平台,建设公众号网站文章目录 前言一、一对一映射1.1 创建实体1.2 xml配置 二、一对多映射2.1 创建实体2.2 resultMap配置2.3 测试 三、 多对多映射3.1 创建实体3.2 resultMap配置3.3 测试 前言 MyBatis是一个Java持久化框架#xff0c;它提供了一种将数据库表和Java对象之间进行关系映射的方式。… 文章目录 前言一、一对一映射1.1 创建实体1.2 xml配置 二、一对多映射2.1 创建实体2.2 resultMap配置2.3 测试 三、 多对多映射3.1 创建实体3.2 resultMap配置3.3 测试 前言 MyBatis是一个Java持久化框架它提供了一种将数据库表和Java对象之间进行关系映射的方式。这种关系映射可以通过XML配置文件或注解来定义。 在MyBatis中关系映射是通过Mapper接口和SQL语句来实现的。Mapper接口定义了数据库操作的方法而SQL语句则定义了具体的数据库操作。 在关系映射中MyBatis提供了一些注解和XML配置来实现对象和数据库表之间的映射关系。例如Table注解可以用于指定Java对象对应的数据库表Column注解可以用于指定Java对象属性对应的数据库字段。 此外MyBatis还支持一对一、一对多、多对一和多对多等复杂的关系映射。通过配置关联关系可以在查询时自动加载相关联的对象。 一、一对一映射 一对一映射是指数据库中的两个表之间存在一对一的关系即一个记录在一个表中只对应一个记录在另一个表中的情况。 1.1 创建实体 假设我们有两个表student学生表和 id_card身份证表。每个学生只有一个身份证而每个身份证只属于一个学生。 public class Student {private int id;private String name;private IdCard idCard;// 省略构造函数和getter/setter方法 }public class IdCard {private int id;private String number;private Student student;// 省略构造函数和getter/setter方法 } 1.2 xml配置 使用XML配置的方式可以在Student类对应的中使用标签来定义关联关系 resultMap idstudentResultMap typecom.xqx.model.Student!-- 省略其他映射配置 --association propertyidCard javaTypecom.xqx.model.IdCardid propertyid columnid_card_id/result propertynumber columnid_card_number//association /resultMap 通过以上配置我们可以在查询学生信息时自动加载关联的身份证信息。 二、一对多映射 一对多映射是指数据库中的两个表之间存在一对多的关系即一个记录在一个表中对应多个记录在另一个表中的情况。例如一个订单Oeder与一个订单详情OrderItem之间的关系。假设我们有以下表结构 2.1 创建实体 建立一个OrderVo。OrderVo 类用于表示一个订单及其关联的订单项。 package com.xqx.vo;import com.xqx.model.Order; import com.xqx.model.OrderItem; import lombok.Data;import java.util.ArrayList; import java.util.List;Data public class OrderVo extends Order {private ListOrderItem orderItems new ArrayList(); } 2.2 resultMap配置 resultMap idOrderVoMap typecom.xqx.vo.OrderVoresult columnorder_id propertyorderId/resultresult columnorder_no propertyorderNo/result//多关系使用collectioncollection propertyorderItems ofTypecom.xqx.model.OrderItemresult columnorder_item_id propertyorderItemId/resultresult columnproduct_id propertyproductId/resultresult columnquantity propertyquantity/resultresult columnoid propertyoid/result/collection/resultMap2.3 测试 OrderMapper package com.xqx.mapper;import com.xqx.model.Order; import com.xqx.vo.OrderVo; import org.springframework.stereotype.Repository;Repository public interface OrderMapper {OrderVo selectbyOid(Integer boid);}OrderBiz package com.xqx.biz;import com.xqx.vo.OrderVo;public interface OrderBiz {OrderVo selectbyOid(Integer boid); }OrderBizImpl package com.xqx.biz;import com.xqx.mapper.OrderMapper; import com.xqx.vo.OrderVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class OrderBizImpl implements OrderBiz {Autowiredprivate OrderMapper OrderMapper;Overridepublic OrderVo selectbyOid(Integer boid) {return OrderMapper.selectbyOid(boid);} }Junit测试 package com.xqx.biz;import com.xqx.vo.OrderVo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(locations{classpath:Spring-context.xml}) public class OrderBizImplTest {Autowiredprivate OrderBiz OrderBiz;Testpublic void selectbyOid() {OrderVo orderVO OrderBiz.selectbyOid(7);System.out.println(orderVO);orderVO.getOrderItems().forEach(System.out::println);} }测试结果 三、 多对多映射 多对多映射是指多个对象与多个对象具有多对多的关系。以根据书籍id查找关联属性类别为例 3.1 创建实体 vo对象 package com.xqx.vo;import com.xqx.model.BookCategory; import com.xqx.model.Book; import lombok.Data; import java.util.List;Data public class BookVo extends Book {private ListBookCategory bookc new ArrayList(); }3.2 resultMap配置 resultMap idBookVoMap typecom.xqx.vo.BookVo result columnbook_id propertybookId/resultresult columnbook_name propertybookName/resultresult columnprice propertyprice/resultcollection propertybookc ofTypecom.xqx.model.Categoryresult columncategory_id propertycategoryId/resultresult columncategory_name propertycategoryName/result/collection/resultMap!--根据书籍的id查询书籍的信息及所属属性--select idselectByBookId resultMapBookVoMap parameterTypejava.lang.IntegerSELECT*FROMt_hibernate_book b,t_hibernate_category c,t_hibernate_book_category bcWHEREb.book_id bc.bidAND c.category_id bc.bcidAND b.book_id #{bid}/select3.3 测试 BookMapper package com.xqx.mapper;import com.xqx.model.Book; import com.xqx.vo.BookVo; import org.springframework.stereotype.Repository;Repository public interface BookMapper {HbookVo selectByBid(Integer bid);}BookBiz package com.xqx.biz;import com.xqx.vo.BookVo;public interface BookBiz {HbookVo selectByBid(Integer bid); }BookBizImpl package com.xqx.biz;import com.xqx.mapper.BookMapper; import com.xqx.vo.BookVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class BookBizImpl implements BookBiz {Autowiredprivate BookMapper BookMapper;Overridepublic BookVo selectByBid(Integer bid) {return BookMapper.selectByBid(bid);} }junit测试 package com.xqx.biz;import com.xqx.vo.BookVo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(locations{classpath:Spring-context.xml}) public class BookBizImplTest {Autowiredprivate BookBiz BookBiz;Testpublic void selectByBid() {BookVo bookVo BookBiz.selectByBid(8);System.out.println(bookVo);BookVo.getHcategory().forEach(System.out::println);} }
http://www.w-s-a.com/news/761948/

相关文章:

  • 成都seo网站建设花店网页模板html
  • 义乌市网站制作网络营销策略名词解释
  • 高端品牌网站建设图片wordpress 资源站主题
  • 上海建设工程监督总站网站电商网站wordpress
  • 网站建设 医院菏泽网站建设熊掌号
  • 成都网站建设企业预约网免费建站流程
  • 网站建设胶州中国政务网站建设绩效评估
  • 合肥知名网站推广胶东国际机场建设有限公司网站
  • asp.ney旅游信息网站下载 简洁濮阳微信网站开发
  • 建设网站专业怎么上传网站程序到空间
  • 县城乡建设局网站微商城小程序哪个好
  • 博物馆门户网站建设优势重庆seo排名系统运营
  • 哪有app制作公司上海seo排名
  • 长沙建站seo公司北京招聘信息
  • 建设网站情况说明范文四川个人证书查询网官网
  • 推广学校网站怎么做公司可以做多个网站吗
  • 游戏网站后台建设郑州定制网站
  • 商务公司网站建设网站建设如何自学
  • 现在建网站可以拖拉式的吗中国国内最新新闻
  • phpstorm网站开发产品logo设计
  • 电子商务网站建设与运营什么是单页面网站
  • 西安优化网站公司南阳微信网站
  • 购物网站线下推广方案佛山快速建站哪家服务专业
  • 临沂网站排名外贸网站推广方法之一
  • 手机网站百度关键词排名查询吕梁网站制作吕梁安全
  • 做网站媒体wordpress管理员账号数据库添加
  • php如何自己做网站wordpress怎么修改编辑代码
  • 网站建网站建设公司WordPress互联
  • 泊头市网站建设价格wordpress导航菜单位置
  • 怎么设立网站赚广告费网页制作素材模板图片