1.项目创建类
由于IDEA有着强大的代码提示能力而且开源,开发效率高,所以一般项目都是使用IDEA进行开发。在进行SSH项目创建的时候,千万注意以下事情。
1. 在使用IDEA进行new project时候,最好选择 java Enterprise项目,如图1-1所示。
因为java Enterprise项目会自行导入Tomcat的执行包,若没有这个JAR包,在运行WEB项目的时候(WEB项目会使用到serlet和jsp的交互),经常会提示错误。
2. 在创建的时候,选择项目框架类型时候,我们需要选择(Spring + struct2 + hibernate)三个框架。如图1-3所示。可能有时候没有Spring的框架,不用着急,这个可以在创建好项目之后在进行添加既可。
之后,有一个重点问题。在创建这些框架的时候,千万不能默认点下一步,因为IDEA默认选项是自行在网上下载这些框架的JAR包,如图1-4所示,但是IDEA只是针对单独的框架下载,没有考虑整合需要的JAR包,所以会有很多遗漏,导致学生在运行项目的时候频频出错。所以,我们默认点下一个选项:set up library later。在之后,我们自行从网上下载。
2 JAR类
估计任何框架搭建的JAR包引入是最令人头疼的事情。因为JAR包导致的错误,一般不容易被发现,在控制台输出日志的时候往往让人误认为是代码逻辑的问题。而且,JAR包之间的冲突特别多,而且,可能因为版本不同,在进行XML配置的时候,所用到的相同功能的类所处的路径不同。这里,简单总结我们在搭建SSH项目的时候引入JAR需要注意的几点。
1. jar包冲突:struts2的javassist和Hibernate的javassist有冲突,我们选择最新的版本的(根据你的自身情况选择)。如图2-1所示。我们得删除一个。
2.我们往往需要进行日志记录等等,所以会用到一些日志记录的包。log4jcore,log4j-api包在某些版本的struts2包里有,slf4j-api,slf4j-log4j12需要我们自行下载。注意!!!网上很多都提出的是用SLF4来记录日志,但是仅仅限于hibernate3.x以下,而hibernate4.x是使用的是jboss来进行记录。如图所示,所以使用hibernate4.x以上则不需要引入slf4j系列包,引入反而出错。
3.c3p0jar包,这个包是hibernate进行数据库连接的时候所需要用的,但是它会和某些高版本的hibernate包冲突,这个时候我们要根据Tomcat控制台打印的日志进行相应的修改,这里十分关键,直接会影响到hibernate是否正确使用,之前本人在配置的时候,这里卡了许久,因为数据库一直无法调用起来。
4.Spring整合struts2需要导入Spring-web和struts2-spring-plugin jar包,不要丢掉。这里就是之前提到的IDEA不会自行下载的包。
5.数据库jar驱动jar包,根据自身使用的数据库进行选择。这个必须得有。
6.hibernated的JPA包,如图所示。这个包一般不在lib下的requried里面,它在一个单独的jpa文件夹下。所以,很容易忽略掉。
3. 配置类
1. 如图3-1所示, 之前也提到过,在配置web.xml时候,因JAR包版本的原因,很容易在这里出错。所以,我们一般根据自己的版本,自行在左侧(如图3-2所示)寻找包的位路径,在这里粘贴既可)
2. 在对实体类进行映射文件配置的时候,经常出现列名报红的现状。
这个一般是因为类和数据库没有关联,所以也无法读取数据库。最好的解决办法是,在view-- tools window中进行数据库配置后,只要保证数据库是打开状态,会连接成功的。接下来,在工具栏中的view->Tool Windows->Persistence,将它添加上去。就可以在界面找到它,如下图所示:
接着我们在它所出现的项目上右键,可以发现一个Assign Data Source的选项,点开它,会出现如下图的界面,只要在Data Source这一栏中,选中所要应对的数据库就可以解决问题。