刚学完三大框架,想自己跟着网上的视频做框架实战项目,但是网上的视频用的hibernate版本大多是3,在环境搭建的过程就遇到很多问题。在此记录一下问题和解决方法,自己总结的同时也希望能帮到刚学的小伙伴。
工具:EclipseOxygen.1a Release (4.7.1a) Java1.8
Struts2+Spring4+Hibernate5
问题一:一次过把所有jar包导入,很难确定是哪个框架出现了问题。
解决方法:从Struts→Spring→Hibernate的顺序逐个导入。Struts2的问题是比较少的。Hibernate的问题较多。
问题二:Struts+Spring整合Hibernate(这个部分出现的问题较多)
Q1=====================================
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
原因:和数据库相关的配置信息有误
解决办法:检查applicationContext.xml中的配置信息
我因为org.hibernate.dialect.MySQL5InnoDBDialect中漏写了结尾的t导致出错
Q2=====================================
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
同时感谢这位朋友的帖子(更加详细的解释了这个导致错误的原因)http://www.cnblogs.com/woniu57/archive/2012/09/03/2669481.html
Q3=====================================
原因:jdbc.properties文件中的属性名和applicationContext.xml中配置c3p0连接池的属性名不一致
解决办法:检查属性名是否对应
Q4=====================================
Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.ComboPooledDataSource
原因:缺少c3p0 jar包
解决办法:将此路径下的jar包复制到WEB-INF/lib下 hibernate-release-5.2.12.Final\lib\optional\c3p0
Q5=====================================
原因:spring框架未能启动(不确定,望指教)
解决办法:WEB-INF/lib下的spring-web-4.3.12.RELEASE.jar Add to Build Path
关于jar包直接复制到lib和add to build path的区别也可以参考这位朋友的帖子 http://blog.csdn.net/dazengq/article/details/51487703PS:建议mysql-connector-java-5.1.44-bin 这个驱动jar包也add to built path
Q6=====================================
关于hibernate中数据库方言的问题
MySQL5.x版本用的是org.hibernate.dialect.MySQL5Dialect,但在之前学习hibernate的一对多关系时,发现使用这个方言时,eclipse控制台输出的SQL语句是添加了外键的,但在navicat中查看ddl语句是没有外键的,表结构中也没有外键。我个人也没弄清其中原因,望大神指教。
而使用org.hibernate.dialect.MySQL5InnoDBDialect则可以顺利添加外键。
附上整合好的jar包 http://download.csdn.net/download/yuenbin128/10159148
以上是个人初学SSH框架搭建时遇到的问题和解决方法,如有错误或者有更好的方法,望指教!