1.hibernate.cfg.xml
代码如下 | 复制代码 |
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <property name="hibernate.c3p0.max_statements">100</property> |
2.持久化类 pen.java
代码如下 | 复制代码 |
package org.Rudiment.hibernate; public class pen { |
3. 持久化类的映射文件 pen.cfg.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"> <!-- Generated 2013-9-8 23:34:47 by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <class name="org.Rudiment.hibernate.pen" table="PEN"> <id name="id" type="int"> <column name="ID" /> <generator class="native" /> </id> <property name="price" type="int"> <column name="PRICE" /> </property> <property name="type" type="java.lang.String"> <column name="TYPE" /> </property> </class> <!-- 这个database-object 要放在class下面,否则会报错 --> <database-object> <!-- create中的sql会在drop之后执行 --> <create>create table test(t_name varchar(255));</create> <!-- 下面的内容会在create之前就执行了 --> <drop>drop table test</drop> <!-- 下面这两个句指明这个数据库对象对那些数据库生效 --> <dialect-scope name="org.hibernate.dialect.MySQLDialect" /> <dialect-scope name="org.hibernate.dialect.MySQLInnoDBDialect" /> </database-object> </hibernate-mapping> |
4.操作持久化类的处理类 penHandler.java
代码如下 | 复制代码 |
package org.Rudiment.hibernate; import org.hibernate.Session; public class penHandler { |
注:
通过上面可以看出,penHandler中的main只是执行到了conf.buildSessionFactory(sr);这个时候我们在配置文件中的这部分配置就生效了。
代码如下 | 复制代码 |
<database-object> <!-- create中的sql会在drop之后执行 --> <create>create table test(t_name varchar(255));</create> <!-- 下面的内容会在create之前就执行了 --> <drop>drop table test</drop> <!-- 下面这两个句指明这个数据库对象对那些数据库生效 --> <dialect-scope name="org.hibernate.dialect.MySQLDialect" /> <dialect-scope name="org.hibernate.dialect.MySQLInnoDBDialect" /> </database-object> |
查看数据库的时候,看到表已经成功建立起来了。
代码如下 | 复制代码 |
mysql> desc test; +--------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+-------+ | t_name | varchar(255) | YES | | NULL | | +--------+--------------+------+-----+---------+-------+ 1 row in set (0.02 sec) |
最后还有一点要注明的就是代码要执行到conf.buildSessionFactory(sr);如果条代码从main中给删除掉了,那么hibernate将不会执行数据库对象,即如果要让数据库对象生效,至少需要执行到conf.buildSessionFactory(sr);这一条代码。