湖南平台网站建设企业seo基础知识

news/2025/9/23 3:07:08/文章来源:
湖南平台网站建设企业,seo基础知识,网站建设类的计入什么科目,觉 网站在hibernate中#xff0c;通常配置对象关系映射关系有两种#xff0c;一种是基于xml的方式#xff0c;另一种是基于annotation的注解方式#xff0c;熟话说#xff0c;萝卜青菜#xff0c;可有所爱#xff0c;每个人都有自己喜欢的配置方式#xff0c;我在试了这两种方…在hibernate中通常配置对象关系映射关系有两种一种是基于xml的方式另一种是基于annotation的注解方式熟话说萝卜青菜可有所爱每个人都有自己喜欢的配置方式我在试了这两种方式以后发现使用annotation的方式可以更简介所以这里就简单记录下通过annotation来配置各种映射关系在hibernate4以后已经将annotation的jar包集成进来了如果使用hibernate3的版本就需要引入annotation的jar包。 一、单对象操作 Entity  ---  如果我们当前这个bean要设置成实体对象就需要加上Entity这个注解 Table(namet_user)  ----  设置数据库的表名 public class User { private int id; private String username; private String password; private Date born; private Date registerDate; Column(nameregister_date)  ---  Column中的name属性对应了数据库的该字段名字里面还有其他属性例如lengthnullable等等 public Date getRegisterDate() { return registerDate; } public void setRegisterDate(Date registerDate) { this.registerDate registerDate; } Id  ---  定义为数据库的主键ID  (建议不要在属性上引入注解因为属性是private的如果引入注解会破坏其封装特性所以建议在getter方法上加入注解) GeneratedValue  ----  ID的生成策略为自动生成   public int getId() { return id; } public void setId(int id) { this.id id; }   ............ } 最后只需要在hibernate.cfg.xml文件里面将该实体类加进去即可 !-- 基于annotation的配置 --mapping classcom.xiaoluo.bean.User/ !-- 基于hbm.xml配置文件 --mapping resourcecom/xiaoluo/bean/User.hbm.xml/ 这样我们就可以写测试类来进行我们的CRUD操作了。 二、一对多的映射(one-to-many) 这里我们定义了两个实体类一个是ClassRoom一个是Student这两者是一对多的关联关系。 ClassRoom类 Entity Table(namet_classroom) public class ClassRoom {private int id; private String className; private SetStudent students; public ClassRoom() { students new HashSetStudent(); } public void addStudent(Student student) { students.add(student); } Id GeneratedValue public int getId() { return id; } public void setId(int id) { this.id id; } public String getClassName() { return className; } public void setClassName(String className) { this.className className; } OneToMany(mappedByroom)  ---  OneToMany指定了一对多的关系mappedByroom指定了由多的那一方来维护关联关系mappedBy指的是多的一方对1的这一方的依赖的属性(注意如果没有指定由谁来维护关联关系则系统会给我们创建一张中间表) LazyCollection(LazyCollectionOption.EXTRA)  ---  LazyCollection属性设置成EXTRA指定了当如果查询数据的个数时候只会发出一条 count(*)的语句提高性能 public SetStudent getStudents() { return students; } public void setStudents(SetStudent students) { this.students students; } } Student类 Entity Table(namet_student) public class Student {private int id; private String name; private int age; private ClassRoom room; ManyToOne(fetchFetchType.LAZY)  --- ManyToOne指定了多对一的关系fetchFetchType.LAZY属性表示在多的那一方通过延迟加载的方式加载对象(默认不是延迟加载) JoinColumn(namerid)  ---  通过 JoinColumn 的name属性指定了外键的名称 rid (注意如果我们不通过JoinColum来指定外键的名称系统会给我们声明一个名称) public ClassRoom getRoom() { return room; } public void setRoom(ClassRoom room) { this.room room; } Id GeneratedValue 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; } } 三、一对一映射(One-to-One) 一对一关系这里定义了一个Person对象以及一个IDCard对象 Person类 Entity Table(namet_person) public class Person {private int id; private String name; private IDCard card; OneToOne(mappedByperson)  ---  指定了OneToOne的关联关系mappedBy同样指定由对方来进行维护关联关系 public IDCard getCard() { return card; } public void setCard(IDCard card) { this.card card; } Id GeneratedValue 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; } } IDCard类 Entity Table(namet_id_card) public class IDCard {private int id; private String no; private Person person; Id GeneratedValue public int getId() { return id; } public void setId(int id) { this.id id; } public String getNo() { return no; } public void setNo(String no) { this.no no; } OneToOne  ---  OnetoOne指定了一对一的关联关系一对一中随便指定一方来维护映射关系这里选择IDCard来进行维护 JoinColumn(namepid)  ---  指定外键的名字 pid public Person getPerson() { return person; } public void setPerson(Person person) { this.person person; } } 注意:在判断到底是谁维护关联关系时可以通过查看外键哪个实体类定义了外键哪个类就负责维护关联关系。 四、Many-to-Many映射(多对多映射关系) 多对多这里通常有两种处理方式一种是通过建立一张中间表然后由任一一个多的一方来维护关联关系另一种就是将多对多拆分成两个一对多的关联关系 1.通过中间表由任一一个多的一方来维护关联关系 Teacher类 Entity Table(namet_teacher) public class Teacher {private int id; private String name; private SetCourse courses; public Teacher() { courses new HashSetCourse(); } public void addCourse(Course course) { courses.add(course); } Id GeneratedValue 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; } ManyToMany(mappedByteachers)  ---  表示由Course那一方来进行维护 public SetCourse getCourses() { return courses; } public void setCourses(SetCourse courses) { this.courses courses; } } Course类 Entity Table(namet_course) public class Course {private int id; private String name; private SetTeacher teachers; public Course() { teachers new HashSetTeacher(); } public void addTeacher(Teacher teacher) { teachers.add(teacher); } ManyToMany   --- ManyToMany指定多对多的关联关系 JoinTable(namet_teacher_course, joinColumns{ JoinColumn(namecid)}, inverseJoinColumns{ JoinColumn(name tid) })  ---  因为多对多之间会通过一张中间表来维护两表直接的关系所以通过 JoinTable 这个注解来声明name就是指定了中间表的名字JoinColumns是一个 JoinColumn类型的数组表示的是我这方在对方中的外键名称我方是Course所以在对方外键的名称就是 ridinverseJoinColumns也是一个 JoinColumn类型的数组表示的是对方在我这放中的外键名称对方是Teacher所以在我方外键的名称就是 tid public SetTeacher getTeachers() { return teachers; } public void setTeachers(SetTeacher teachers) { this.teachers teachers; } Id GeneratedValue 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; } } 2.将Many-to-Many拆分成两个One-to-Many的映射(Admin、Role、AdminRole) Admin类 Entity Table(namet_admin) public class Admin {private int id; private String name; private SetAdminRole ars; public Admin() { ars new HashSetAdminRole(); } public void add(AdminRole ar) { ars.add(ar); } Id GeneratedValue 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; } OneToMany(mappedByadmin)  ---  OneToMany关联到了AdminRole这个类由AdminRole这个类来维护多对一的关系mappedByadmin LazyCollection(LazyCollectionOption.EXTRA)   public SetAdminRole getArs() { return ars; } public void setArs(SetAdminRole ars) { this.ars ars; } } Role类 Entity Table(namet_role) public class Role {private int id; private String name; private SetAdminRole ars; public Role() { ars new HashSetAdminRole(); } public void add(AdminRole ar) { ars.add(ar); } Id GeneratedValue 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; } OneToMany(mappedByrole)  ---  OneToMany指定了由AdminRole这个类来维护多对一的关联关系mappedByrole LazyCollection(LazyCollectionOption.EXTRA) public SetAdminRole getArs() { return ars; } public void setArs(SetAdminRole ars) { this.ars ars; } } AdminRole类 Entity Table(namet_admin_role) public class AdminRole {private int id; private String name; private Admin admin; private Role role; Id GeneratedValue 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; } ManyToOne  ---  ManyToOne关联到Admin JoinColumn(nameaid)   public Admin getAdmin() { return admin; } public void setAdmin(Admin admin) { this.admin admin; } ManyToOne  ---   JoinColumn(namerid) public Role getRole() { return role; } public void setRole(Role role) { this.role role; } } 小技巧:通过hibernate来进行插入操作的时候不管是一对多、一对一还是多对多都只需要记住一点在哪个实体类声明了外键就由哪个类来维护关系在保存数据时总是先保存的是没有维护关联关系的那一方的数据后保存维护了关联关系的那一方的数据如        Person p new Person();p.setName(xiaoluo);session.save(p);IDCard card new IDCard();card.setNo(1111111111); card.setPerson(p); session.save(card); 以上就是对hibernate annotation注解方式来配置映射关系的一些总结。转载于:https://www.cnblogs.com/loong-hon/p/4926080.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞企业建设网站官网有限公司python 类似wordpress

编号:0089 17-18学年第1学期期末考试 Internet和Intranet应用 试题答案 一、填空题:(每空4分,共40分) 1.网络接口层  网际网层  传输层  应用层 2.路由器(或网关)  目的主机 3&#xff…

分类信息网站如何做优化他达拉非什么是

一种基于嵌入式的卫星基带信号处理系统的制作方法 随着卫星通信技术的不断发展,卫星基带信号处理系统的性能和稳定性要求也越来越高。传统的卫星基带信号处理系统通常采用分立器件和通用处理器,存在着体积庞大、功耗高、集成度低等问题。为了解决这些问题…

网站收录很少却有排名wordpress 架构

小程序开发遇到瓶颈虽然腾讯提供了小程序解决方案,https://cloud.tencent.com/solution/la。但是对于普通开发者或者小企业的开发人员来说,购买域名,网站备案、部署SSL证书,安装会话服务器。业务逻辑上要使用数据库,缓…

急求聊城网站建设网站建设前期准备工作总结

转自:http://bbs.pcpop.com/091030/5945399.html 1. 什么是cab文件 CAB在电脑上是一种压缩文件,微软出品的东西,用WinRAR可以解压缩,在DOS启动盘里面可以看见一些CAB压缩文件。其实Windows里面已经带了CAB压缩程序,但…

ps做网站网页好吗做分销的网站

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 一个数组统计是否有 func isUnique(astr string) bool {var arr[26] int;for _,ch:range astr{num:ch-aif(arr[num]1){return false}arr[num]}return true } 给定两个字符串 s1 和 s2,请编写一…

成都网站商城建设wordpress 极简

我们要控制角色的移动,能够所有细节都由自己来实现。控制角色模型的移动,同一时候移动摄影机,改变视角。当然Unity也提供了一些组件,能够让我们做更少的工作,实现我们所期望的功能。今天我们就一起系统来学习相关的内容…

佛山外贸网站制作湖南人文科技学院怎么样

1.设置app图标右上角的数字2.设置状态栏的属性(样式、是否要显示)3.打开某个链接\发短信\打电话4.keyWindow : 访问程序的主窗口(一个程序只能有一个主窗口)5.windows : 访问程序中的所有窗转载于:https://www.cnblogs.com/gatsby…

做英文网站公司获取网站访问者qq号

数据分析是使用统计和计算机科学技术来解决现实世界问题的过程。Python是一种流行的编程语言,也是数据分析的常用工具之一。在Python中,有许多库和工具可用于数据分析,比如NumPy、Pandas、Matplotlib等。 NumPy是Python中用于科学计算的一个…

网站 内容建设存在的问题3d效果图教程网站

with opne("text.txt", encoding"utf8") as f, open("text2.txt", encoding"utf8") as f2 : pass with代码块执行完就自动close文件、转载于:https://www.cnblogs.com/somethingintheway/p/9789650.html

音乐网站整站程序做网站建设需要会哪些

今年以来,家政市场需求持续增长,市场规模达到了万亿级别,家政服务行业成为了热门行业之一! 家政服务种类目前逐渐呈现了多样化,月嫂、保姆、做饭保洁、收纳、维修等家政种类不断出现,满足了居民日益增长的…

基础精品课程网站做网站设计文字大小怎么设定

文章目录 前言一、如何找到自己的勋章?二、如何获得更多勋章?三、重点勋章、易得勋章介绍&推荐1.创作能手2.五一创作勋章3.创作纪念日IT一周年勋章4.新秀勋章5.话题达人6.128天创作纪念日(IT博客专属)7.GitHub绑定勋章8.其他 …

网站建设的定位是什么排名检测

目前数据挖掘已经成为各种应用领域的重要技术,大学数据挖掘课程的开放已经出现。数据挖掘课程整合了多门学科知识。该课程包括各种理论知识,也离不开相关的实用技术。整个教学过程是培养和提高学生全面创新和解决问题的能力。过去,教学过程理…

网站建设在线商城建设网站赚钱的方法

与模拟数据通信相比较,数字数据通信具有下列优点: a. 来自声音、视频和其他数据源的各类数据均可统一为数字信号的形式,并通过数字通信系统传输 b. 以数据帧为单位传输数据,并通过检错编码和重发数据帧来发现与纠正通信错误&am…

西安博达网站建设邮箱163登录

支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA收款等生活服务应用。 支付宝不仅是一个支付工具,也是一个数字生活平台,通过…

商用图片的网站嘉兴本地推广网站有哪些

一、前言 场景:公司需要搭建FTP服务器,供内网之前可以互相传递数据,安全稳定,需要满足开通多个账号,每个用户上传的文件有自己对应的文件目录。 这里建议:用户目录Disk尽量大一点,避免因为空间不…

wp怎么做双语网站学校建设网站目标

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990…

东莞网站建设开发怎么在电脑上用手机app软件

Istio可观测性 image-20231129072302901 前言 Istio 为网格内所有的服务通信生成详细的遥测数据。这种遥测技术提供了服务行为的可观测性,使运维人员能够排查故障、维护和优化应用程序,而不会给开发人员带来其他额外的负担。通过 Istio,运维…

评价一个网站wordpress 主题没有样式表

1、这篇文章我们简要讨论一些Gin框架 主要是给大家一个基本概念 1、Gin主要是分为路由和中间件部分。 Gin底层使用的是net/http的逻辑,net/http主要是说,当来一个网络请求时,go func开启另一个协程去处理后续(类似epoll)。 然后主协程持续…

吴桥做网站价格自己开发一个app需要多少钱

写在开头 在当今信息爆炸的时代,海量的数据如同一座沉默的宝库,等待着我们挖掘和理解。然而,这些庞大的数据集本身可能令人望而生畏。在这个时候,数据可视化成为了解数据、发现模式和传达信息的强大工具。本篇博客将带领你探索数据可视化的奇妙世界,学习如何在python中使…

网站做301跳转的好处千牛网站上的店铺推广怎么做

1.不要听“亲朋好友”的话,他们只会让你成为“平凡人”。 2.不要只会“用功读书”,重要的是“要读对书”。  3.不要只是“努力工作”,重要的是“做对工作”。   4.不要指示结交“志趣相投”的朋友,否则你永远只看到…