hibernate的console显示DDL信息

来源:互联网 发布:nginx不允许目录扫描 编辑:程序博客网 时间:2024/04/29 12:03

控制台不显示建表语句信息,需要手动数据库输入命令查看,个人感觉很麻烦,而且没有console显示的详细。(console可以详细显示主键的参考信息,以此来判断对象映射关系是否正确)

如下两种方法:

1.hibernate.cfg.xml+log4j

    第一步:hibernate.cfg.xml中修改配置信息     <property name="hbm2ddl.auto">create</property>

  • create:hibernate 每次启动删除原来的表,创建新的表,之前的数据不能保存
  • update:自动根据model对象更新表结构,启动hibernate时会自动检查数据库,缺少表,自动创建表;缺少列,增加列,多余的列不会删除。类型不一样,不会修改类型。
  • create-drop:启动hibernate,自动创建表,程序关闭后,自动将创建好的表删除。程序结束后,数据和表都不存在。
  • validate:自动校验。表结构以及表是否存在

    第二步:Hibernate自身使用slf4j实现对日志的记录,加载日志运行需要的lib

sfl4j-api.jar          slf的api

log4j-api.jar          log4j的api

slf4j-log4j.jar        添加适配器

slf4j-nop.jar           实现slf4j nodep,需要去掉

   第三步:创建log4j.properties(可直接从\hibernate-distribution-3.3.2.GA\project\etc下取)复制到src下,再次运行测试即可显示DDL

log4j.logger.org.hibernate.tool.hbm2ddl=debug    此处值为debug


2.SchemaExport

    junit case 中代码如下:

@BeforeClasspublic static void beforeClass() {new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();//此处不是关注点}

new SchemaExport(new AnnotationConfiguration().configure()).create(true,true)  解析:

第一个true:在控制台显示表创建的语句

第二个true:讲创建表的sql导入到数据库中,建表


附录:内容参考url   http://blog.sina.com.cn/s/blog_8020e41101010ukn.html

    

0 0