在开发中我们需要知道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包的,删除它,因为第二个包已经实现了。
二、配置log4j.properties的配置文件,把它放在SRC下面(和hibernate.cfg.xml放一起)
log4j.properties文件内容如下(可以根据需要修改输出的语句,下面的只输出DDL语句):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
### 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中,下面语句是没有注释掉的。
1
2
|
<!-- Drop and re-create the database schema on
startup -->
<property name= "hbm2ddl.auto" >create</property>
|
配置成功,如果调用你的TEST类,会有命令出来,如果没有,关掉你的myEclipse再打开测试。