手把手教你搭建SSH框架(Eclipse版)
阿新 • • 發佈:2021-01-12
原文來自[公眾號【C you again】](https://mp.weixin.qq.com/s/1de6FGkmqTWA4UZJiEFsaA),若需下載完整原始碼,請在公眾號後臺回覆“ssh”。
本期文章詳細講解了SSH(Spring+SpringMVC+Hibernate)框架的搭建過程,語言簡潔、通俗易懂,適合初級程式設計師閱讀。在開始教程之前,先來了解SSH框架的基本概念:
在文章[《手把手教你搭建SSM框架(Eclipse版)》](https://mp.weixin.qq.com/s/iH7I91fWtm8kMKuejiddyA)中已經對Spring、SpringMVC做了詳細介紹,這裡只對Hibernate做介紹。
Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將Pojo與資料庫表建立對映關係,是一個全自動的ORM框架。
Hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用面向物件程式設計思想來操縱資料庫。
Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用。
看完以上概念,我們就正式開始今天的教程了。製作不易,多多轉發分享哦!!
## 1、前期準備
- 安裝配置JDK1.8
- 安裝配置Tomcat9.0
- 安裝配置MySql5.7
- 開發工具Eclipse
## 2、新建動態Web專案
在開發工具中:
File-->New-->Project-->Dynamic Web Project
輸入專案名稱(本教程專案名:sshDemo),最後點選Finish即可。
![](https://img-blog.csdnimg.cn/20201104113557596.png)
## 3、補充、完善專案目錄
為使得專案符合MVC開發規範,我們需要在src下新建controller、service、entity幾個包和resources目錄。完成後目錄結構如下圖:
![](https://img-blog.csdnimg.cn/20201104161323704.png)
## 4、匯入所需Jar包
本期教程用最原始的方法手動匯入專案所需Jar包。手動匯入會存在Jar包版本衝突等很多問題,建議直接下載使用。在公眾號【C you again】後臺回覆“Jar”自行下載,若不能正常下載,請在後臺私信。
![](https://img-blog.csdnimg.cn/202011041616457.png)
將下載好的Jar包複製到WebContent-->WEB-INF-->lib資料夾下,然後選中所有Jar包-->滑鼠右擊-->Build Path-->Add to Build Path。
## 5、新增相關配置檔案
完成以上基本步驟後,接下來就是SSH整合的關鍵步驟了。
首先在專案的WebContent-->WEB-INF下的web.xml檔案中加入以下配置,如果沒有web.xml檔案就需要自己新建一個。
```xml
```
完成web.xml的配置後,在前面建好的resources資料夾下新建application.xml,具體解釋看檔案內部。
```xml
```
接著在resources資料夾下新建springmvc.xml,程式碼如下:
```xml
```
同上面的步驟,繼續在resources資料夾下新建hibernate.cfg.xml、dbconfig.properties、log4j.properties三個檔案。
**hibernate.cfg.xml檔案:**
```xml
```
**dbconfig.properties檔案:**
```xml
#database connection config
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false
jdbc.username = root
jdbc.password = root
#hibernate config
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true
hibernate.format_sql = true
hibernate.hbm2ddl.auto = update
```
**log4j.properties檔案:**
```xml
# Set root logger level to error
log4j.rootLogger=INFO, Console, File
###### Console appender definition #######
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{3}] %m%n
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=spring.log
log4j.appender.File.Append=false
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
```
至此,所有的整合步驟已經完成了,最後的目錄結構如下所示,接下來就是設計測試用例了。
![](https://img-blog.csdnimg.cn/20201104163118272.png)
## 6、測試專案能否正常執行
完成上述步驟後,接下來就測試下整合是否成功吧!
在src-->com.cya.entity下建立Person.java實體類
```java
package com.cya.entity;
public class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
在resources下新建mapping目錄,用來儲存所有的資料庫對映檔案。mapping目錄下建立對映檔案:Person.hbm.xml,具體配置如下:
```xml
```
修改hibernate.cfg.xml,新增配置:
```xml
```
修改完成後啟動web專案,待專案啟動成功以後重新整理test資料庫,我們發現已經建立好了名為t_person的資料表。
![](https://img-blog.csdnimg.cn/20201104165338389.png)
在WebContent資料夾下新建test.jsp。
```html
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>