Hibernate自动建表及一些相关技术总结

来源:互联网 发布:淘宝上卖刀具犯法吗 编辑:程序博客网 时间:2024/05/18 02:26

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方法时候,就会重新新建表,所以这样就会就会把之前保存进数据库的数据给覆盖了,而不是原来的基础上重新填入。

0 0