论坛首页 移动开发技术论坛

Spring MVC+SimpleJdbcDaoSupport增删改查小例子

浏览 4399 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-01-03  
散仙,上次给的例子是基于Spring MVC+JDBC的方式做的持久层,本次就来个稍微高级点的使用Spring MVC+JDBC持久模板的方式,来完成一个基于Web的增删改查的小项目,后面会给出基于MyBatics,或Hibernate,JPA方式做持久层,基于Spring MVC整合的小例子。

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



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
















ac.xml里面的配置:
<pre name="code" class="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></pre>
qin-servlet.xml里面的配置:
<pre name="code" class="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>

</pre>
web.xml里面的配置:
<pre name="code" class="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>
</pre>




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











  • 大小: 55.3 KB
  • 大小: 42 KB
  • 大小: 15.3 KB
  • 大小: 46.8 KB
  • 大小: 16.1 KB
  • 大小: 48.1 KB
   发表时间:2014-01-09  
道友,你拜在哪个门下?
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics