zoukankan      html  css  js  c++  java
  • Hibernate hbm2ddl.auto DDL语句 控制台输出的配置

    在开发中我们需要知道hbm2ddl.auto生成的SQL语句,来判断代码的正确性,现在记录配置的过程。

    Hibernate的DDL语句在控制台的输出配置:

    一、在lib中确保只有下面的三个相关包:1)slf4j-api-1.5.8.jar  2)log4j-1.2.15.jar  3)slf4j-log4j12-1.5.8.jar

    简单说明三个包,第一个包用来提供API接口,第二个包用来实现第一个包的接口的内容,第三个包把第一个包的接口和log44j的接口对应起来,三个缺一不口,注意,如果在你的lib中还有一个名为slf4j-nop-1.5.8.jar包的,删除它,因为第二个包已经实现了。

    PS:三个JAR包之间的关系如下:

    slf4j 是hibernatet提供的一个日志借口,而log4j是具体的日志实现。

    slf4j.nop.jar是slf-api.jar其相应的接口实现,
    把slf的接口对到log4j的实现
    把slf的实现slf4j-nop-1.5.8.jar去掉,添加log4j的实现log4j-1.2.15.jar,再添加一个slf-api和log4j转换器slf4j-log4j12-1.5.8.jar.
    把slf的接口转换成log4j的接口.最后添加一个log4j的配置文件log4j.properties

    二、配置log4j.properties的配置文件,把它放在SRC下面(和hibernate.cfg.xml放一起)

    log4j.properties文件内容如下(可以根据需要修改输出的语句,下面的只输出DDL语句):

    ### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c:%L - %m%n
    
    ### direct messages to file hibernate.log ###
    #log4j.appender.file=org.apache.log4j.FileAppender
    #log4j.appender.file.File=hibernate.log
    #log4j.appender.file.layout=org.apache.log4j.PatternLayout
    #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### set log levels - for more verbose logging change 'info' to 'debug' ###
    
    log4j.rootLogger=warn, stdout
    
    #log4j.logger.org.hibernate=info
    #log4j.logger.org.hibernate=debug
    
    ### log HQL query parser activity
    #log4j.logger.org.hibernate.hql.ast.AST=debug
    
    ### log just the SQL
    #log4j.logger.org.hibernate.SQL=debug
    
    ### log JDBC bind parameters ###
    #log4j.logger.org.hibernate.type=info
    #log4j.logger.org.hibernate.type=debug
    
    ### log schema export/update ###
    log4j.logger.org.hibernate.tool.hbm2ddl=debug
    
    ### log HQL parse trees
    #log4j.logger.org.hibernate.hql=debug
    
    ### log cache activity ###
    #log4j.logger.org.hibernate.cache=debug
    
    ### log transaction activity
    #log4j.logger.org.hibernate.transaction=debug
    
    ### log JDBC resource acquisition
    #log4j.logger.org.hibernate.jdbc=debug
    
    ### enable the following line if you want to track down connection ###
    ### leakages when using DriverManagerConnectionProvider ###
    #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
    

      !注意在你的hibernate.cfg.xml中,下面语句是没有注释掉的。

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>    
    

      


    配置成功,如果调用你的TEST类,会有命令出来,如果没有,关掉你的myEclipse再打开测试。

  • 相关阅读:
    JAVA面试题 启动线程是start()还是run()?为什么?
    Java面试题 equals()与"=="的区别?
    Java面试题之数据库三范式是什么?
    很全的Python 面试题 github
    链家二手房 爬虫
    15个重要Python面试题 测测你适不适合做Python?
    静态链接和动态链接
    Python里的拷贝
    GIL线程全局锁 协程
    Python中的作用域
  • 原文地址:https://www.cnblogs.com/BrowserSnake/p/3641728.html
Copyright © 2011-2022 走看看