服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java基础知识--简单的hibernate入门

hibernate简介
  
  hibernate寓意:let java objects hibernate in the relational database.
  
  hibernate 是java应用和关系数据库之间的桥梁,负责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。
  
       "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> 
       
   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` bigin

扫描关注微信公众号