在开发中我们需要知道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再打开测试。