作者:佳华雅惠妤坚 | 来源:互联网 | 2023-09-15 10:44
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Hibernate 基础相关的知识,希望对你有一定的参考价值。
× ORM (Object/Relationsship Mapping):对象/关系映射
利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多的底层数据库相关的SQL语句。便有了ORM
过多编写底层SQL语句的弊端:
1.不同的数据库使用的SQL语法不通。比如PL/SQL(Oracle)与T/SQL(Microsoft[SQLServer])
2.同样的功能在不同的数据库中有不同的实现方式。比如:分页SQL
3.程序过分你依赖SQL会对程序的移植、扩展以及维护等待来很大的隐患
× 常见的ORM框架:EJB(JAVAEE规范)[ 重量级ORM框架技术 ]、Hibernate、MyBatis(IBatis)[ Apache ]、TopLink(Oracle AS TopLink)[ Oracle ] 、OJB
× 使用JUnit进行单位测试注解和执行顺序:@Before:初始化方法 --> @Test:测试方法 --> @After:释放资源
一、Hibernate简介
Hibernate是Java领域的一款开源ORM框架技术(对JDBC进行了轻量级的对象封装 [ 间接(底层)使用了JDB技术 ])。
作用:开发不同数据的应用程序,省去对SQL语句细节的较劲,专心对逻辑程序进行开发。
持久化层:介于对象信息与数据信息的相互转换,说白了就是将对象信息存入数据库 或 从数据库提取信息以对象形式进行封装。
二、搭建Hibernate准备
1. 开发工具:MyEclipse / Eclipse
2. 插件:Hibernate Tools for Eclipse Plugins(JBoss推出综合开发工具插件[for Eclipse],可简化ORM框架Hibernate,以及JBoss Seam,EJB3等的开发工作)
3. jar包:
3.1 Hibernate jar包 eg : MyEclipse已有集成的Facet使用,但Eclipse需要导入关键jar包
3.2 数据库jar包 eg : mysql:mysql-connector-java-x.x.x-bin.jar
3.3 测试工具JUNIT jar包 junit-x.xx.jar
三、基础Hibernate建设步骤
3.1 正向创建步骤:通过JavaBean(类),进行映射文件创建,通过执行访问数据库的代码,创建数据表并写入数据。
1. 创建Hibernate的配置文件
2. 创建持久化类
3. 创建对象-关系映射文件
4. 通过Hibernate API编写访问数据库的代码
3.2 逆向创建步骤:通过Datatable(数据表),
3.1 正向创建(路径) : create cfg.xml -->create class -->create hbm.xml --[执行通过Hibernate API编写访问数据库的代码]--create datatable--write data-->End
1) 创建Hibernate配置文件(Hibernate.cfg.xml)[hibernate.cfg.xml常用配置]
1 <hibernate-configuration>
2 <session-factory>
3
4 <property name="connection.url">
5 jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8
6 property>
7
10 <property name="connection.username">rootproperty>
11 <property name="connection.password">rootproperty>
12 <property name="connection.driver_class">com.mysql.jdbc.Driverproperty>
13
16 <property name="dialect">org.hibernate.dialect.MySQL5Dialectproperty>
17
18
19 <property name="show_sql">trueproperty>
20 <property name="format_sql">trueproperty>
21 <property name="hbm2ddl.auto">createproperty>
22
23
24 <mapping resource="Student.hbm.xml" />
25 session-factory>
26 hibernate-configuration>
Hibernate.cfg.xml 2) 创建持久化类
3) 创建对象映射文件(ClassName.hbm.xml)[ClassName.hbm.xml常用配置]
1 <hibernate-mapping>
2 <class name="类名" table="数据表名">
3
4 <id name="id" type="int">
5 <column name="ID" />
6 <generator class="assigned" />
7 id>
8
9 <property name="属性名" type="属性类型(需要全称)">
10 <column name="字段名" />
11 property>
12 class>
13 hibernate-mapping>
14
15
16 <hibernate-mapping>
17 <class name="Student" table="STUDENT">
18
19 <id name="id" type="int">
20 <column name="ID" />
21 <generator class="assigned" />
22 id>
23
24 <property name="name" type="java.lang.String">
25 <column name="NAME" />
26 property>
27 <property name="gender" type="java.lang.String">
28 <column name="GENDER" />
29 property>
30 <property name="birthday" type="java.util.Date">
31 <column name="BIRTHDAY" />
32 property>
33 <property name="address" type="java.lang.String">
34 <column name="ADDRESS" />
35 property>
36 class>
37 hibernate-mapping>
ClassName.hbm.xml 4) 通过Hibernate API编写访问数据库的代码
步骤:创建配置对象 --> 创建服务注册对象 --> 创建会话工厂对象 --> 打开会话 --> 开启事务
在JUnit下调试,上代码!!!【Hibernate Session相关点】
1 private SessionFactory sessionFactory;
2 private Session session;
3 private Transaction transaction;
4
5 @Before
6 public void init() {
7 // 1.创建配置对象
8 Configuration cOnfig= new Configuration().configure();
9
10 // 2.创建服务注册对象
11 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
12
13 // 3.创建会话工厂
14 sessiOnFactory= config.buildSessionFactory(serviceRegistry);
15
16 // 4.打开会话对象
17 session = sessionFactory.openSession();
18
19 // 5.开启事务
20 transaction = session.beginTransaction();
21 }
22
23 @After
24 public void destory() {
25 // 提交事务
26 transaction.commit();
27 // 关闭资源
28 session.close();// 关闭会话
29 sessionFactory.close();// 关闭会话工厂
30 }
31
32 @Test
33 public void testSaveStudent() {
34 Student student = new Student(1, "测试1", "男", new Date(), "地址1");
35 session.save(student);// 保存对象进入数据库
36 }
Base Create Code 3.2 逆向创建(步骤):
To be continued