激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - SpringMVC+Mysql實例詳解(附demo)

SpringMVC+Mysql實例詳解(附demo)

2020-07-11 12:13浮云中的毛驢 JAVA教程

本篇文章主要介紹了SpringMVC+Mysql實例詳解(附demo),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。

一直用的是ssh,因為公司要用到SpringMVC,以前也沒接觸過,所以今天來和大家一起學習一下這個框架,以便工作需要。

首先我們先來了解一下什么是模式,模式就是解決某一類問題的方法論,把解決這類問題的解決方法歸總到理論的高度,這就是模式。模式是一種指導,在一個良好的指導下,有助于開發人員完成任務。做出一個優秀的設計方案,能達到事半功倍的效果。而且會得到解決問題的最佳辦法。

mvc模式起源于Smalltalk語言,mvc是Model-View-Controller的簡寫。mvc減弱了業務邏輯接口和數據接口之間的耦合。使用MVC模式的好處有很多,可靠性強,高重用和可適應性,較低的生命周期成本,快速的部署,可維護性強等。里面的細節在這兒就不作過多的講解。

SpringMVC的特點:

1、清晰的角色劃分,spring在Model、View和Controller方面提供了一個非常清晰的劃分,這3個方面真正是各司其職,各負其責。

2、靈活的配置功能,因為Spring的核心是IOC,同樣在實現MVC上,也可以把各種類當做Bean來通過XML進行配置。

3、提供了大量的控制器接口和實現類,這樣開發人員可以使用Spring提供的控制器實現類,也可以自己實現控制器接口。

4、SpringMVC是真正的View層實現無關的,它不會強制開發員使用JSP,我們可以使用其他View技術,比如Velocity,Xskt等。

5、國際化支持,Spring的ApplicationContext提供了對國際化的支持,在這里可以很方便的使用。

6、面向接口編程,其實這不僅是springMVC的特點,整個Spring來看,這個特點都是很明顯的,因為它使開發人員對程序易于進行測試,并且很方便的進行管理。

7、Spring提供了Web應用開發的一整套流程,而不僅僅是MVC,他們之間可以很方便的結合在一起。下面有一個自己做得例子,做完這個例子后真的體會到了SpringMVC的強大。

下面開始配置我們的Springmvc工程:

首先我們配置WEB-INF目錄下的web.xml:

SpringMVC+Mysql實例詳解(附demo)

?
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
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <servlet>
  <!--springmvc的核心是DispatcherServlet,它負責控制整個頁面的請求路徑-->
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化參數>/WEB-INF/classes/相當于src目錄-->
  <init-param>
  <!-- 這個param-name必須是contextConfigLocation-->
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
 </servlet>
 <!--攔截所有以do結尾的請求-->
 <servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
<!--處理從頁面傳遞中文到后臺而出現的中文亂碼問題-->
 <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>
 </filter>
 <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping
 <welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

每次配置好一個文件后建議先啟動服務器看看是否產生異常,不然到后期會很難調試和找到異常所在。

WEB.XML配置好以后我們還需要在SRC目錄下創建一個db-config.properties文件來存放我們的數據源配置信息:

內容如下:

?
1
2
3
4
5
6
7
db.url= jdbc:MySQL:///springmvcdb?useUnicode=true&characterEncoding=utf8
 
db.username=root
 
db.password=root
 
db.dirverClass= com.mysql.jdbc.Driver

db-config.properties配置好以后就開始配置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
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
<?xml version="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 <!-- 定義個缺省的控制適配器 -->
 <bean
  class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
 <!-- 獲取配置文件 -->
 <bean id="config"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:db-config.properties</value>
   </list>
  </property>
 </bean>
 <!-- 獲取數據源 -->
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName">
   <value>${db.dirverClass}</value>
  </property>
  <property name="url">
   <value>${db.url}</value>
  </property>
  <property name="username">
   <value>${db.username}</value>
  </property>
  <property name="password">
   <value>${db.password}</value>
  </property>
 </bean>
 <!--
  URL到處理器的映射列表可以配置多個
  mappings屬性健值為URL程序文件地址,而值為處理器的Bean名字,URL程序文件地址可采用路徑匹配的模式,如:
  com/mvc/t?st.jsp:匹配com/mvc/test.jsp、com/mvc/tast.jsp等 com/mvc /*.jsp
  :匹配所有com/mvc/下帶jsp后綴的URL com/mvc
  /**/test.jsp:匹配所有在com/mvc路徑下或子孫路徑下的test.jsp com/mvc
  /**/*.jsp:匹配所有com/mvc路徑下或子孫路徑下帶.jsp后綴的URL cn/**/web/bla.jsp:匹配
  cn/option/web/dog.jsp cn/option/test/web/dog.jsp cn/web/dog.jsp的請求
 -->
 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <value>
    user.do=userAction
</value>
  </property>
 </bean>
 
 <!--定義視圖通過internalResourceView來表示使用的是Servlet/jsp技術-->
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass">
   <value>org.springframework.web.servlet.view.InternalResourceView
   </value>
  </property>
  <!--jsp存放的目錄-->
  <property name="prefix">
   <value>/jsp/</value>
  </property>
  <!--jsp文件的后綴-->
  <property name="suffix">
   <value>.jsp</value>
  </property>
 </bean>
 <bean id="userDao" class="com.yjde.springmvc.UserDao">
  <property name="dataSource"ref="dataSource"></property>
 </bean>
 <!--定義控制器-->
 <bean id="userAction" class="com.yjde.springmvc.UserController">
  <property name="dao">
   <ref bean="userDao"/>
  </property>
  <property name="commandClass">
   <value>com.yjde.springmvc.UserDao</value>
  </property>
  <property name="viewpage">
   <value>userInfo</value>
  </property>
 </bean>
</beans>

ApplicationContext.xml文件配置好以后我們開始編寫具體的Java類,我們需要一個Dao類,一個controller類和一個PO

我們在MySql中創建了一張USERMBO表,里面有三個字段 USERID,USERNAME,USERAGE

UserDao類:

?
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
package com.yjde.springmvc;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
 
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
 
@SuppressWarnings("all")
public class UserDao extends JdbcDaoSupport {
 private String msg;
 
 public String getMsg() {
  return msg;
 }
 
 public void setMsg(String msg) {
  this.msg = msg;
 }
 
 // 此方法把USEMBO表對應的字段查詢出來依次放入userPO中
 public Collection<UserPO> doquery() {
  String sql = "SELECT T.USERID,T.USERNAME,T.USERAGE FROM USERMBO T";
  return super.getJdbcTemplate().query(sql, new RowMapper() {
 
   public Object mapRow(ResultSet rs, int num) throws SQLException {
    UserPO user = new UserPO();
    user.setUserId(rs.getInt("USERID"));
    user.setUserName(rs.getString("USERNAME"));
    user.setUserAge(rs.getInt("USERAGE"));
    return user;
   }
  });
 }
}

JdbcTemplate是core包的核心類。它替我們完成了資源的創建以及釋放工作,從而簡化了我們對JDBC的使用。它還可以幫助我們避免一些常見的錯誤,比如忘記關閉數據庫連接。具體請參閱API

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
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
152
153
154
155
156
157
158
package com.yjde.springmvc;
 
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
 
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
 
@SuppressWarnings("all")
// SimpleFormController是spring提供的表單控制器,把頁面中Form中的元素名稱設定為和bean中的一樣,當傳入的時候Spring會自動抓取form中和Bean名稱一樣的元素值,把它轉換成一個bean,使得開發人員可以很方便的使用。
public class UserController extends SimpleFormController {
 private String viewpage;
 private UserDao dao;
 
 public String getViewpage() {
  return viewpage;
 }
 
 public void setViewpage(String viewpage) {
  this.viewpage = viewpage;
 }
 
 @Override
 protected ModelAndView onSubmit(HttpServletRequest request,
   HttpServletResponse response, Object command, BindException errors)
   throws Exception {
  UserDao tmp = (UserDao) command;
  Collection<UserPO> list = dao.doquery();
  List<UserPO> users = new ArrayList<UserPO>();
  UserPO user;
  for (UserPO userPO : list) {
   user = new UserPO();
   user.setUserId(userPO.getUserId());
   user.setUserName(userPO.getUserName());
   user.setUserAge(userPO.getUserAge());
   users.add(user);
  }
  Map mp = new HashMap();
  mp.put("list", users);
  return new ModelAndView(getViewpage(), mp);
 }
 
 public void setDao(UserDao dao) {
  this.dao = dao;
 }
 
}
package com.yjde.springmvc;
 
public class UserPO {
 private Integer userId;
 private String userName;
 private Integer userAge;
 
 public Integer getUserId() {
  return userId;
 }
 
 public void setUserId(Integer userId) {
  this.userId = userId;
 }
 
 public String getUserName() {
  return userName;
 }
 
 public void setUserName(String userName) {
  this.userName = userName;
 }
 
 public Integer getUserAge() {
  return userAge;
 }
 
 public void setUserAge(Integer userAge) {
  this.userAge = userAge;
 }
}
</pre><br>
<p align="left"><span style="color:teal">類創建完成以后我們編寫兩個</span><span style="color:teal">JSP</span><span style="color:teal">進行測試:</span></p>
<p align="left"><span style="color:teal">Index.jsp:</span></p>
<p align="left"><span style="color:#bf5f3f"></span></p>
<pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
  
 <title>My JSP 'index.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0"
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 </head>
 
 <body>
 <form action="user.do" method="post">
 請輸入<input name="msg" type="text" />
 <input type="submit" value="提交">
 </form>
 </body>
</html>
</pre><p align="left"><span style="color:teal"> </span></p>
<p align="left"><span style="color:teal">最終運行結果:</span></p>
<p align="left"><span style="color:teal"> <img src="http://my.csdn.net/uploads/201204/24/1335237733_4732.png" alt=""></span></p>
<p align="left"><span style="color:teal">數據庫建表語句:</span></p>
<p align="left"><span style="color:#008080"></span></p>
<pre name="code" class="sql">/*
Navicat MySQL Data Transfer
 
Source Server   : mysql
Source Server Version : 50145
Source Host   : localhost:3306
Source Database  : springmvcdb
 
Target Server Type : MYSQL
Target Server Version : 50145
File Encoding   : 65001
 
Date: 2012-04-24 10:34:25
*/
 
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `usermbo`
-- ----------------------------
DROP TABLE IF EXISTS `usermbo`;
CREATE TABLE `usermbo` (
 `USERID` int(11) NOT NULL DEFAULT '0',
 `USERNAME` varchar(50) DEFAULT NULL,
 `USERAGE` int(11) DEFAULT NULL,
 PRIMARY KEY (`USERID`)
) ENGINE=InnoDB DEFAULTCHARSET=utf8;
 
-- ----------------------------
-- Records of usermbo
-- ----------------------------
INSERT INTO `usermbo` VALUES('1', '李曉紅', '25');
INSERT INTO `usermbo` VALUES('2', '柳夢璃', '27');
INSERT INTO `usermbo` VALUES('3', '韓菱紗', '26');</pre>

實例下載:demo

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/tjcyjd/article/details/7492805

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人高潮免费观看精品 | 成人一区二区三区四区 | 精品一区二区在线观看视频 | 国语自产免费精品视频在 | 国产精品99久久久久久久女警 | 在线a毛片免费视频观看 | 国产免费激情视频 | 91精品久久久久久 | avhd101高清在线迷片麻豆 | 九九热在线视频免费观看 | 精品国产乱码一区二区 | 日韩在线观看视频网站 | 精品国产乱码一区二区三区四区 | 亚洲免费毛片基地 | 日韩欧美电影一区二区三区 | 日本中文一级片 | 国产精品成人亚洲一区二区 | 色播av在线 | www.69色| 国产交换3p国产精品 | 日韩色视频 | av不卡免费观看 | 久久手机在线视频 | 天堂二区 | 日韩中字幕 | 毛片中文字幕 | 香蕉成人在线观看 | 精品国产一区二区三区四区在线 | 国产成人高清在线观看 | 免费一级特黄做受大片 | 久久免费精品 | 成年免费大片黄在线观看岛国 | 免费观看三级毛片 | 国产人妖一区二区 | 中文字幕亚洲欧美 | 羞羞视频免费观看入口 | 久久久www视频 | 亚洲九草 | 双性精h调教灌尿打屁股的文案 | 激情视频日韩 | 成人免费观看av |