码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate 基础

时间:2017-09-21 17:54:27      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:oid   htm   oss   encoding   cfg.xml   resource   bat   语法   des   

× 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         <!-- 两条url均可以使用 -->
 4         <property name="connection.url">
 5             jdbc:mysql:///hibernate?useUnicode=true&amp;characterEncoding=UTF-8
 6         </property>
 7         <!-- <property name="connection.url">
 8             jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8
 9         </property> -->
10         <property name="connection.username">root</property>
11         <property name="connection.password">root</property>
12         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
13         <!--
14         <property name="dialect">org.Hibernate.dialect.MySQLDialect</property>
15         -->
16         <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
17 
18         <!-- 三个常见属性 -->
19         <property name="show_sql">true</property>
20         <property name="format_sql">true</property>
21         <property name="hbm2ddl.auto">create</property>
22 
23         <!-- 创建问持久化映射后,进行关系映射配置 -->
24         <mapping resource="Student.hbm.xml" />
25     </session-factory>
26 </hibernate-configuration>
Hibernate.cfg.xml

  2) 创建持久化类

//创建一个符合JavaBean规范的类即可

  3) 创建对象映射文件(ClassName.hbm.xml)[ClassName.hbm.xml常用配置]

技术分享
 1 <hibernate-mapping>
 2     <class name="类名" table="数据表名">
 3         <!-- 代表该映射的ID -->
 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         <!-- 代表该映射的ID -->
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

Hibernate 基础

标签:oid   htm   oss   encoding   cfg.xml   resource   bat   语法   des   

原文地址:http://www.cnblogs.com/EvansChan/p/7569322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!