运行第一个Hibernate注意事项
环境:Hibernate-destribution-3.6.0.Final 即 Hibernate3.6
+MyEclipse8.5
+SQLServer2005
前人种树,后人乘凉:
第一个Hibernate的例子:http://www.360doc.com/content/07/1211/18/52282_886832.shtml
下面说说我碰到的问题,也许是版本上的差异,或者一些恶心的配置差异:
日期:2010-12-14
- 放置hibernate.cfg.xml:这个必须放在src目录,大家说的classpath就是这里了
- 必要的jar:除了Hibernate包解压完(如果没有,你最好下个完整版本的),拷贝出里面的lib/required的所有jar文件,还有一些需要的东西:比如log4j,这个东西需要另外下,还有slf4j-log4j12-1.6.1.jar(提示找不到的那个)也需要另外下;
- SQLServer2005配置,这个问题困扰了无数的编程人员,我想原因太多了,比如启用用户,设置密码,设置权限,开启tcp/ip(经常是这个),重启服务,配置端口等等;我遇到的问题是这样的:我安装了两个sqlserver的实例,于是后来的sqlexpress的端口就不是1433了,为了方便,我把前一个数据库实例的端口设置成别的,express的端口设置为1433;(这些设置都在sqlserver2005的管理工具和SqlServer manager 中可以搞定)
- log4j的配置没有搞定
附上一些配置文件:
log4j.properties
log4j.rootLogger=INFO,stdout,A1
#控制台打印
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#输出的信息
#如果使用pattern布局就要指定的打印,通常指把电脑或其他电子设备中的文字或图片等可见数据,通过打印机等输出在纸张等记录物上。 更多..打印 信息的具体格式ConversionPattern,打印参数如下:
# %m 输出代码中指定的消息
# %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
# %r 输出自应用启动到输出该log信息耗费的毫秒数
# %c 输出所属的类目,通常就是所在类的全名
# %t 输出产生该日志事件的线程名
# %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
# %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
# %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#日志文件 每日
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=F:/mylog.txt
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#%时间 [%线程] %log级别 %完整类名 - %消息 %换行
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD
3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">
jdbc:sqlserver://RORGER-PC/SQLEXPRESS:1433;DatabaseName=crm
</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="connection.username">rorger</property>
<property name="connection.password">123</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/rorger/Auser.hbm.xml" />
</session-factory>
</hibernate-configuration>
一个表的范例:
Auer.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="com.rorger.Auser" table="auser">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native" />
</id>
<property name="name" column="name" type="java.lang.String"/>
<property name="age" column="age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
祝success。