Hibernate Java项目的简单创建和部署。先要在项目中使用hibernate,要创建hibernate的配置文件hibernate.properties,此文件可以在hibernate
的压缩包的解压目录中的project/etc(具体目录谁知道以后还会不会变)目录中找到它的模板,从里面把相应数据库的配置考过来即可。
第二步创建一个持久化类,就是普通的javabean即可,但是一定要有个id属性,对应数据库中表的主键。
第三步再创建一个对像关系映射文件,这个用eclipse的话,可以建起来方便点,就在preferences的xml中xml
catalog中添加上对像关系映射文件的dtd文件。关系映射文件的dtd文件也可以在\project\core\src\main
\resources\org\hibernate目录中找到,在eclipse中添加key我设的是-//Hibernate/Hibernate Mapping
DTD
3.0//EN,location是http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd,这两个值去上面提到的那个dtd文件中的<!DOCTYPE>中来找了。然后在eclipse中就可以在src源文件节点下添加一个普通的
xml文件,然后选择从dtd文件创建,再找到刚才设置的dtd,这样在eclipse中就可以对此文件的创建有一些智能提示了。
最后再写程序调用hibernate的api来访问数据库。程序大概过程是
import
org.hibernate.SessionFactory;
import
org.hibernate.cfg.Configuration;
Configuration config = new
Configuration();
config.addClass(Student.class);
//一个数据库对应创建一个SessionFactory,它是个重量级对像,也是线程安全的,当它创建以后,创建它的Configuration对像就和它没有关系了,可以对Configuration进行修改
SessionFactory
sf = config.buildSessionFactory();
以上过程在初始化的时候执行。
然后在程序中如下调用数据库:
import
org.hibernate.Session;
import org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
SessionFactory
sf;
//Session是轻量级对像,也不是线程安全的
Session s =
this.sf.openSession();
Transaction tx = null;
Student
stu;
try
{
tx =
s.beginTransaction();
s.save(stu);
//在事务内修改对像,就会修改数据库相应的值
,hibernate使用的是脏检查机制
stu.setName(“wo gai ming
le”);
tx.commit();
}
catch(Exception ex)
{
if(tx !=
null)
tx.rollback();
throw
ex;
}
finally
{
s.close();
}
在程序最后结束关闭的时候,要执行SessionFactory
sf.close();
接下来主要说一下部署,先以一个eclipse下创建的web项目为例,要让一个使用hibernate的项目运行起来,需要把上面创建的
hibernate.properties还有hibernate压缩包中etc目录中带的log4j.properties文件都复制到项目的src
下,然后将创建的持久类的xxx.hbm.xml对像关系映射文件也复制到src目录下相应持久化类的源文件所在包中(目录中),最后将相应数据库的
jdbc的jar包,还有hibernate解压根目录中的hibernate3.jar以及lib目录中required和jpa目录中的jar包(其他目录中的jar包根据需要了)也都复制到项目的/WEB-INF的lib目录中,然后再去http://www.slf4j.org下载它的zip包,然后将其中的slf4j-nop-1.6.1.jar也复制到lib目录中。然后就可以运行hibernate项目了。
如果只是创建一个普通的java程序,如控制台的,以jcreator
4.5创建的项目为例,一个是需要把含有那些jar包的目录给添加到项目中来,然后将那两个properties文件复制到编译生成的class目录中,然后再将相应的关系对像映射文