首页 > 代码库 > Hibernate 4.3 配置文件实现

Hibernate 4.3 配置文件实现

1、建立web项目


2、复制相关的jar文件到 项目的lib目录下
antlr-2.7.7.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.5.Final.jar
hibernate-core-4.3.7.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-1.1.0.Final.jar
javassist-3.18.1-GA.jar
jboss-logging-3.1.3.GA.jar
jboss-logging-annotations-1.2.0.Beta1.jar
jboss-transaction-api_1.2_spec-1.0.0.Final.jar
mysql.jar


3、src目录下建立hibernate.cfg.xml文件

<?xml version=‘1.0‘ encoding=‘utf-8‘?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory>    <!-- 数据库方言 -->    <property name="dialect">        org.hibernate.dialect.MySQL5Dialect    </property>    <!-- 数据库连接设置 -->    <property name="connection.driver_class">        com.mysql.jdbc.Driver    </property>    <property name="connection.url">        jdbc:mysql://localhost:3306/db?useUnicode=true&amp;characterEncoding=utf8    </property>    <property name="connection.username">root</property>    <property name="connection.password">fengze</property>    <!-- 显示SQL语句 -->    <property name="show_sql">true</property>    <!-- 如果表不存在,直接建立或更新对应的表 -->    <property name="hbm2ddl.auto">update</property>    <!-- 对象映射的配置文件 -->    <mapping resource="com/db/model/Student.hbm.xml" /></session-factory></hibernate-configuration>

4、Student类

package com.db.model;import java.util.Date;public class Student {    private int id;    private String name;    private Date birthday;    private double price;    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;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }}

5、Student类映射XML(在Student类下 Student.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>    <class name="com.db.model.Student">        <id name="id">            <generator class="native" />        </id>        <property name="name" type="string" length="15" />        <property name="birthday" type="date" />        <property name="price" type="double" precision="4" scale="1" />    </class></hibernate-mapping>

6、HibernateSessionFactory.java

package com.db.hibernate;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;/** * Configures and provides access to Hibernate sessions, tied to the * current thread of execution.  Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */public class HibernateSessionFactory {    /**      * Location of hibernate.cfg.xml file.     * Location should be on the classpath as Hibernate uses       * #resourceAsStream style lookup for its configuration file.      * The default classpath location of the hibernate config file is      * in the default package. Use #setConfigFile() to update      * the location of the configuration file for the current session.        */    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();    private static org.hibernate.SessionFactory sessionFactory;        private static Configuration configuration = new Configuration();    private static ServiceRegistry serviceRegistry;     static {        try {            configuration.configure();            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();            sessionFactory = configuration.buildSessionFactory(serviceRegistry);        } catch (Exception e) {            System.err.println("%%%% Error Creating SessionFactory %%%%");            e.printStackTrace();        }    }    private HibernateSessionFactory() {    }        /**     * Returns the ThreadLocal Session instance.  Lazy initialize     * the <code>SessionFactory</code> if needed.     *     *  @return Session     *  @throws HibernateException     */    public static Session getSession() throws HibernateException {        Session session = (Session) threadLocal.get();        if (session == null || !session.isOpen()) {            if (sessionFactory == null) {                rebuildSessionFactory();            }            session = (sessionFactory != null) ? sessionFactory.openSession()                    : null;            threadLocal.set(session);        }        return session;    }    /**     *  Rebuild hibernate session factory     *     */    public static void rebuildSessionFactory() {        try {            configuration.configure();            serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();            sessionFactory = configuration.buildSessionFactory(serviceRegistry);        } catch (Exception e) {            System.err.println("%%%% Error Creating SessionFactory %%%%");            e.printStackTrace();        }    }    /**     *  Close the single hibernate session instance.     *     *  @throws HibernateException     */    public static void closeSession() throws HibernateException {        Session session = (Session) threadLocal.get();        threadLocal.set(null);        if (session != null) {            session.close();        }    }    /**     *  return session factory     *     */    public static org.hibernate.SessionFactory getSessionFactory() {        return sessionFactory;    }    /**     *  return hibernate configuration     *     */    public static Configuration getConfiguration() {        return configuration;    }}

7、index.jsp

<%@page import="java.util.Date"%><%@page import="com.db.model.Student"%><%@page import="org.hibernate.Transaction"%><%@page import="org.hibernate.Session"%><%@page import="com.db.hibernate.HibernateSessionFactory"%><%@ page language="java" pageEncoding="utf-8"%><%Session s = HibernateSessionFactory.getSession();Transaction tx = s.beginTransaction();Student s1 = new Student();s1.setPrice(800);s1.setName("中文");s1.setBirthday(new Date());s.save(s1);tx.commit();%>

 

Hibernate 4.3 配置文件实现