SpringMVC+jdbcTemplate搭建简单开发框架

最近一年一直在做IOS开发,好久没碰java,有个朋友要帮忙开发一个小网站,所以根据需求spring的MVC加上jdbcTemplate不乏是一个很不错的选择,简单!

简单介绍下所用到的lib包:

spring-framework-3.0.5.RELEASE和一些依赖包,外加数据库连接的jar包也是最新的MySQL-connector-java-5.1.22-bin.jar

数据库用的是:

mariadb-5.5.25-win32.msi——算是更新的比较快,以前叫mysql,现在咋改这个名字了,不过安装过后有了图形界面,不错!

下面介绍一下项目的搭建过程,简单介绍主要内容,仅供参考:

(1)我用的是myeclipse6.5(比较怀旧,这个版本还是比较好用的,没有太多需求的情况下而且不懂优化myeclipse的情况下不建议使用一些新版本,吃内存太猛),新建一个Web Project,使用JAVA EE5.0,第一步引入上面的lib包。

(2)修改web.xml,如下:

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.       
  7.     <welcome-file-list>  
  8.         <welcome-file>index.jsp</welcome-file>  
  9.     </welcome-file-list>  
  10.       
  11.     <servlet>  
  12.         <servlet-name>spring</servlet-name>  
  13.         <servlet-class>  
  14.             org.springframework.web.servlet.DispatcherServlet  
  15.         </servlet-class>  
  16.         <load-on-startup>1</load-on-startup>  
  17.     </servlet>  
  18.       
  19.     <servlet-mapping>  
  20.         <servlet-name>spring</servlet-name>  
  21.         <url-pattern>*.qq</url-pattern>  
  22.     </servlet-mapping>  
  23.       
  24. </web-app>  
(3) 在WEB-INF目录下新建spring-servlet.xml

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:p="http://www.springframework.org/schema/p"  
  5.     xmlns:context="http://www.springframework.org/schema/context"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.            http://www.springframework.org/schema/context     
  9.            http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
  10.   
  11.     <!-- 自动扫描bean,把作了注解的类转换为bean -->  
  12.     <context:component-scan base-package="com.test.controller" />  
  13.   
  14.     <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->  
  15.     <bean  
  16.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  
  17.   
  18.     <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->  
  19.     <bean  
  20.         class="org.springframework.web.servlet.view.InternalResourceViewResolver"  
  21.         p:prefix="/WEB-INF/view/" p:suffix=".jsp" />  
  22.   
  23.     <!-- apache.dbcp连接池的配置 -->  
  24.     <bean id="dataSource"  
  25.         class="org.apache.commons.dbcp.BasicDataSource"  
  26.         destroy-method="close">  
  27.         <property name="driverClassName"  
  28.             value="com.mysql.jdbc.Driver">  
  29.         </property>  
  30.         <property name="url" value="jdbc:mysql://localhost:3306/test"></property>  
  31.         <property name="username" value="root"></property>  
  32.         <property name="password" value="test"></property>  
  33.         <property name="maxActive" value="100"></property>  
  34.         <property name="maxIdle" value="30"></property>  
  35.         <property name="maxWait" value="500"></property>  
  36.         <property name="defaultAutoCommit" value="true"></property>  
  37.     </bean>  
  38.       
  39.     <!-- jdbc注入 -->  
  40.     <bean id="jdbcTemplate"  
  41.         class="org.springframework.jdbc.core.JdbcTemplate">  
  42.         <property name="dataSource">  
  43.             <ref bean="dataSource" />  
  44.         </property>  
  45.     </bean>  
  46.       
  47.     <!-- dao注入 -->  
  48.     <bean id="personService" class="com.test.service.imp.PersonServiceImp">  
  49.         <property name="jdbcTemplate" ref="jdbcTemplate"></property>  
  50.     </bean>  
  51.       
  52. </beans>  

(4)建jsp页面,我建议最好是建立在WEB-INF下,新建/WEB-INF/view/user/MyJsp.jsp文件,也就是MVC中的V。

[html]  view plain  copy
 print ?
  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
  2. <%@page import="com.test.model.Person"%>  
  3. <%  
  4.     String path = request.getContextPath();  
  5.     String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  6.     Person person = (Person)request.getAttribute("person");  
  7. %>  
  8.   
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  10. <html>  
  11.   <head>  
  12.     <base href="<%=basePath%>">  
  13.       
  14.     <title>My JSP 'MyJsp.jsp' starting page</title>  
  15.       
  16.     <meta http-equiv="pragma" content="no-cache">  
  17.     <meta http-equiv="cache-control" content="no-cache">  
  18.     <meta http-equiv="expires" content="0">      
  19.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  20.     <meta http-equiv="description" content="This is my page">  
  21.       
  22.   </head>  
  23.     
  24.   <body>  
  25.   <%=person.getId() %>  
  26.   <br>  
  27.   <%=person.getName() %>  
  28.   </body>  
  29. </html>  

(5)现在开始建java文件,MVC中的C和M,外加处理业务的Service层

Model层的Person

[java]  view plain  copy
 print ?
  1. package com.test.model;  
  2.   
  3. public class Person {  
  4.       
  5.     private String name;  
  6.       
  7.     private int id;  
  8.       
  9.     public String getName() {  
  10.         return name;  
  11.     }  
  12.     public void setName(String name) {  
  13.         this.name = name;  
  14.     }  
  15.     public int getId() {  
  16.         return id;  
  17.     }  
  18.     public void setId(int id) {  
  19.         this.id = id;  
  20.     }  
  21.   
  22. }  

Service抽象层,对于简单的项目就没必要再加DAO层了,影响开发效率,而且起不了啥作用。

[java]  view plain  copy
 print ?
  1. package com.test.service;  
  2.   
  3. import com.test.model.Person;  
  4.   
  5. public interface PersonService {  
  6.     void save(Person person);    
  7.     void del(Person person);    
  8.     void update(Person person);    
  9.     void searchAll();  
  10. }  

Serview的Implate实现层,此处将jdbcTemplate在xml中注入进来,数据库的操作全放在这里面实现。

[java]  view plain  copy
 print ?
  1. package com.test.service.imp;  
  2.   
  3. import org.springframework.jdbc.core.JdbcTemplate;  
  4. import com.test.model.Person;  
  5. import com.test.service.PersonService;  
  6.   
  7. public class PersonServiceImp implements PersonService{  
  8.   
  9.     private JdbcTemplate jdbcTemplate;    
  10.       
  11.     public void del(Person person) {  
  12.         // TODO Auto-generated method stub  
  13.           
  14.     }  
  15.       
  16.     public void save(Person person) {  
  17.           
  18.         // TODO Auto-generated method stub  
  19.           
  20.         jdbcTemplate.update("insert into person values(?,?)",new Object[]{person.getId(),person.getName()});  
  21.           
  22.     }  
  23.   
  24.     public void searchAll() {  
  25.         // TODO Auto-generated method stub  
  26.           
  27.     }  
  28.   
  29.     public void update(Person person) {  
  30.         // TODO Auto-generated method stub  
  31.           
  32.     }  
  33.   
  34.     public JdbcTemplate getJdbcTemplate() {  
  35.         return jdbcTemplate;  
  36.     }  
  37.   
  38.     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
  39.         this.jdbcTemplate = jdbcTemplate;  
  40.     }  
  41.   
  42. }  

最后介绍Controller类,结合上面的spring-servlet.xml会更容易理解些

[java]  view plain  copy
 print ?
  1. package com.test.controller;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4.   
  5. import org.springframework.beans.factory.annotation.Autowired;  
  6. import org.springframework.stereotype.Controller;  
  7. import org.springframework.ui.ModelMap;  
  8. import org.springframework.web.bind.annotation.RequestMapping;  
  9. import org.springframework.web.bind.annotation.RequestMethod;  
  10.   
  11. import com.test.model.Person;  
  12. import com.test.service.PersonService;  
  13.   
  14. @Controller  
  15. @RequestMapping("/test")  
  16. public class TestController {  
  17.   
  18.     @Autowired  
  19.     PersonService personService;  
  20.       
  21.     @RequestMapping(value="start.qq",method={RequestMethod.GET})  
  22.     public String startMVC (HttpServletRequest request,ModelMap modelMap){  
  23.           
  24.         Person person = new Person();  
  25.         person.setId(Integer.parseInt(request.getParameter("id").toString()));  
  26.         person.setName(request.getParameter("name"));  
  27.         personService.save(person);  
  28.         System.out.println(person.getId());  
  29.         System.out.println(person.getName());  
  30.         modelMap.put("person",person);  
  31.           
  32.         return "user/MyJsp";  
  33.     }  
  34.   
  35. }  
(6)浏览器访问 http://localhost:8080/testV1/test/start.qq?id=111&name=daleiwang

(7)查询数据库








猜你喜欢

转载自blog.csdn.net/j6915819/article/details/54290388