Hibernate配置

来源:互联网 发布:爱淘宝红包链接 编辑:程序博客网 时间:2024/06/05 09:12

1.部署

  将Hibernate解压后lib下required的所有jar包导入工程中,其余文件夹的jar包可根据实际需要导入。

 

2.在src下创建hibernate.cfg.xml配置文件

 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.microsoft.sqlserver.jdbc.SQLServerDriver</property>        <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=goodsmessage</property>        <property name="hibernate.connection.username">mike</property>        <property name="hibernate.connection.password">mike</property>        <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>        <mapping resource="conn/User.hbm.xml"/>        <mapping resource="conn/Goods.hbm.xml"/>        <mapping resource="conn/Orders.hbm.xml"/>        <mapping resource="conn/Cart.hbm.xml"/>        <mapping resource="conn/SuperType.hbm.xml"/>        <mapping resource="conn/SubType.hbm.xml"/>    </session-factory></hibernate-configuration>

3.创建数据库表所对应的类,并编写或使用工具生成对应的hbm.xml文件

 User.java 

package conn;public class User {private String username;private String pwd;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}}

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>    <class name="conn.User" table="users">        <id name="username" type="java.lang.String">            <column name="username" />        <generator class="assigned"/>        </id>        <property name="pwd" type="java.lang.String">            <column name="pwd" />        </property>    </class></hibernate-mapping>

<generator class="assigned"/>指定了主键生成方式。

   native:由数据库对id赋值,Hibernate根据数据库适配器的定义,自动采用identity、hilo、sequence的其中一种作为主键生成方式

   hilo:用过hi/lo算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态

   seqhilo:与hilo类似,通过hi/lo算法实现的之间生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle

   increment:主键按数值顺序递增

   identity:采用数据为提供的主键生成机制,如SQL Server、MySQL中的自增主键生成机制

   sequence:采用数据库提供的sequence机制生成主键,如Oracle Sequence

   uuid.hex:由Hibernate基于128位唯一值产生算法生成十六进制数值作为主键,在最大限度上保证产生的id的唯一性

   foreign:使用外部表的字段作为主键

4.应用

//加载配置文件Configurationconfiguration = new Configuration().configure();//向Hibernate注册相关服务@SuppressWarnings("deprecation")ServiceRegistryserviceRegistry= newServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();//创建会话工厂SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);Session session= null;//一个典型的事务应使用try{}catch{}finally{}try{        //打开会话        session = factory.openSession();       //开始事务        session.beginTransaction();        /*           处理事务...        */        //提交事务        session.getTransaction().commit();         }catch(Exception e){        e.printStackTrace();        //事务回滚        session.getTransaction().rollback();}finally{        if(session != null){            if(session.isOpen()){                 //关闭session                 session.close();            }        }}


0 0
原创粉丝点击