一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java框架篇:Spring+SpringMVC+hibernate整合開發

Java框架篇:Spring+SpringMVC+hibernate整合開發

2020-08-04 15:02XRog Java教程

本篇文章將會對Spring+SpringMVC+hibernate的整合開發進行介紹。具有很好的參考價值。下面跟著小編一起來看下吧

前言:

最近沒什么事做,搭個框架寫成博客記錄下來,拉通一下之前所學知識.

話不多說,我們直接步入正題。

準備工作:

  1/安裝并配置java運行環境

  2/數據庫的安裝配置(mysql)

  3/安裝并配置服務器(tomcat)

  4/maven

  5/ intellijidea的安裝配置(本人使用的主要軟件是intellijidea,沒用eclipse什么的)

  6/ 使用intellijidea創建一個web app項目。

貌似就這些了吧

導包

不同于以往的導包,由于我們創建的是maven的webapp項目,所以現在只需配置下pomxml這個配置文件,系統會自動到maven的中央倉庫去下載相應的包.

本人的pom.xml配置文件如下(都寫有說明的哈):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<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/maven-v4_0_0.xsd">
 <modelversion>4.0.0</modelversion>
 <groupid>xrog</groupid>
 <artifactid>ssh</artifactid>
 <packaging>war</packaging>
 <version>1.0-snapshot</version>
 <name>ssh maven webapp</name>
 <url>http://maven.apache.org</url>
 <!-- 本人將配置包的版本信息都統一放入此處,方便以后管理-->
 <properties>
 <springversion>4.3.1.release</springversion>
 <hibernateversion>4.3.5.final</hibernateversion>
 <jstlversion>1.2</jstlversion>
 <taglibversion>1.1.2</taglibversion>
 <servletversion>3.0-alpha-1</servletversion>
 <jsonversion>1.9.13</jsonversion>
 <jacksonversion>2.5.0</jacksonversion>
 <mysqlversion>6.0.3</mysqlversion>
 <c3p0version>0.9.1.2</c3p0version>
 <log4jversion>1.2.17</log4jversion>
 <fileuploadversion>1.3.1</fileuploadversion>
 <lombokversion>1.16.10</lombokversion>
 </properties>
 <dependencies>
 <!-- 單元測試 -->
 <dependency>
 <groupid>junit</groupid>
 <artifactid>junit</artifactid>
 <version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 <!-- spring-->
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-beans</artifactid>
 <version>${springversion}</version>
 </dependency>
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-core</artifactid>
 <version>${springversion}</version>
 </dependency>
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-context</artifactid>
 <version>${springversion}</version>
 </dependency>
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-orm</artifactid>
 <version>${springversion}</version>
 </dependency>
 <!-- spring web + spring mvc-->
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-web</artifactid>
 <version>${springversion}</version>
 </dependency>
 <dependency>
 <groupid>org.springframework</groupid>
 <artifactid>spring-webmvc</artifactid>
 <version>${springversion}</version>
 </dependency>
 <!-- hibernate配置-->
 <dependency>
 <groupid>org.hibernate</groupid>
 <artifactid>hibernate-core</artifactid>
 <version>${hibernateversion}</version>
 </dependency>
 <!-- hibernate 緩存, 視情況添加-->
 <dependency>
 <groupid>org.hibernate</groupid>
 <artifactid>hibernate-ehcache</artifactid>
 <version>${hibernateversion}</version>
 </dependency>
 <!-- jsp頁面使用的jstl支持-->
 <dependency>
 <groupid>jstl</groupid>
 <artifactid>jstl</artifactid>
 <version>${jstlversion}</version>
 </dependency>
 <dependency>
 <groupid>taglibs</groupid>
 <artifactid>standard</artifactid>
 <version>${taglibversion}</version>
 </dependency>
 <dependency>
 <groupid>javax.servlet</groupid>
 <artifactid>servlet-api</artifactid>
 <version>${servletversion}</version>
 <scope>provided</scope>
 </dependency>
 <!-- database數據庫連接 mysql包-->
 <dependency>
 <groupid>mysql</groupid>
 <artifactid>mysql-connector-java</artifactid>
 <version>${mysqlversion}</version>
 </dependency>
 <!-- 數據庫連接池-->
 <dependency>
 <groupid>c3p0</groupid>
 <artifactid>c3p0</artifactid>
 <version>${c3p0version}</version>
 </dependency>
 <!-- json數據 使springmvc可以返回json值 ,視情況添加-->
 <dependency>
 <groupid>org.codehaus.jackson</groupid>
 <artifactid>jackson-mapper-asl</artifactid>
 <version>${jsonversion}</version>
 </dependency>
 <!-- jackson可以輕松的將java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉換成java對象-->
 <dependency>
 <groupid>com.fasterxml.jackson.core</groupid>
 <artifactid>jackson-core</artifactid>
 <version>${jacksonversion}</version>
 </dependency>
 <dependency>
 <groupid>com.fasterxml.jackson.core</groupid>
 <artifactid>jackson-annotations</artifactid>
 <version>${jacksonversion}</version>
 </dependency>
 <dependency>
 <groupid>com.fasterxml.jackson.core</groupid>
 <artifactid>jackson-databind</artifactid>
 <version>${jacksonversion}</version>
 </dependency>
 <!-- log4j配置, 視情況添加-->
 <dependency>
 <groupid>log4j</groupid>
 <artifactid>log4j</artifactid>
 <version>${log4jversion}</version>
 </dependency>
 <!--文件 上傳-->
 <dependency>
 <groupid>commons-fileupload</groupid>
 <artifactid>commons-fileupload</artifactid>
 <version>${fileuploadversion}</version>
 </dependency>
 <!-- lombok插件導包-->
 <dependency>
 <groupid>org.projectlombok</groupid>
 <artifactid>lombok</artifactid>
 <version>${lombokversion}</version>
 <scope>provided</scope>
 </dependency>
 </dependencies>
 <build>
 <finalname>ssh</finalname>
 </build>
</project>

ok,配置后運行下maven,就會自動向中央倉庫下載相應的包啦!(這個就不多說了)。

springmvc配置

我現在在這里把我配置后的結構拿出來給你們看下

 Java框架篇:Spring+SpringMVC+hibernate整合開發

我們先配置下springmvc的配置:resources/meta-inf/spring-mvc.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemalocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
 http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
 http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 <!-- 啟動注解驅動的spring mvc功能,注冊請求url和注解pojo類方法的映射-->
 <mvc:annotation-driven />
 <!-- 對模型視圖名稱的解析,在請求時模型視圖名稱添加前后綴 -->
 <context:component-scan base-package="com.ssh" />
 <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver">
 <property name="viewclass" value="org.springframework.web.servlet.view.jstlview" />
 <property name="prefix" value="views/" /> <!-- 前綴 -->
 <property name="suffix" value=".jsp" /> <!-- 后綴 -->
 </bean>
 <!--這里是對靜態資源的映射-->
 <mvc:resources mapping="/js/**" location="/resources/js/" />
 <mvc:resources mapping="/css/**" location="/resources/css/" />
 <mvc:resources mapping="/img/**" location="/resources/img/" />
</beans>

 好了,我們現在修改下web.xml這個配置文件,完善下springmvc的配置, web.xml配置如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">
 <!-- 地址為http://localhost:8080/ 顯示的默認網頁-->
 <welcome-file-list>
 <welcome-file>/index.jsp</welcome-file>
 </welcome-file-list>
 <!-- spring mvc config start-->
 <servlet>
 <servlet-name>spring</servlet-name>
 <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>
 <init-param>
 <param-name>contextconfiglocation</param-name>
 <!-- 此處指向的的是springmvc的配置文件 -->
 <param-value>classpath:meta-inf/spring-mvc.xml</param-value>
 </init-param>
 <!--配置容器在啟動的時候就加載這個servlet并實例化-->
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>spring</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
 <!-- spring mvc config end-->
</web-app>

ok,springmvc配置完成,現在我們進行一下測試吧

在controller層新建一個maincontroller,內容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.ssh.controller;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
/**
 * created by xrog
 * on 2/1/2017.12:36 am
 */
@controller
public class maincontroller {
 
 @requestmapping(value = "test", method = requestmethod.get)
 public string test(){
// 實際返回的是views/test.jsp ,spring-mvc.xml中配置過前后綴
 return "test";
 }
}

test.jsp網頁如下:

?
1
2
3
4
5
6
7
<html>
<body>
<center>
<h2 style="color: #ff261a;">this is my test page!</h2>
</center>
</body>
</html>

重啟tomcat服務器, 然后瀏覽器訪問如下圖所示:

 Java框架篇:Spring+SpringMVC+hibernate整合開發

ps: tomcat默認端口是8080,我更改了端口號,如若你們為更改,正確的訪問地址是localhost:8080/test

ok,成功訪問。

springmvc+spring整合

 這個就十分簡單了, 配置applicationcontext.xml這個spring的配置文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 xsi:schemalocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 <!-- 自動掃描 -->
 <context:component-scan base-package="com.ssh">
 <!-- 掃描時跳過 @controller 注解的java類(控制器) -->
 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.controller"/>
 </context:component-scan>
</beans>

完善web.xml配置文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 version="3.0">
 <!-- 地址為http://localhost:8080/ 顯示的默認網頁-->
 <welcome-file-list>
 <welcome-file>/index.jsp</welcome-file>
 </welcome-file-list>
 <!--加載spring的配置文件到上下文中去-->
 <context-param>
 <param-name>contextconfiglocation</param-name>
 <param-value>
 classpath:meta-inf/applicationcontext.xml
 </param-value>
 </context-param>
 <!-- spring mvc config start-->
 <servlet>
 <servlet-name>spring</servlet-name>
 <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>
 <init-param>
 <param-name>contextconfiglocation</param-name>
 <!-- 此處指向的的是springmvc的配置文件 -->
 <param-value>classpath:meta-inf/spring-mvc.xml</param-value>
 </init-param>
 <!--配置容器在啟動的時候就加載這個servlet并實例化-->
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>spring</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>
 <!-- spring mvc config end-->
 <!-- spring監聽器 -->
 <listener>
 <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
 </listener>
 <!-- 字符集過濾 -->
 <filter>
 <filter-name>encodingfilter</filter-name>
 <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>
 <init-param>
 <param-name>encoding</param-name>
 <param-value>utf-8</param-value>
 </init-param>
 <init-param>
 <param-name>forceencoding</param-name>
 <param-value>true</param-value>
 </init-param>
 </filter>
 <filter-mapping>
 <filter-name>encodingfilter</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>

web.xml配置文件中更改了三處:引入spring配置文件 spring的監聽器  以及 字符集過濾

ok,spring+springmvc配置完成,下面我們開始測試:

在service寫一個testserviceimpl實現testservice接口并實現其test()方法, 代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.ssh.service.impl;
import com.ssh.service.testservice;
import org.springframework.stereotype.service;
/**
 * created by xrog
 * on 2/1/2017.12:58 am
 */
@service
public class testserviceimpl implements testservice {
 public string test() {
 return "test";
 }
}

ps:這里注意寫@service注解

maincontroller控制器更改如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.ssh.controller;
import com.ssh.service.testservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.responsebody;
 
/**
 * created by xrog
 * on 2/1/2017.12:36 am
 */
@controller
public class maincontroller {
 @autowired
 private testservice testservice;
 @requestmapping(value = "test", method = requestmethod.get)
 public string test(){
// 實際返回的是views/test.jsp ,spring-mvc.xml中配置過前后綴
 return "test";
 }
 @requestmapping(value = "springtest", method = requestmethod.get)
 public string springtest(){
 return testservice.test();
 }
}

控制器這里我們運用了spring的依賴注入自動裝配。

在瀏覽器中輸入地址調用springtest方法    

 Java框架篇:Spring+SpringMVC+hibernate整合開發

yes,成功返回,說明我們之前的配置沒問題

spring+springmvc+hibernate整合

好了,現在就缺hibernate這個框架了。。 我先給大家看些我搭建好之后的結構圖吧

 Java框架篇:Spring+SpringMVC+hibernate整合開發

我們想來編寫config.properties這個配置文件,里面存放的是hibernate的一些配置

?
1
2
3
4
5
6
7
8
9
10
#database connection config
jdbc.driver = com.mysql.jdbc.driver
jdbc.url = jdbc:mysql://?????:3306/ssh?useunicode=true&characterencoding=utf-8
jdbc.username = root
jdbc.password = ???
#hibernate config
hibernate.dialect = org.hibernate.dialect.mysqldialect
hibernate.show_sql = true
hibernate.format_sql = true
hibernate.hbm2ddl.auto = update

這里連接數據庫的參數由于我是連接我晚上的數據庫,因此我數據庫地址和密碼打了“???”,你們連接時改成自己本地的就ok了

下面配置hibernate,這里我為了方便,就直接寫進applicationcontext.xml里面。配置后的applicationcontext.xml如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
 http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
 http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 <!--********************************************配置spring***************************************-->
 <!-- 自動掃描 -->
 <context:component-scan base-package="com.ssh">
 <!-- 掃描時跳過 @controller 注解的java類(控制器) -->
 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.controller"/>
 </context:component-scan>
 <!--********************************************配置hibernate********************************************-->
 <!--掃描配置文件(這里指向的是之前配置的那個config.properties)-->
 <context:property-placeholder location="classpath:/config.properties" />
 <!--配置數據源-->
 <bean id="datasource" class="com.mchange.v2.c3p0.combopooleddatasource" destroy-method="close">
 <property name="driverclass" value="${jdbc.driver}" /> <!--數據庫連接驅動-->
 <property name="jdbcurl" value="${jdbc.url}" /> <!--數據庫地址-->
 <property name="user" value="${jdbc.username}" /> <!--用戶名-->
 <property name="password" value="${jdbc.password}" /> <!--密碼-->
 <property name="maxpoolsize" value="40" /> <!--最大連接數-->
 <property name="minpoolsize" value="1" /> <!--最小連接數-->
 <property name="initialpoolsize" value="10" /> <!--初始化連接池內的數據庫連接-->
 <property name="maxidletime" value="20" /> <!--最大空閑時間-->
 </bean>
 <!--配置session工廠-->
 <bean id="sessionfactory" class="org.springframework.orm.hibernate4.localsessionfactorybean">
 <property name="datasource" ref="datasource" />
 <property name="packagestoscan" value="com.ssh.entity" />
 <property name="hibernateproperties">
 <props>
 <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <!--hibernate根據實體自動生成數據庫表-->
 <prop key="hibernate.dialect">${hibernate.dialect}</prop> <!--指定數據庫方言-->
 <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <!--在控制臺顯示執行的數據庫操作語句-->
 <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <!--在控制臺顯示執行的數據哭操作語句(格式)-->
 </props>
 </property>
 </bean>
 <!-- 事物管理器配置 -->
 <bean id="transactionmanager" class="org.springframework.orm.hibernate4.hibernatetransactionmanager">
 <property name="sessionfactory" ref="sessionfactory" />
 </bean>
</beans>

ok,到了這里,配置結束。下面進入測試階段

實體類(entity):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.ssh.entity;
import lombok.data;
import javax.persistence.*;
 
/**
 * created by xrog
 * on 2/2/2017.2:03 pm
 */
@data
@entity
@table(name = "person")
public class person {
 @id
 @generatedvalue
 private long id;
 @column(name = "created")
 private long created = system.currenttimemillis();
 @column(name = "username")
 private string username;
 @column(name = "address")
 private string address;
 @column(name = "phone")
 private string phone;
 @column(name = "remark")
 private string remark;
}

ps:我這里用了一個@data注解,此注解會自動生成get方法,set方法,tostring方法等一系列方法,功能十分強大,不過需要安裝插件以及導包, 有興趣的可以百度下

當然,你也可以手動編寫get/set/構造方法。

數據庫訪問層(repository):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.ssh.repository;
import java.io.serializable;
import java.util.list;
/**
 * created by xrog
 * on 2/2/2017.2:28 pm
 */
public interface domainrepository<t,pk extends serializable>{
 t load(pk id);
 t get(pk id);
 list<t> findall();
 void persist(t entity);
 pk save(t entity);
 void saveorupdate(t entity);
 void delete(pk id);
 void flush();
}
?
1
2
3
4
5
6
7
8
package com.ssh.repository;
import com.ssh.entity.person;
/**
 * created by xrog
 * on 2/2/2017.2:25 pm
 */
public interface personrepository extends domainrepository<person,long> {
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.ssh.repository.impl;
import com.ssh.repository.personrepository;
import com.ssh.entity.person;
import org.hibernate.session;
import org.hibernate.sessionfactory;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.repository;
import java.util.list;
/**
 * created by xrog
 * on 2/2/2017.2:30 pm
 */
@repository
public class personrepositoryimpl implements personrepository {
 @autowired
 private sessionfactory sessionfactory;
 private session getcurrentsession() {
 return this.sessionfactory.opensession();
 }
 public person load(long id) {
 return (person)getcurrentsession().load(person.class,id);
 }
 public person get(long id) {
 return (person)getcurrentsession().get(person.class,id);
 }
 public list<person> findall() {
 return null;
 }
 public void persist(person entity) {
 getcurrentsession().persist(entity);
 }
 public long save(person entity) {
 return (long)getcurrentsession().save(entity);
 }
 public void saveorupdate(person entity) {
 getcurrentsession().saveorupdate(entity);
 }
 public void delete(long id) {
 person person = load(id);
 getcurrentsession().delete(person);
 }
 public void flush() {
 getcurrentsession().flush();
 }
}

ps:我這里顯示寫了一個比較通用的接口,其他所有接口皆繼承此接口, 再編寫實現類

注意:我這里寫的session產生是調用的sessionfactory的opensession()這個方法。之前使用getcurrentsession()一直報錯,后來百度了一下才知道,hibernate3版本可以使用getcurrentsession()來創建session,而hibernate4版本則不行。

服務層(service):

?
1
2
3
4
5
6
7
8
9
package com.ssh.service;
import com.ssh.entity.person;
/**
 * created by xrog
 * on 2/2/2017.2:39 pm
 */
public interface personservice {
 long saveperson();
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.ssh.service.impl;
import com.ssh.entity.person;
import com.ssh.repository.personrepository;
import com.ssh.service.personservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
/**
 * created by xrog
 * on 2/2/2017.2:40 pm
 */
@service
public class personserviceimpl implements personservice {
 @autowired
 private personrepository personrepository;
 public long saveperson() {
 person person = new person();
 person.setusername("xrog");
 person.setphone("18381005946");
 person.setaddress("chendu");
 person.setremark("this is xrog");
 return personrepository.save(person);
 }
}

控制層(controller):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.ssh.controller;
import com.ssh.entity.person;
import com.ssh.service.personservice;
import com.ssh.service.testservice;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.responsebody;
/**
 * created by xrog
 * on 2/1/2017.12:36 am
 */
@controller
public class maincontroller {
 @autowired
 private personservice personservice;
 @requestmapping(value = "saveperson", method = requestmethod.get)
 @responsebody
 public string saveperson(){
 personservice.saveperson();
 return "success!";
 }
}

ok,編寫完畢,我們重啟下服務器然后測試:

Java框架篇:Spring+SpringMVC+hibernate整合開發

我們在看下數據庫,跟我們插入的數據對比下

Java框架篇:Spring+SpringMVC+hibernate整合開發

Java框架篇:Spring+SpringMVC+hibernate整合開發

ok,測試完畢,十分成功

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/xrog/p/6359706.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费看黄色片网站 | 精品国产乱码久久久久久免费流畅 | 亚洲狠狠婷婷综合久久久久网站 | 久久精品国产在热亚洲 | 丝袜美女被艹 | 国产日韩免费视频 | 日韩高清一区二区 | 久久夜色噜噜噜亚洲AV0000 | 91色在线观看国产 | 黑人与欧洲女子性大战 | 日韩不卡一区二区三区 | 天美传媒果冻传媒星空传媒 | 欧美日韩视频在线一区二区 | 亚洲欧美日韩天堂在线观看 | 国产麻豆精品视频 | 性欧美videosex18嫩 | 青春草在线观看精品免费视频 | 大乳奶水bbw | 果冻传媒在线播放观看w | 国产精品视频一区二区三区 | 欧洲男同直粗无套播放视频 | 成人精品mv视频在线观看 | 亚洲国产日韩欧美mv | 国产乱子伦一区二区三区 | 2021精品国夜夜天天拍拍 | 我把校花黑色蕾丝胸罩脱了 | 波多野结衣久久国产精品 | 四虎影视库永久在线地址 | 日韩视频第二页 | 亚洲精品国产精品麻豆99 | 日本一区二区高清免费不卡 | 天堂资源在线www中文 | 天天干夜夜玩 | 日本在线国产 | 日韩天堂视频 | 女子监狱第二季在线观看免费完整版 | 国产资源免费观看 | 99re热这里只有精品视频 | 国产精品久久久久久影视 | 成年极品漫画在线观看 | 亚洲码在线观看 |