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

和田知名网站建设企业怎么优化关键词

和田知名网站建设企业,怎么优化关键词,pac网站代理,wordpress 当前页url转载自:https://blog.csdn.net/xingfei_work/article/details/75668328 在上一篇博客中我们知道数据库的三种关系,那么这一篇就聊聊一对多的关系。 一对多的时候,需要明确外键究竟应该设置到那个表上,一般都是多的那个表中拥有一…

转载自:https://blog.csdn.net/xingfei_work/article/details/75668328

在上一篇博客中我们知道数据库的三种关系,那么这一篇就聊聊一对多的关系。
一对多的时候,需要明确外键究竟应该设置到那个表上,一般都是多的那个表中拥有一的表的主键来做外键。
人和银行卡,一个人有多张银行卡,多张卡属于一个人,那么这2个表就存在一对多和多对一的关系。
首先我们看看基于xml的实现:
Person类:

//人类--体现一对多,一个人有多张银行卡
public class Person {private int id;private String name;private int age;//不需要通过索引操作集合//private Set<BankCard> bankCards;//人拥有的所有银行卡//需要索引操作集合private List<BankCard> bankCards;//人拥有的所有银行卡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 int getAge() {return age;}public void setAge(int age) {this.age = age;}/*public Set<BankCard> getBankCards() {return bankCards;}public void setBankCards(Set<BankCard> bankCards) {this.bankCards = bankCards;}*/public List<BankCard> getBankCards() {return bankCards;}public void setBankCards(List<BankCard> bankCards) {this.bankCards = bankCards;}}

BankCard类:


//银行卡类,体现的是多对一,多张银行卡对应一个人
public class BankCard {private int id;private String name;//银行private String no;//银行卡号private Person person;//卡所属的人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 getNo() {return no;}public void setNo(String no) {this.no = no;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}

我这里才有的是list集合,所以配置的时候需要使用list标签并且还得维护一个索引字段,为了让Hibernate知道存储顺序的
Person类的映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--文档说明,设置映射文件 -->
<!DOCTYPE hibernate-mappingSYSTEM"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<!--映射标签 package:内部类的所在的包名 -->
<hibernate-mapping package="org.qf.onetomany"><class name="Person" table="tb_person"><!--id:主键,name:属性名称,column:字段名称 --><id name="id" column="id"><generator class="identity" /></id><!--配置属性对应的字段 --><property name="name" length="20" /><property name="age" /><!--属性为集合的配置 一对多 对多对 name:集合的属性名称 --><!--一对多是Set集合进行关联,无需去维护索引 --><!-- <set name="bankCards" lazy="false">key标记的是集合中泛型类对应的外键字段 column:多的一方的外键(该外键必须来自当前的类的主键)<key column="pid"></key>存在一对多的关系 class:与哪个类存在一对多关系<one-to-many class="BankCard" /></set> --><!--使用List集合,通过索引控制  --><list name="bankCards" cascade="save-update"><key column="pid"></key><index column="list_index"></index><one-to-many class="BankCard"/></list></class>
</hibernate-mapping>

BankCard类的映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mappingSYSTEM"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="org.qf.onetomany"><class name="BankCard" table="tb_bankcard"><!--id:主键,name:属性名称,column:字段名称  --><id name="id" column="id"><generator class="identity"/></id><!--配置属性对应的字段  --><property name="name" length="50" /><property name="no" length="30" /><!--在一对多和多对一中外键设置到多的一方  多对一,只需标记2个属性:name:指明当前类的哪个属性存在多对一column:指明外键的字段名称cascade:级联设置,主要标记的书相关联的数据的修改操作:新增、修改、删除当保存或删除当前对象时候,是否需要将有关联的对象也进行相同的操作取值说明:all:全部delete:删除save-update:保存或修改fetch:抓取数据的策略标记如果查询项关联的数据信息取值:1、join使用连接查询2、 select单个查询  --><many-to-one name="person" column="pid" cascade="save-update" fetch="join"></many-to-one></class>
</hibernate-mapping>

以上就是一对多和多对一的关系配置,但是需要注意的是使用list集合,必须维护一个字段记录添加顺序,否则List集合无法使用
那么接下来,我们看看如何通过注解实现一对多和多对一呢?
注解主要用的就是@OneToMany和@ManyToOne
Person类:

//人类--体现一对多,一个人有多张银行卡
@Entity
@Table(name="tb_person")
public class Person {@Id//主键@GeneratedValue(strategy=GenerationType.IDENTITY)//主键生成策略private int id;@Column(length=20)private String name;private int age;//不需要通过索引操作集合//private Set<BankCard> bankCards;//人拥有的所有银行卡//需要索引操作集合@OneToMany(fetch=FetchType.EAGER,mappedBy="person",targetEntity=BankCard.class)//设置一对多,且立即加载private List<BankCard> bankCards;//人拥有的所有银行卡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 int getAge() {return age;}public void setAge(int age) {this.age = age;}/*public Set<BankCard> getBankCards() {return bankCards;}public void setBankCards(Set<BankCard> bankCards) {this.bankCards = bankCards;}*/public List<BankCard> getBankCards() {return bankCards;}public void setBankCards(List<BankCard> bankCards) {this.bankCards = bankCards;}
}

注意@OneToMany
体现一对多的映射,不会出现外键
常用属性:
mappedBy:关联的属性名称,就是存在多的一方中的本类的属性名称
targetEntity:集合中泛型类的Class类对象,其实就是多的类的Class
BankCard类:


//银行卡类,体现的是多对一,多张银行卡对应一个人
@Entity
@Table(name="tb_bc")
public class BankCard {@Id//主键@GeneratedValue(strategy=GenerationType.IDENTITY)//主键生成策略private int id;@Column(length=30)private String name;//银行@Column(length=30)private String no;//银行卡号@ManyToOne@JoinColumn(name="pid")private Person person;//卡所属的人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 getNo() {return no;}public void setNo(String no) {this.no = no;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}

以上就是关于Hibernate中实现一对多和多对一的2种方式,xml和注解

http://www.lbrq.cn/news/2396755.html

相关文章:

  • 江阴做网站公司怎么提高百度关键词排名
  • 什么网站做简历模板seo研究中心道一老师
  • 有哪些网站做的比较好看的长春网站seo
  • 服装官网网站建设百度竞价托管哪家好
  • 营销网站建设规划概念提供搜索引擎优化公司
  • wordpress转bitcronseowhy教研室
  • 深圳建站公司的小技巧市场营销案例100例
  • 如何在局域网内做网站网站功能优化
  • web网站开发分享网站武汉百度推广优化
  • 东莞做网站公司有哪些收录批量查询工具
  • 做网站都注意哪些东西百度营销登录入口
  • 微信看视频打赏网站建设头条新闻最新消息
  • 医院网站 功能google seo是什么
  • wordpress 图片网站推销产品的软文500字
  • 用模板做网站的方法免费seo培训
  • 做名片制作网站有什么软文发布软件
  • 网站建设修改营销网站建设哪家好
  • 朝阳专业网站建设公司产品销售方案与营销策略
  • 网站建设与规划实验心得百度seo关键词优化电话
  • 深圳建设网站公司全球访问量top100网站
  • 针对人群不同 网站做细分关键词三年级
  • 物联网开发平台新河seo怎么做整站排名
  • 北京政府网站开发外贸网站
  • 古董专家官方网站微信新冠疫情最新消息今天公布
  • 浙江省建设委员会网站aso排名优化知识
  • 朔州市2018年建设工程网站如何在百度上营销
  • 网站解析出问题 邮件收不到了网络营销策划师
  • 武安建设局网站十大引擎网址
  • wordpress https错误推广学院seo教程
  • 找人做博彩网站互动营销平台
  • MyBatis动态SQL实战:告别硬编码,拥抱智能SQL生成
  • 尚庭公寓-----day2 业务功能实现
  • React 的 `cache()` 函数
  • linux 的list_for_each_entry
  • Maven下载安装与idea配置
  • 切比雪夫不等式的理解以及推导【超详细笔记】