hibernate之介绍与动手入门体验

引入:

1.模型不匹配(阻抗不匹配)

Java面向对象语言,属于对象模型,主要概念有:继承、多态、关联等。

数据库是关系模型,其主要概念有:表、主键、外键等

解决办法:

  • 使用JDBC进行手工转换
  • 使用ORM(Object Relation Mapping对象关系映射)框架来解决,目前主流的ORM框架有Hibernate、TopLink、OJB等。

hibernate之介绍与动手入门体验_第1张图片

JDBC中将对象模型转换为关系模型的时候,简单的举例,一个insert操作。首先需要创建一个对象,然后通过调用对象的set方法,写入数据库。

搭建hibernate环境

hibernate之介绍与动手入门体验_第2张图片

1.导入jar包

2.创建一个domain对象,User,定义属性:id ,name ,birthday

3.创建domain对象的映射文件 User.hbm.xml. 作用是将对象模型和关系模型衔接起来,本案例中是将user对象和数据库中的表关联起来。

目录和User.java在同一级目录下。


  
    
  
    xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.ztesoft.hibernate.domain">
  <class name="User" table="USERDEMO">
    <id name="id" column="ID">
      <generator class="native" />
    
  
    
  
    id>
    <property name="name" />
    <property name="birthday" type="timestamp"/>
  
  
    
  
    class>
  
  
    
  
    

  
    
  
    hibernate-mapping>

4.hibernate.cfg.xml的配置,告诉hibernate一些连接数据库等的信息。

<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    
  
    
  
    
    <property name="connection.driver_class">
      oracle.jdbc.driver.OracleDriver
    
  
    
  
    property>
    <property name="connection.url">
      jdbc:oracle:thin:@localhost:1521:orcl
    
  
    
  
    property>
    <property name="connection.username">scott
  
    
  
    property>
    <property name="connection.password">tiger
  
    
  
    property>
    
  
    
  
    
    <property name="hibernate.dialect">
      org.hibernate.dialect.OracleDialect
    
  
    
  
    property>
    
  
    
  
    
    <property name="connection.pool_size">1
  
    
  
    property>
    
  
    
  
    
    <property name="current_session_context_class">thread
  
    
  
    property>
    
  
    
  
    
    <property name="cache.provider_class">
      org.hibernate.cache.NoCacheProvider
    
  
    
  
    property>
    
  
    
  
    
    <property name="show_sql">true
  
    
  
    property>
    
  
    
  
    
    <property name="hbm2ddl.auto">create
  
    
  
    property>
    <mapping resource="com/ztesoft/hibernate/domain/User.hbm.xml" />
  
  
    
  
    session-factory>
  
  
    
  
    

  
    
  
    hibernate-configuration>

5.创建一个测试类,进行测试。

/**
 * 
 */
package com.ztesoft.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.ztesoft.hibernate.domain.User;
/**
 * @author yangshangwei
 * 
 */
public class Base {
  public static void main(String[] args) {
    // 我们必须启动Hibernate,此过程包括创建一个全局的SessoinFactory,并把它储存在应用程序代码容易访问的地方。
    // SessionFactory可以创建并打开新的Session。一个Session代表一个单线程的单元操作,SessionFactory则是个线程安全的全局对象,只需要被实例化一次。
    // Create the SessionFactory from hibernate.cfg.xml
    SessionFactory sFactory = new Configuration().configure().buildSessionFactory();
    Session session = sFactory.openSession();
    Transaction tx = session.beginTransaction();
    User user = new User();
    user.setName("Jack");
    user.setBirthday(new Date());
    session.save(user);
    tx.commit();
    System.out.println("end");
  }
}

你可能感兴趣的:(hibernate之介绍与动手入门体验)