LZ最近从github上下载了一个struts2 + hibernate写成的J2EE的项目,其中就用到hibernate来操作数据库,那么我又重新研究了下hibernate这个操作数据库的工具。首先hibernate可以通过配置它的***.hbm.xml文件来进行反射配置自动生成相关的数据表。然后就是写几个关于每个表的java类,并且生成相应的***.hbm.xml文件来配置。当然这里要注意的是,还需要一个最关键的java来调用这个***.hbm.xml文件来生成相应的数据表,其中一个关键问题是hibernate的配置文件中有一个需要注意的地方,就是update/create的配置。具体的配置目录是<property name="hibernate.hbm2ddl.auto">update</property>,这个中的配置可以有四个,分别是update/create/create-drop/validate这个文件,其中我们主要用的是update,这个表示每次在更新的时候,都可以不用重新新建表格,然后自动回根据与之前的表格比较来重新更新新的表格。接下来就是具体的调用***.hbm.xml的java代码了。
public class create
{
static Session session;
static Configuration config = null;
static Transaction tx = null;
public static void main(String args[])
{
try
{
config = new Configuration().configure(new File("src/hibernate.cfg.xml"));
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
SchemaUpdate schemeUpdate = new SchemaUpdate(config);
schemeUpdate.execute(true,true);
tx.commit();
}
catch(HibernateException ex)
{
ex.printStackTrace();
}
}
}
这个代码中有一个SchemaUpdate的类,这个类是用来根据配置文件来更新,当然也有一个SchemaExport的类,这个类的有一个方法是schemaExport.create(true,true)的方法,这个方法是每次在run这个java方法时候,就会重新新建表,所以这样就会就会把之前保存进数据库的数据给覆盖了,而不是原来的基础上重新填入。