Spring MVC+SimpleJdbcDaoSupport增删改查小例子

散仙,上次给的例子是基于Spring MVC+JDBC的方式做的持久层,本次就来个稍微高级点的使用Spring MVC+JDBC持久模板的方式,来完成一个基于Web的增删改查的小项目,后面会给出基于MyBatics,或Hibernate,JPA方式做持久层,基于Spring MVC整合的小例子。

下面先简单介绍下开发环境:
道具 名称
IDE工具 MyEclipse10
web容器 Tomcat6
JDK版本 1.7
数据库 MySQL5.1
环境 Windows
最重要的道具 屌丝程序员一枚




下面开始开工,在这之前,先来个项目的结构截图,来看下整体概貌。

Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第1张图片

Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第2张图片


Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第3张图片


Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第4张图片

Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第5张图片


Spring MVC+SimpleJdbcDaoSupport增删改查小例子_第6张图片

ac.xml里面的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName"
	xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"    xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	
	">
	
	 <!-- 读取配置文件 -->
	<bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations">
	 <value>classpath:connection.properties</value>
	</property>
	</bean>
	
	<!-- 配置事务管理 -->
 <bean id="tx"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   
 </bean>
	 <!-- 配置数据源 -->
    <bean id="dataSource" name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="username" value="${db.username}"></property>
    <property name="password" value="${db.password}"></property>
    <property name="url" value="${db.url}"></property>
    <property name="driverClassName" value="${db.driver}"></property>
    </bean>
		<!-- 定义事务通知 -->
	 <tx:advice id="txAdvice" transaction-manager="tx">
	  <tx:attributes>
	  <tx:method name="*" propagation="REQUIRED"/>
	  <tx:method name="get*" propagation="REQUIRED"/>
	  <tx:method name="add*" propagation="SUPPORTS"/>
	  <tx:method name="delete*" propagation="SUPPORTS"/>
	  <tx:method name="update*" propagation="SUPPORTS"/>
	  </tx:attributes>
	 </tx:advice>
	 	<!-- 定义aop切面 -->
	<aop:config>
	<aop:pointcut expression="execution(*  com.qin.dao.impl.*.*(..))" id="pc"/>
	<aop:advisor  pointcut-ref="pc" advice-ref="txAdvice"/>
	</aop:config> 
	 <!-- 注入数据源 -->
	 <bean name="dao" class="com.qin.dao.impl.UserModelImpl">
	 <property name="dataSource" ref="dataSource"></property>
	 </bean>
	
	
	 
	
</beans>

qin-servlet.xml里面的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName" xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- HandlerMapping -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    
    <!-- HandlerAdapter -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    
    <!-- ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
  
     
     
    <!-- 表单映射器 -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    
    <property name="mappings">
    
    <props>
    <prop key="add">add</prop>
    <prop key="save">save</prop>
    </props>
    </property>
    
    </bean>
    
    <!-- 处理器 -->
    <bean name="/hellow" class="com.qin.controller.HellowController"/>
    
    <bean name="/indexAll" class="com.qin.controller.QueryAllUserController">
     
    </bean>
    
    <bean id="add" name="/add" class="com.qin.controller.AddController"></bean>
    <bean name="/delete" class="com.qin.controller.DeleteController"></bean>
    <bean name="/update" class="com.qin.controller.UpdateController"></bean>
    <bean id="save" name="/save" class="com.qin.controller.SaveController"></bean>
</beans>


web.xml里面的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	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_3_0.xsd">
  <display-name></display-name>	
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:ac*.xml</param-value>
 </context-param>
  <servlet>
  <servlet-name>qin</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <!-- 配置拦截  action为后缀名的请求 -->
 <servlet-mapping>
  <servlet-name>qin</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>
 
 <filter>
        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 
     
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>





怎么样,是不是有种熟悉的感觉,这个小项目是基于XML的方式配置Controller的,并没有使用注解的方式,每一个控制器,还是对应一个实体类,
需要重点说明的是src目录下的ac.xml和WEB-INFO下面的qin-servlet.xml这两者之间的关系
,其实,他们的功能大部分时候都是一样的,只是在src目录下的ac.xml,感觉用来和Struts的项目结合的多一些,不过只要当服务器启动的时候,这两个spring的配置文件都会被加载,有一点不同的是,Spring MVC的一些控制器实例,只能在qin-servlet.xml里面,进行实例化,以及一些具体的控制器里面的一些实体类的注入,也需要在这里面进行。其他的功能,比如说事务的功能,AOP的功能,在这两个xml任意一个里面配置都可以。











你可能感兴趣的:(spring,spring,mvc,JDBC模板)