分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Hibernate 基础

发布时间:2023-09-06 01:12责任编辑:苏小强关键词: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 ????????<!-- 两条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 ????@After24 ????public void destory() {25 ????????// 提交事务26 ????????transaction.commit();27 ????????// 关闭资源28 ????????session.close();// 关闭会话29 ????????sessionFactory.close();// 关闭会话工厂30 ????}31 32 ????@Test33 ????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 基础

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved