文档章节

Mybatis+Spring+SpringMVC框架搭建

夜华灬
 夜华灬
发布于 2017/08/22 15:22
字数 1329
阅读 7
收藏 1

在日常使用中mybatis 主要是通过mapper配置文件执行连接数据库的工作

        简单sql 可以通过使用注解的方式完成。

        复杂点的sql推荐还是使用配置文件

        本文使用的框架为Spring+Springmvc+Mybatis+maven

        1.Spring-mybatis.xml

        

           此文件将Spring与mybatis的基本配置合并在一起

            Spring-mybatis 配置文件

            

<?xml version="1.0" encoding="UTF-8"?>
<beans 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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.1.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <!--此处为Spring全局扫描位置-->
    <!-- 自动扫描 所有注解-->
    <context:component-scan base-package="com.atsc" >

            <!--此处为声明不扫描控制器-->
            <context:exclude-filter type="regex" expression="com.atsc.*.action.*" />
    </context:component-scan>    
    <!-- 引入配置文件 -->

    <!--通过配置文件引用jdbc数据库连接地址-->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties" />
    </bean>

<!--jdbc连接池-->

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

         <!--销毁方式-->
        destroy-method="close">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="${initialSize}"></property>
        <!-- 连接池最大数量 -->
        <property name="maxActive" value="${maxActive}"></property>
        <!-- 连接池最大空闲 -->
        <property name="maxIdle" value="${maxIdle}"></property>
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="${minIdle}"></property>
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="${maxWait}"></property>
    </bean>
   

    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">                
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/atsc/**/*Mapper.xml"></property>
        <property name="configLocation" value="classpath:mybatis.xml"></property>                      
    </bean>

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!--**代表com.atsc.所有包包含子包中的.dao包-->
        <property name="basePackage" value="com.atsc.**.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <!--引用声明的dataSource-->     

         <property name="dataSource" ref="dataSource" />
    </bean>    
</beans>

===========Spring-mybatis配置完毕==============================

===========Spring-mvc配置===================================

   <?xml version="1.0" encoding="UTF-8"?>
<beans 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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.1.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
    <context:component-scan base-package="com.atsc.*.action" />
    
    <!--启用springmvc注解功能-->
    <mvc:annotation-driven  />
        
    
    
    <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />    <!-- JSON转换器 -->
            </list>
        </property>
    </bean>
    <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->

        <!---代表返回路径的前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />

        <!--代表返回路径的后缀-->
        <property name="suffix" value=".jsp" />
    </bean>
    
    <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
    <bean id="multipartResolver"  
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
        <!-- 默认编码 -->
        <property name="defaultEncoding" value="utf-8" />  
        <!-- 文件大小最大值 -->
        <property name="maxUploadSize" value="10485760000" />  
        <!-- 内存中的最大值 -->
        <property name="maxInMemorySize" value="40960" />  
    </bean>
    
    <!-- 配置js,css等静态文件直接映射到对应的文件夹,不被DispatcherServlet处理 -->
    <mvc:resources mapping="/images/**" location="/images/" />
    <mvc:resources mapping="/css/**" location="/css/" />
    <mvc:resources mapping="/js/**" location="/js/" />
    <mvc:resources mapping="/logs/**" location="/logs/" />
    <mvc:resources mapping="/common/**" location="/common/" />
        <!--定时器-->
    <context:component-scan base-package="quartz" />  
    <bean id="testService"   class="com.atsc.common.quartz.TestService"></bean>     
    <bean id="jobFactory" class="com.atsc.common.quartz.MyJobFactory"></bean>  
    <bean id="Scheduler"   class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobFactory" ref="jobFactory" />   
    </bean>     
    <bean id="jobManager" class="com.atsc.common.quartz.JobManager"> </bean>
    <bean id="QuartzManager" class="com.atsc.common.schedule.QuartzManager"></bean>
    <bean id="JobService" class="com.atsc.common.quartz.JobService"  init-method="loadJobInit"></bean>
</beans>

dao包接口

对应得map文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<!--用于标识dao接口路径-->
<mapper namespace="com.atsc.struts.dao.EquipacceptItemMapper" >

<!--用于标识sql返回的数据接收对象-->
  <resultMap id="BaseResultMap" type="com.atsc.struts.dto.EquipacceptItem" >
    <result column="ID" property="id" jdbcType="INTEGER" />
  </resultMap>
  <insert id="insert" parameterType="com.atsc.struts.dto.EquipacceptItem" >
    insert into EQUIP_ACCEPT_ITEM (ID, ACCEPT_MAIN_ID, EQUIP_CODE,
      EQUIP_NAME, EQUIP_CLASS, EQUIP_TYPE_CODE,
      CREATE_DATE, QUANTITY, SOURCE_DATE,
      USE_START_DATE, MAINT_END_DATE, SOURCE_ID,
      EQUIP_MEMO, EQUIP_STATE, BATCH,
      EQUIP_ID, ORIGINAL, EQUIP_MODEL,
      EQUIP_SPEC, ASSET_PV, COUNTRY,
      COUNTRY_CODE, MANUFACTURER, FACTORY_NO,
      PRODUCTION_DATE, PURCHASE_DATE, EQUIP_STATE1,
      USE_DEPART_CODE, USE_STAFF_CODE, DUTY_STAFF_CODE,
      USE_DATE, FUNDS_SUBJECT, USE_DIRECTION,
      EQUIP_SOURCE, GB_TYPE_CODE, KY_NO,
      SB_NO, UPDATE_STAFF_CODE, UPDATE_DATE,
      CREATE_DATE1, IS_LOW_VALUE, INFO_IS_ADD,
      APPLAY_QUARTER, BUDGET_NO, IN_SCHOOL_ADDR,
      APPLAY_REASON, IS_PLAN_OUT, PURCHASE_METHOD,
      USE_NATURE, FACTORY, PURCHASE_PERSON,
      INFO_IS_CHECK, PLAN_UNIT_PRICE, PLAN_QUANTITY,
      FACTORY_DATE, PLAN_EQUIP_NAME, PURCHASE_MAIN_ID,
      PURCHASE_ITEM_ID, MANAGE_TYPE, WG_STAFF_CODE,
      BUDGET_NO_NAME, a_b, a_c,
      AAAAA, checks, checks2,
      checks3, checks4, checks5,
      wwwww, ACCOUNT_CODE)
    values (#{id,jdbcType=INTEGER}, #{acceptMainId,jdbcType=INTEGER}, #{equipCode,jdbcType=CHAR},
      #{equipName,jdbcType=VARCHAR}, #{equipClass,jdbcType=INTEGER}, #{equipTypeCode,jdbcType=VARCHAR},
      #{createDate,jdbcType=TIMESTAMP}, #{quantity,jdbcType=INTEGER}, #{sourceDate,jdbcType=TIMESTAMP},
      #{useStartDate,jdbcType=TIMESTAMP}, #{maintEndDate,jdbcType=TIMESTAMP}, #{sourceId,jdbcType=INTEGER},
      #{equipMemo,jdbcType=VARCHAR}, #{equipState,jdbcType=INTEGER}, #{batch,jdbcType=INTEGER},
      #{equipId,jdbcType=INTEGER}, #{original,jdbcType=INTEGER}, #{equipModel,jdbcType=VARCHAR},
      #{equipSpec,jdbcType=VARCHAR}, #{assetPv,jdbcType=DECIMAL}, #{country,jdbcType=VARCHAR},
      #{countryCode,jdbcType=VARCHAR}, #{manufacturer,jdbcType=VARCHAR}, #{factoryNo,jdbcType=VARCHAR},
      #{productionDate,jdbcType=TIMESTAMP}, #{purchaseDate,jdbcType=TIMESTAMP}, #{equipState1,jdbcType=VARCHAR},
      #{useDepartCode,jdbcType=VARCHAR}, #{useStaffCode,jdbcType=VARCHAR}, #{dutyStaffCode,jdbcType=VARCHAR},
      #{useDate,jdbcType=TIMESTAMP}, #{fundsSubject,jdbcType=VARCHAR}, #{useDirection,jdbcType=VARCHAR},
      #{equipSource,jdbcType=VARCHAR}, #{gbTypeCode,jdbcType=VARCHAR}, #{kyNo,jdbcType=VARCHAR},
      #{sbNo,jdbcType=VARCHAR}, #{updateStaffCode,jdbcType=VARCHAR}, #{updateDate,jdbcType=TIMESTAMP},
      #{createDate1,jdbcType=TIMESTAMP}, #{isLowValue,jdbcType=CHAR}, #{infoIsAdd,jdbcType=CHAR},
      #{applayQuarter,jdbcType=VARCHAR}, #{budgetNo,jdbcType=VARCHAR}, #{inSchoolAddr,jdbcType=VARCHAR},
      #{applayReason,jdbcType=VARCHAR}, #{isPlanOut,jdbcType=CHAR}, #{purchaseMethod,jdbcType=VARCHAR},
      #{useNature,jdbcType=VARCHAR}, #{factory,jdbcType=VARCHAR}, #{purchasePerson,jdbcType=VARCHAR},
      #{infoIsCheck,jdbcType=CHAR}, #{planUnitPrice,jdbcType=DECIMAL}, #{planQuantity,jdbcType=INTEGER},
      #{factoryDate,jdbcType=TIMESTAMP}, #{planEquipName,jdbcType=VARCHAR}, #{purchaseMainId,jdbcType=INTEGER},
      #{purchaseItemId,jdbcType=INTEGER}, #{manageType,jdbcType=VARCHAR}, #{wgStaffCode,jdbcType=VARCHAR},
      #{budgetNoName,jdbcType=VARCHAR}, #{aB,jdbcType=VARCHAR}, #{aC,jdbcType=VARCHAR},
      #{aaaaa,jdbcType=VARCHAR}, #{checks,jdbcType=VARCHAR}, #{checks2,jdbcType=TIMESTAMP},
      #{checks3,jdbcType=INTEGER}, #{checks4,jdbcType=CHAR}, #{checks5,jdbcType=NUMERIC},
      #{wwwww,jdbcType=VARCHAR}, #{accountCode,jdbcType=VARCHAR})
  </insert>
 
</mapper>

    此处使用mybatis-generator插件自动生成的文件

© 著作权归作者所有

夜华灬
粉丝 0
博文 3
码字总数 1797
作品 0
海淀
私信 提问
【文集】 Unity 游戏框架搭建

游戏总是需要一个框架,才能更好的开发,Unity下也不例外 Unity 游戏框架搭建 (一) 概述 Unity 游戏框架搭建 (二) 单例的模板 Unity 游戏框架搭建 (三) MonoBehaviour单例的模板 Unity 游戏框...

CatherinePlans
2017/11/05
0
0
SpringCloud实战--新闻门户网站-李熠-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lynnlovemin/article/details/83580775 SpringCloud实战--新闻门户网站—149人已学习 课程介绍 本套课程从实战...

lynnlovemin
2018/05/21
0
0
【自动化测试框架】 | 基于 selenium+Python,怎样从零开始搭建一个属于自己项目的测试框架

本框架是别人项目正在使用的框架,我这边抓取后经过了一点优化后整理出来的,大致包括,自动化用例套件、数据分离、日志模板、配置分离、断言、接口自动化、持续集成、自动化报告等方面,已经...

西边人
2018/06/15
0
0
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (六)写在后面的话

如果在你的项目中,配置的没有报错,但是总是注入进来的都是null的话,可查看配置文件所在的项目是否添加了配置文件中所引用或配置了的项目。还有就是mvc中control中注入都失败了。这个最后还...

aicoder
2010/09/07
0
0
ssi环境搭建,大家是怎么处理版本兼容性的?

在java平台上搭建框架,比如搭建ssi(springmvc+spring+mybatis),搭建框架会用到很多包,大家是怎么找到互相兼容的版本的?是在网上参考其他人搭建的,还是有一个专门找兼容的方法呢?...

码农陈大浏
2017/04/17
62
1

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript设计模式——适配器模式

  适配器模式是设计模式行为型模式中的一种模式;   定义:   适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修...

有梦想的咸鱼前端
26分钟前
3
0
Andorid SQLite数据库开发基础教程(1)

Andorid SQLite数据库开发基础教程(1) Android数据库访问方式 SQLite是Android系统默认支持的文件数据库。该数据库支持SQL语言,适合开发人员上手。本教程将讲解如何开发使用SQLite的Andro...

大学霸
29分钟前
3
0
Handler简解

Handler 这里简化一下代码 以便理解 Handler不一定要在主线程建 但如Handler handler = new Handler(); 会使用当前的Looper的, 由于要更新UI 所以最好在主线程 new Handler() { mLooper = Lo...

shzwork
52分钟前
4
0
h5获取摄像头拍照功能

完整代码展示: <!DOCTYPE html> <head> <title>HTML5 GetUserMedia Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum......

诗书易经
54分钟前
3
0
正向代理和反向代理

文章来源 运维公会:正向代理和反向代理 1、正向代理 (1)服务对象不同 正向代理服务器的服务对象是客户端,可以将客户端和代理服务器看作一个整体。 (2)配置方法不同 需要在客户端配置代...

运维团
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部