hibernate学习一:简单应用1配置文件版

0. 前言

以下为使用hibernate编写基于配置文件的简单实例,代码已经上传,导入eclipse中,直接执行XmlTest.java就可以了。代码中还包含了基于注解方式的代码。

1. 环境准备

以下为我测试时使用的环境,仅供参考

JDK:jdk1.7.0_67

hibernate:4.3.7

eclipse:4.4

数据库:oracle11g

2. 下载hibernate相关jar包

官网下载地址为:http://sourceforge.net/projects/hibernate/files/hibernate3/

3.创建JavaBean

package org.xkx.demo.xml.entity;

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

    //以下省略所有get、set方法
}
 

4. 创建XXX.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="org.xkx.demo.xml.entity.UseXmlEntity" table="USE_XML_ENTITY">
        <id name="id" column="CID">
            <generator class="increment" />
        </id>
        <property name="username" column="USERNAME" />
        <property name="password" column="PASSWORD" />
    </class>
</hibernate-mapping>
 

5. 创建主要配置文件hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8" ?>
<!-- 表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。 
	hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在 Hibernate3.1.3软件包中的src\org\hibernate目录中找到此文件 --> 
<!DOCTYPE hibernate-configuration PUBLIC 
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--声明Hibernate配置文件的开始 -->
<hibernate-configuration>
	<!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作 -->
	<session-factory>
		<!--以下所有属性的name可以省略“hibernate.”的前置字符,例如“hibernate.connection.driver_class -> connection.driver_class” -->

		<!--配置数据库的驱动程序,Hibernate在连接数据库时,需要用到数据库的驱动程序 -->
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<!--设置数据库的连接url:jdbc:mysql://localhost/hibernate,其中localhost表示mysql服务器名称,此处为本机,hibernate是数据库名 -->
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<!--连接数据库的用户名 -->
		<property name="hibernate.connection.username">D_C_XKX</property>
		<!--连接数据库的密码 -->
		<property name="hibernate.connection.password">D_C_XKX</property>
		<!--hibernate.dialect 只是Hibernate使用的数据库方言,就是要用Hibernate连接那种类型的数据库服务器。 -->
		<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

		<!--数据库连接池的大小 -->
		<property name="hibernate.connection.pool.size">20</property>
		<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于查错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率 -->
		<property name="hibernate.show_sql">true</property>
		
		<!-- Drop and re-create the database schema on startup:系统启动时是否对数据库的表进行删除和重建操作 -->
		<!-- create:表示启动的时候先drop,再create -->
		<!-- create-drop: 也表示创建,只不过再系统关闭前执行一下drop -->
		<!-- update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新 -->
		<!-- validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新 -->
		<property name="hbm2ddl.auto">create</property>

		<!--指定映射文件的路径,例如“com/user/UserInfo.hbm.xml” -->
		<mapping resource="org/xkx/demo/xml/entity/UseXmlEntity.hbm.xml" />
	</session-factory>
</hibernate-configuration>
 

6. 运行测试程序,部分代码如下

Configuration cfg = new Configuration().configure("org/xkx/demo/xml/hibernate.cfg.xml");
ServiceRegistry  sr = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory buildSessionFactory = cfg.buildSessionFactory(sr);
Session session = buildSessionFactory.openSession();
Transaction tx = session.beginTransaction();

for (int i = 0; i < 2; i++) {
    UseXmlEntity customer = new UseXmlEntity();
    customer.setUsername("用户名" + i);
    customer.setPassword("密码");
    session.save(customer);
}

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

0. 前言

以下为使用hibernate编写基于配置文件的简单实例,代码已经上传,导入eclipse中,直接执行XmlTest.java就可以了。代码中还包含了基于注解方式的代码。

1. 环境准备

以下为我测试时使用的环境,仅供参考

JDK:jdk1.7.0_67

hibernate:4.3.7

eclipse:4.4

数据库:oracle11g

2. 下载hibernate相关jar包

官网下载地址为:http://sourceforge.net/projects/hibernate/files/hibernate3/

3.创建JavaBean

package org.xkx.demo.xml.entity;

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

    //以下省略所有get、set方法
}
 

4. 创建XXX.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="org.xkx.demo.xml.entity.UseXmlEntity" table="USE_XML_ENTITY">
        <id name="id" column="CID">
            <generator class="increment" />
        </id>
        <property name="username" column="USERNAME" />
        <property name="password" column="PASSWORD" />
    </class>
</hibernate-mapping>
 

5. 创建主要配置文件hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8" ?>
<!-- 表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性。 
	hibernate.sourceforge.net/hibernate-configuration-3.0dtd可以在 Hibernate3.1.3软件包中的src\org\hibernate目录中找到此文件 --> 
<!DOCTYPE hibernate-configuration PUBLIC 
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--声明Hibernate配置文件的开始 -->
<hibernate-configuration>
	<!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作 -->
	<session-factory>
		<!--以下所有属性的name可以省略“hibernate.”的前置字符,例如“hibernate.connection.driver_class -> connection.driver_class” -->

		<!--配置数据库的驱动程序,Hibernate在连接数据库时,需要用到数据库的驱动程序 -->
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<!--设置数据库的连接url:jdbc:mysql://localhost/hibernate,其中localhost表示mysql服务器名称,此处为本机,hibernate是数据库名 -->
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<!--连接数据库的用户名 -->
		<property name="hibernate.connection.username">D_C_XKX</property>
		<!--连接数据库的密码 -->
		<property name="hibernate.connection.password">D_C_XKX</property>
		<!--hibernate.dialect 只是Hibernate使用的数据库方言,就是要用Hibernate连接那种类型的数据库服务器。 -->
		<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

		<!--数据库连接池的大小 -->
		<property name="hibernate.connection.pool.size">20</property>
		<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于查错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率 -->
		<property name="hibernate.show_sql">true</property>
		
		<!-- Drop and re-create the database schema on startup:系统启动时是否对数据库的表进行删除和重建操作 -->
		<!-- create:表示启动的时候先drop,再create -->
		<!-- create-drop: 也表示创建,只不过再系统关闭前执行一下drop -->
		<!-- update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新 -->
		<!-- validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新 -->
		<property name="hbm2ddl.auto">create</property>

		<!--指定映射文件的路径,例如“com/user/UserInfo.hbm.xml” -->
		<mapping resource="org/xkx/demo/xml/entity/UseXmlEntity.hbm.xml" />
	</session-factory>
</hibernate-configuration>
 

6. 运行测试程序,部分代码如下

Configuration cfg = new Configuration().configure("org/xkx/demo/xml/hibernate.cfg.xml");
ServiceRegistry  sr = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory buildSessionFactory = cfg.buildSessionFactory(sr);
Session session = buildSessionFactory.openSession();
Transaction tx = session.beginTransaction();

for (int i = 0; i < 2; i++) {
    UseXmlEntity customer = new UseXmlEntity();
    customer.setUsername("用户名" + i);
    customer.setPassword("密码");
    session.save(customer);
}

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

猜你喜欢

转载自xingkexin.iteye.com/blog/2222618