做网站淘汰了,网站宣传的劣势,开发app需要哪些软件,做网站用什么主机好1. 前言
本节课程让我们一起体验 Hibernate 的魅力#xff01;编写第一个基于 Hibernate 的实例程序。
在本节课程中#xff0c;你将学到 #xff1a;
Hibernate 的版本发展史#xff1b;持久化对象的特点。
为了更好地讲解这个内容#xff0c;这个初体验案例分上下 2…1. 前言
本节课程让我们一起体验 Hibernate 的魅力编写第一个基于 Hibernate 的实例程序。
在本节课程中你将学到
Hibernate 的版本发展史持久化对象的特点。
为了更好地讲解这个内容这个初体验案例分上下 2 个章节来讲解。 2. Hibetnate 体系结构 如图可知应用程序可以通过 Hibernate 为用户提供的接口 API 通知 Hibernate 内部组件对数据库中数据进行一系列操作。
在操作之前先做些准备工作。 3. 使用 Hibernate 编写第一个程序 3.1 持久化对象
Hibernate 是以 Java 面向对象编程的方式操作数据库。使用之前先要定义一个对象这个对象叫持久化对象。 为什么叫持久化对象不急一步步来慢慢掀起它神秘面纱。 先一起来看看这个持久化对象的定义。这个所谓的持久化对象长得和普通的 Java 对象没有什么不同 文章中淡化了对象和类的区别。 public class Student {//学生编号private Integer stuId;//学生姓名private String stuName;//此处省略其它属性……public Student(){super();}public Student(Integer stuId,String stuName){this.stuIdstuId;this.stuNamestuName;//省略代码……}//省略各种get set方法
} 关于这个对象定义有几点需要说明
这个类的结构需要对应关系型数据库中某一张表的表结构可用类中的属性封装表中对应字段数据数据类型保持一致所有属性提供 get 和 set 方法类定义中提供一个无参的构造方法。且不要在这个类中提供任何业务逻辑代码。是的这是一个符合 JavaBean 规范的普通 Java 类POJO。 你定义的你心里知道。但是Hibernate 不知道这个类是干嘛用 所以你必须通过元数据说明告诉 Hibernate
这个类结构对应那个表结构这个类的属性对应表中的那个字段还需附加类型说明等 N 多信息
加上元数据说明这样Hibernate 就能够使用这个对象操作数据中的数据了 智能化是有前提条件的Hibernate 再聪明也需要指引 此时这个 POJO 普通 Java 类 POJO Plain Ordinary Java Object不包含业务逻辑代码的值对象对象可换上一个更贴切的名字持久化对象POpersistent object。
你也应该要小结一下 PO POJO 元数据说明
此处稍加提醒下元数据说明方法有两种
XML注解。 3.2 XML 映射
现在流行使用注解方式告诉 Hibernate 你操作的对象对应数据库中的那张表及更多关联信息。
对 XML 映射大家也需要了解一下万一你以后工作的企业里有一群怀旧的叔叔呢
本章节中的案例使用 XML 映射方式后面的内容讲解还是要跟上潮流使用注解方式。
命名为 Student.hbm.xml 文件中部分内容如下 (完整的文档结构说明可查看官方文档)
Hibernate-mappingclass namecom.po.Student tablestudent schemascott id namestuId typejava.lang.Integercolumn namestuId precision11 scale0 /generator classincrement/generator/idproperty namestuName typejava.lang.Stringcolumn namestuName length20 uniquetrue //property!--其它属性映射--/class
/Hibernate-mapping上面这个 XML 文件中的内容语义上非常明确。为了加深理解再解释一下 Xml 中相应元素
class 类与表的映射关系id 类中的那个属性对应表中的主键字段只能有一个。这个属性也可叫做标识属性。property 通过子元素 column 一起说明类中的其它属性分别对应表中的那个字段可以有多个。 通过 XML 元素属性或子元素所提供的附加信息越多就可以让 Hibernate 清晰地明白自己的任务否则某些环节它就要靠猜了 编码规范提示 尽可能保持 Java 类中属性命名和表中字段命名相同
有了前面的工作。已经足够让 Hibernate 在进入数据库系统时生成正确的 SQL 语句也足够让 Hibernate 把从数据库中带出来的数据映射成正确 Java 对象。 4. 主配置文件
何谓主配置文件其作用是什么 一句话概括为 Hibetnater 的数据库操作工作做行程计划。 如
指定访问的具体数据库串门可别窜岔了操作时依赖的映射文件在那里在操作过程其它一系列设置安排。 也可以说开发者可以通过此文档和 Hibernate 的内部组件进行互动。 Hibetnate.cfg.xml 是主配置文件的默认命名当然你可以改成其它名称 好吧现在通过此文件告诉 Hibernate 两个信息
你要远行的地方叫 MySql 本课程选用 MySql 为项目数据库你要依赖的映射文件叫 Student.hbm.xml。
hibernate-configurationsession-factory!-- 访问MySql数据库的基本连接信息 --property nameconnection.driver_classcom.mysql.jdbc.Driver/propertyproperty : nameconnection.urljdbc:mysql://localhost:3306/myhibernate/propertyproperty nameconnection.usernameroot/propertyproperty nameconnection.passwordabc123/property!— 数据库连接池会在后面讲解这里先给自己一个预习机会--property nameconnection.pool_size1/property!-- SQL 方言 --property namedialectorg.hibernate.dialect.HSQLDialect/property!-- 是否显示Hibetnate自动生成的SQL语句 --property nameshow_sqltrue/property!—映射文件的位置--mapping resourcecom/mk/po/Student.hbm.xml//session-factory
/hibernate-configuration文件中的内容一目了然有几点需要强调说明: 数据源的目的是告诉 Hibetnate 去哪家关系数据库中获取数据。配置时一般会涉及到数据库连接池可先作为自己预习内容此章节不讲 dialect 方言如同大家都讲普通话因出生地区域不同普通话中或多或少都会有本地方言。SQL 是关系数据系统的统一语言每一种具体的关系数据库产品中的 SQL 语句也有稍许差异性。此处告诉 Hibetnate 在生成 SQL 语句时要入乡随俗注意语法上的细节差异 其它配置内容可根据开发过程的需求逐一添加。 其实不难如果你觉得难对于想让你工作变得简单的 Hibernate 而言就会觉得很伤心 当然你也不能指望 Hibetnate 是你心里的蛔虫在 Hibernate 工作之前与之交流环节是必不可少的。 5. 小结
本节课内容先讲到这里知识需要消化时间。
本节课程让大家了解了 Hibernate 进行数据库操作的关键是什么在心里反复地默念一下
持久化对象是一个 Java 对象牵手元数据说明信息目的是帮助 Hibernate 明白进入数据库系统的任务生成增、删、改、查相应操作的 SQL 语句、以及正确完成数据关系型数据到数据Java OOP 数据的映射。