随笔-21  评论-29  文章-0  trackbacks-0
引入
  模型不匹配(阻抗不匹配)
        Java面向对象语言,对象模型,其主要概念有:继承、关联、多态等;
        数据库是关系模型,其主要概念有:表、主键、外键等。
  解决方法:
       使用JDBC手工转换;
       使用ORM(Object Relation Mapping对象关系映射)框架来解决,主流的ORM框架有Hibernate、TopLink、OJB。
安装配置
      下载地址:http://www.hibernate.org,本学习课程采用3.2.5.
       将下载目录/hibernate3.jar和/lib下的hibernate运行时必须得包加入到classpath中:antlr.jar   cglib.jar    asm.jar   commons-collections.jar  commons-logging.jar   jta.jar   dom4j.jar

       配置文件hibernate.cfg.xml和hibernate.properties,XML和properties两种,这两个文件的作用一样,提供一个即可,推荐XML格式,下载目录/etc下是示例配置文件。
      可以再配置文件指定:数据库的URL、用户名、密码、JDBC驱动类、方言等。
      启动时Hibernate会在CLASSPATH里找这个配置文件。
       映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的Hibernate示例。
 快速开始小例子
新建一java工程 命名为hibernate。
新建一User类


package cn.itcast.hibernate.domain;

import java.util.Date ;
public class User {
    
private int id ;
    
private String name ;
    
private Date birthday ;
    
public int getId() {
        
return id;
    }

    
public void setId(int id) {
        
this.id = id;
    }

    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
public Date getBirthday() {
        
return birthday;
    }

    
public void setBirthday(Date birthday) {
        
this.birthday = birthday;
    }

    
}

导入hibernate相关的jar包,包括hibernate里面的所有包 以及MySQL数据库相应的驱动包
cn.itcast.hibernate.domain下新建 User.hbm.xml文件 代码如下
<?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="cn.itcast.hibernate.domain">

    
<class name="User">
        
<id name="id">
            
<generator class="native" />
        
</id>
        
        
<property name="name"/>
        
<property name="birthday"/>
        
    
</class>
</hibernate-mapping>
在src下新建 hibernate.cfg.xml文件 代码如下
<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        
<property name="connection.url">jdbc:mysql:///test</property>
        
<property name="connection.username">root</property>
        
<property name="connection.password">root</property>    
        
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        
        
<property name="connection.password">root</property>
        
<property name="hbm2ddl.auto">create</property>
            
        
<mapping resource="cn/itcast/hibernate/domain/User.hbm.xml"/>
        
    
</session-factory>
</hibernate-configuration>
cn.itcast.hibernate包下新建 类Base类 代码如下
package cn.itcast.hibernate;
import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import cn.itcast.hibernate.domain.User;
import org.hibernate.Transaction;
public class Base {

    
public static void main(String[] args) {
        Configuration cfg 
= new Configuration() ;
        cfg.configure();
        SessionFactory sf 
= cfg.buildSessionFactory();
        
        Session s 
= sf.openSession();
        Transaction tx 
= s.beginTransaction();
        User user 
= new User();
        user.setBirthday(
new Date());
        user.setName(
"name");
        
        s.save(user);
        tx.commit();
        s.clear();
        System.out.println(
"end");
    }


}


运行 Base类 查看数据库 证明第一个hibernate程序运行成功!


大概用了一个下午才运行出这个程序,不大习惯用MYSQL这个数据库,搞得头都大了!今天草草结束这个实例,明天再好好分析一下!
本案例代码hibernatefile
posted on 2009-05-03 15:47 特立独行 阅读(419) 评论(0)  编辑  收藏 所属分类: Hibernate框架

只有注册用户登录后才能发表评论。


网站导航: