Chinaunix首页 | 论坛 | 博客
  • 博客访问: 442860
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:23:02

  Hibernate简介
  
  Hibernate寓意:Let objects hibernate in the relational database.
  
  Hibernate 是应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以随心所欲的使用对象编程思维来操纵数据库。简单的说就是:
  
  1.封装了通过JDBC访问数据库操作。
  
  2.向上层应用提供访问面向对象数据访问的API。
  
  创建Hibernate配置文件
  
  通过一个例子practice 演示如何运用Hibernate来访问关系数据库。
  
  Practice 工程的功能:
  
  通过Hibernate保存客户(customer)信息。
  
  其Hibernate应用结构图如下:
  ―――――――――――――――――――――――――――
  Practice 应用
  Customer Class ; action Class;Business Class
  ――――――――――――――――――――――――――――
  ――――――――――――――――――――――――――――
  Hibernate xml
  对象-关系映射文件      Hibernate ApI
                 Hibernate 配置文件
  ――――――――――――――――――――――――――――
  ――――――――――――――――――――――――――――
  关系数据库(Mysql)
  CUSTOMERS 表
  ――――――――――――――――――――――――――――
  
  创建持久化类
  
  Hibernate 从Hibernate配置文件中读取和数据库连接相关的信息。
  
  配置文件有两种形式:
  
  一种是XML格式的文件:hibernate.cfg.xml
  
  一种是Java属性文件:hibernate.properties
  
  这个实例中我们将使用hibernate.cfg.xml。
  
       ""> 
      
   true   
   false  
    net.sf.hibernate.dialect.MySQLDialect   
   org.gjt.mm.mysql.Driver  
    jdbc:mysql://localhost:3306/netstore   
   root 
     123456  
    true   
   gb2312   
     
   

  
  插入位置在src目录下:
  
  创建O/R对象-关系映射文件
  创建持久化的类Customer.java
  
  package entity;import java.io.Serializable;
  public class Customers implements Serializable {  
    private Integer id;   
   private String name;   
   private int age;  
    public Customers() {   
   }  
    public int getAge() {       
   return age;    }  
    public void setAge(int age) {  
        this.age = age;   
   } 
     public Integer getId() {  
        return id; 
     }  
    public void setId(Integer id) {   
       this.id = id;   
   }  
    public String getName() {  
        return name;   
   } 
     public void setName(String name) {   
       this.name = name;
      }}
  
  Get/set 方法的命名必须符合JavaBean的规范,否则Hibernate会报出异常,具体请参照相关资料。
  
  关于Serializable接口:
  Hibernate 并不要求持久化类必须实现java.io.Serializable接口,但是对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象必须实现这个接口;如果希望对HttpSession中存放的Java对象进行持久化,那么这个Java对象必须实现Serializable接口。
  关于不带参数的构造方法:
  
  public Customers() {    }
  
  Hibernate要求持久化类必须提供一个不带参数的默认的构造方法,原因请参考相关资料。
  
  创建Mysql数据库
  数据库名称:netstroe
  Customer表DDL定义如下:CREATE TABLE `customers` ( `Id` bigint(20) NOT NULL default '0', `name` varchar(15) default NULL, `age` int(11) default NULL, PRIMARY KEY (`Id`)) TYPE=MyISAM;
  
  创建对象-关系映射文件
  创建对象-关系映射文件:Customers.hbm.xml
  代码如下:
  
     "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
   "" > 
   
阅读(122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~