部分文章内容为公开资料查询整理,原文出处可能未标注,如有侵权,请联系我,谢谢。邮箱地址:gnivor@163.com ►►►需要气球么?请点击我吧!

Hibernate学习笔记--第一个Hibernate框架程序

一般使用集成开发环境是,把所需的类库添加到项目属性的库路径中,开发工具在部署时会自动复制所需要的类包到WEB-INF\lib目录下

MyEclipse中:

创建项目,右击项目->myeclipse->Project Facets->Install Hibernate Facets即可

程序结构

 

1.建表

本例选择Sql Server2008作为数据库 在MySQL中新增一个ztest数据库,建立 CUSTOMER 表

CREATE TABLE CUSTOMER
(
    CID INTEGER NOT NULL PRIMARY KEY, 
    USERNAME VARCHAR(12) NOT NULL, 
    PASSWORD VARCHAR(12) 
);

 

2.创建PO对象

补充:POJO是Plain OrdinaryJava Object的缩写,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表
 
Customer.java
package com.session;

public class Customer {    
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }
    public String getPassword() {
        return password;
    }
    public String getUsername() {
        return username;
    }
    public void setId(int id) {
        this.id = id;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}

 

3.XML映像文件

为了告诉Hibernate对象如何映像至数据库表格,需要编写一个XML映射文件,命名为Customer.hbm.xml

与对应的表名要一致,XML映射文件如下

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.session.Customer" table="CUSTOMER">
        <id name="id" column="CID" type="java.lang.Integer">
            <generator class="increment" />
        </id>
        <property name="username" column="USERNAME" type="java.lang.String"/>
        <property name="password" column="PASSWORD" type="java.lang.String"/>
    </class>
</hibernate-mapping>

注意

class name =java文件完整地址+文件名

table=数据库中建的表名

name为java文件中的属性,column为数据库中的属性,二者对应。不要忘了添加type,否则可能出错 

 

4.定义Hibernate配置文件

主要是进行SessionFactory配置,Hibernate可以使用XML或属性文件来进行配置,下面是使用XML进行配置

配置文件名为hibernate.cfg.xml,也可命名为其他

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
         <!-- sql Server数据库驱动 -->  
        <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>  
        <!-- sql Server数据库名称 -->  
        <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433; DatabaseName=ztest</property>  
        <!-- 数据库的登陆用户名 -->  
        <property name="hibernate.connection.username">sa</property>  
        <!-- 数据库的登陆密码 -->  
        <property name="hibernate.connection.password">123</property>  
        <mapping resource ="com/session/Customer.hbm.xml"/>
        <!-- 注意:必须是“/”而不能是“.”。 -->
    </session-factory>    
    
</hibernate-configuration>

注意:这个文件的文件头和3中的文件头是不一样的,另外注意第三行的版本号别写错了

另外不同的数据库驱动也不同

 

5.编写应用程序

下面为一个演示程序

package com.session;

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

public class Test {
    public static void main(String[] args) {
        try {
			SessionFactory sf =
                new Configuration().configure().buildSessionFactory();
            Session session = sf.openSession();
            Transaction tx = session.beginTransaction();

            for (int i = 0; i < 200; i++) {
                Customer customer = new Customer();
                customer.setUsername("customer" + i);
                customer.setPassword("customer");
                session.save(customer);
            }

            tx.commit();
            session.close();

        } catch (HibernateException e) {
            e.printStackTrace();
        }
    }
}

 

编译执行Test.java

在Sql Server2008中执行查询语句: Select * from CUSTOMER

结果

 

另附链接 2004年的一篇文章: http://blog.csdn.net/doodoofish/article/details/43207/

好的技术会被不断发展完善。

posted @ 2015-03-10 15:04  流了个火  阅读(190)  评论(0编辑  收藏  举报
►►►需要气球么?请点击我吧!►►►
View My Stats