1. 程式人生 > >SpringMVC+Spring+HIbernate 簡單增刪改查例項

SpringMVC+Spring+HIbernate 簡單增刪改查例項


這裡寫圖片描述


SpringMVC+Spring+HIbernate 簡單增刪改查例項

HIbernate配置mysql資料庫的方式 和 Structs+spring+HIbernate 是一樣的。 
可以理解為SpringMVC 把 Structs2 替代了,SpringMVC 中的 Controller 對應 Structs2 中的 Action,相對來說更加的簡單,畢竟少了一個配置檔案struts.xml,這個例項中連xx.hbm.xml都用註解的方式代替了 
對應頁面回顯資料,Struts2中,用值棧、session、Request等,SpringMVC中也可以使用Servlet API,session等都可以用,可以用 Map、Model等來回顯資料 
頁面上可以使用JSTL,Struts的 s標籤就沒了

<s:iterator value="list" var="d">
    
  • 1
<c:forEach var="p" items="${requestScope.personlist }">
    
  • 1

刪除和修改都是url中傳入id的引數

http://localhost:8080/../doupdate?id=402881e958de29980158de2aa5440000
    
  • 1

專案結構

這裡寫圖片描述 
這裡寫圖片描述

除了spring和HIbernate基本包還需要加 jstl標籤庫的jar包 
jstl.jar standard.jar

HIbernate c3p0 jar包, 
c3p0-0.9.2.1.jar hibernate-c3p0-4.3.11.Final.jar mchange-commons-java-0.2.3.4.jar 3個 
對應在 hibernate-release-4.3.11.Final\lib\optional\c3p0目錄下

mysql資料庫連線的jar包 
mysql-connector-java-5.1.40-bin.jar

jar包在原始碼裡有

沒有使用各層的介面

這裡寫圖片描述

版本資訊

  1. Eclipse版本 Neon .1 a Release ( 4.6 .1)
  2. Spring 4.3 .4
  3. Hibernate 4.3 .11
  4. Tomcat 7.0
  5. JDK 1.8
  6. 資料庫 MySQL5 .7 .12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

原始碼下載:http://download.csdn.net/detail/peng_hong_fu/9706477

部分原始碼

業務層和Dao層沒有使用介面(解耦等)

web.xml

web.xml


    
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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" id="WebApp_ID" version="3.0">
  3. <display-name>SpringMVC_Spring_Hibernate </display-name>
  4. <!-- 防止中文引數亂碼 放在前面 -->
  5. <filter>
  6. <filter-name>SetCharacterEncoding </filter-name>
  7. <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class>
  8. <init-param>
  9. <param-name>encoding </param-name>
  10. <param-value>UTF-8 </param-value>
  11. </init-param>
  12. <init-param>
  13. <param-name>forceEncoding </param-name>
  14. <param-value>true </param-value>
  15. <!-- 強制進行轉碼 -->
  16. </init-param>
  17. </filter>
  18. <filter-mapping>
  19. <filter-name>SetCharacterEncoding </filter-name>
  20. <url-pattern>/* </url-pattern>
  21. </filter-mapping>
  22. <!-- spring 配置Listener-->
  23. <!-- needed for ContextLoaderListener -->
  24. <context-param>
  25. <param-name>contextConfigLocation </param-name>
  26. <param-value>classpath:/resources/beans.xml </param-value>
  27. </context-param>
  28. <!-- Bootstraps the root web application context before servlet initialization -->
  29. <listener>
  30. <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
  31. </listener>
  32. <!-- springmvc配置dispatcherServlet -->
  33. <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
  34. <servlet>
  35. <servlet-name>springDispatcherServlet </servlet-name>
  36. <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class>
  37. <init-param>
  38. <param-name>contextConfigLocation </param-name>
  39. <param-value>classpath:/resources/springmvc.xml </param-value>
  40. </init-param>
  41. <load-on-startup>1 </load-on-startup>
  42. </servlet>
  43. <!-- Map all requests to the DispatcherServlet for handling -->
  44. <servlet-mapping>
  45. <servlet-name>springDispatcherServlet </servlet-name>
  46. <url-pattern>/ </url-pattern>
  47. </servlet-mapping>
  48. </web-app>
  • 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

實體類

Person.java


    
  1. package com.jxust.svsh.entity;
  2. import javax.persistence.Column;
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.Id;
  6. import javax.persistence.Table;
  7. import org.hibernate.annotations.GenericGenerator;
  8. /**
  9. * 個人資訊實體類
  10. * 註解方式配置對應資料表
  11. * @author Peng
  12. * @Date 2016年12月8日下午2:54:52
  13. */
  14. @Entity
  15. @Table(name = "person")
  16. public class Person {
  17. private String id; // 主鍵id
  18. private String name; // 姓名
  19. private String idCard; // 身份證號
  20. private String phone; // 手機號
  21. private String address; // 地址
  22. public Person () {
  23. super();
  24. }
  25. public Person (String name, String idCard, String phone, String address) {
  26. super();
  27. this.name = name;
  28. this.idCard = idCard;
  29. this.phone = phone;
  30. this.address = address;
  31. }
  32. @Id
  33. @Column(name = "id", nullable = false, unique = true)
  34. @GenericGenerator(name = "generator", strategy = "uuid")
  35. @GeneratedValue(generator = "generator")
  36. public String getId () {
  37. return id;
  38. }
  39. public void setId (String id) {
  40. this.id = id;
  41. }
  42. @Column(name = "name", nullable = false, length = 32)
  43. public String getName () {
  44. return name;
  45. }
  46. public void setName (String name) {
  47. this.name = name;
  48. }
  49. @Column(name = "idCard", nullable = false, length = 32)
  50. public String getIdCard () {
  51. return idCard;
  52. }
  53. public void setIdCard (String idCard) {
  54. this.idCard = idCard;
  55. }
  56. @Column(name = "phone", nullable = false, length = 32)
  57. public String getPhone () {
  58. return phone;
  59. }
  60. public void setPhone (String phone) {
  61. this.phone = phone;
  62. }
  63. @Column(name = "address", nullable = false, length = 32)
  64. public String getAddress () {