IDE:idea;
数据库:MySQL 8.0.11;
框架版本:
Spring:4.3.18,Hibernate:5.2.3.Final,Struts2 2.3.35;
另外使用了maven来做依赖包管理,已上传GitHub:https://github.com/hhive/ssh-demo.git,clone后,连接数据库,部署服务器,即可运行。
完整项目看这https://github.com/hhive/Webtest.git,图书管理系统,每加入一个框架都有一个分支,从hello world到图书管理都有记录。
愿意支持一下的话,可以点击这里下载项目压缩包,跟GitHub上的是一样的。
一、新建项目
1.建个用户表:
create table user(
id int not null auto_increment,
username varchar(255),
password varchar(255),
primary key (id)
)
2.建立maven项目
什么都不用选,确定名字和位置就可以了。
3.点击Project Structure,选择左侧的Modules,点击+建立新Modules,勾选Web application,next,finish
二、引入框架
1.选择刚建的module,点击+,选择Spring,之后对话框下部出现fix按钮,点击,弹出对话框,ok
下完后,左边最下面有个Problems,点击,有个fix,点击后选择第一个。
2.通过pom.xml引入数据库驱动,Struts 2,Hibernate,及相关包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ssh5</groupId>
<artifactId>ssh5</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.3.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.35</version>
</dependency>
</dependencies>
</project>
3.然后跟Spring一样,在Module里添加Hibernate,点fix后选择通过pom引入的Hibernate包
4.选择web点击+找到Struts 2
5.再按下图导包到Module中
6.全部添加
7.Problems里出现提示,记得及时处理,主要是把依赖包加入到artifact里
三、编写配置
1.填写web.xml,引入Struts 2和Spring
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.mycompany.myapp.actions</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
</web-app>
2.选择Module名,右键
3.Spring接管Hibernate
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/webtest?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8"></property>
<property name="username" value="root"/>
<property name="password" value="8888"/>
</bean>
<!-- session factory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<!--<prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/webtest?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8</prop>-->
<!--<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>-->
<prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/webtest?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8</prop>
<prop key="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</prop>
</props>
</bean>
4.点击左边侧栏,点击persistence
5.建立持久类
6.完整项目结构如下,代码太长就不贴了,可以直接去GitHub上看
四、部署运行
1.点击加号
2.点击运行就可以了,效果如图