SpringMVC+Spring+Mybatis 框架搭建

整个Demo的视图结构:

JAR:

下载地址:http://download.csdn.net/detail/li1669852599/8546059

首先,我是使用MyEclipse工具做的这个例子,整合了Sping 3 、Spring MVC 3 、MyBatis框架,演示数据库采用MySQL数据库。例子中主要操作包括对数据的添加(C)、查找(R)、更新(U)、删除(D)。我在这里采用的数据库连接池是来自阿里巴巴的Druid,至于Druid的强大之处,我在这里就不做过多的解释了,有兴趣的朋友们可以去网上谷歌或者百度一下哦!好了下面我就贴上这次这个演示例子的关键代码:

example目录下是一个基本案例:

BaseController.java

  1. package com.talent.example.controller;
  2. import java.util.List;
  3. import java.util.UUID;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8.  
  9. import com.talent.example.model.Base;
  10. import com.talent.example.service.BaseService;
  11. /**
  12. * <p>Title:控制器Controller</p>
  13. * <p>Description: </p>
  14. * <p>Copyright: Copyright (c) VISEC 2015</p>
  15. * <P>CreatTime: Mar 25 2015 </p>
  16. * @author Dana丶Li
  17. * @version 1.0
  18. */
  19. @Controller
  20. public class BaseController {
  21. private BaseService baseService;
  22. private static String pathHead="ViewCenter/TalentBaseExample/";
  23.  
  24. public BaseService getBaseService(){
  25. return baseService;
  26. }
  27. @Autowired
  28. public void setBaseService(BaseService baseService){
  29. this.baseService = baseService;
  30. }
  31.  
  32. @SuppressWarnings("finally")
  33. @RequestMapping("addInfo")
  34. public String add(Base add,HttpServletRequest request){
  35. try{
  36. add.setId(UUID.randomUUID().toString());
  37. //System.out.println(add.getId() + ":::::" + add.getTname() + ":::::" + add.getTpwd());
  38. String str = baseService.addInfo(add);
  39. //System.out.println(str);
  40. request.setAttribute("InfoMessage", str);
  41. } catch (Exception e){
  42. e.printStackTrace();
  43. //request.setAttribute("InfoMessage", "添加信息失败!具体异常信息:" + e.getMessage());
  44. }finally{
  45. return BaseController.pathHead+"result";
  46. }
  47. }
  48.  
  49. @RequestMapping("getAll")
  50. public String getBaseInfoAll(HttpServletRequest request){
  51. try{
  52. List<Base> list = baseService.getAll();
  53. //System.out.println(list);
  54. request.setAttribute("addLists", list);
  55. return BaseController.pathHead+"listAll";
  56. } catch (Exception e){
  57. e.printStackTrace();
  58. //request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
  59. return BaseController.pathHead+"result";
  60. }
  61. }
  62.  
  63. @SuppressWarnings("finally")
  64. @RequestMapping("del")
  65. public String del(String tid,HttpServletRequest request){
  66. try {
  67. String str = baseService.delete(tid);
  68. request.setAttribute("InfoMessage", str);
  69. } catch (Exception e) {
  70. e.printStackTrace();
  71. //request.setAttribute("InfoMessage", "删除信息失败!具体异常信息:" + e.getMessage());
  72. } finally{
  73. return BaseController.pathHead+"result";
  74. }
  75. }
  76. @RequestMapping("modify")
  77. public String modify(String tid,HttpServletRequest request){
  78. try {
  79. Base add = baseService.findById(tid);
  80. request.setAttribute("add", add);
  81. return BaseController.pathHead+"modify";
  82. } catch (Exception e){
  83. e.printStackTrace();
  84. //request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
  85. return BaseController.pathHead+"result";
  86. }
  87. }
  88.  
  89. @SuppressWarnings("finally")
  90. @RequestMapping("update")
  91. public String update(Base add,HttpServletRequest request){
  92. try {
  93. String str = baseService.update(add);
  94. request.setAttribute("InfoMessage", str);
  95. } catch (Exception e) {
  96. e.printStackTrace();
  97. //request.setAttribute("InfoMessage", "更新信息失败!具体异常信息:" + e.getMessage());
  98. } finally {
  99. return BaseController.pathHead+"result";
  100. }
  101. }
  102.  
  103. }

BaseMapper.java

  1. package com.talent.example.dao;
  2. import java.util.List;
  3. import com.talent.example.model.Base;
  4. /**
  5. * <p>Title: DAO BaseMapper</p>
  6. * <p>Description: Base接口</p>
  7. * <p>Copyright: Copyright (c) VISEC 2015</p>
  8. * <P>CreatTime: Mar 25 2015 </p>
  9. * @author Dana丶Li
  10. * @version 1.0
  11. */
  12. public interface BaseMapper {
  13. int deleteByPrimaryKey(String id);
  14.  
  15. int insert(Base record);
  16.  
  17. int insertSelective(Base record);
  18.  
  19. Base selectByPrimaryKey(String id);
  20.  
  21. int updateByPrimaryKeySelective(Base record);
  22.  
  23. int updateByPrimaryKey(Base record);
  24.  
  25. List<Base> getAll();
  26. }

BaseMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.talent.example.dao.BaseMapper">
  4. <resultMap id="BaseResultMap" type="com.talent.example.model.Base">
  5. <id column="id" property="id" jdbcType="VARCHAR" />
  6. <result column="tname" property="tname" jdbcType="VARCHAR" />
  7. <result column="tpwd" property="tpwd" jdbcType="VARCHAR" />
  8. </resultMap>
  9. <sql id="Base_Column_List">
  10. id, tname, tpwd
  11. </sql>
  12. <select id="selectByPrimaryKey" resultMap="BaseResultMap"
  13. parameterType="java.lang.String">
  14. select
  15. <include refid="Base_Column_List" />
  16. from tadd
  17. where id = #{id,jdbcType=VARCHAR}
  18. </select>
  19. <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
  20. delete from tadd
  21. where id = #{id,jdbcType=VARCHAR}
  22. </delete>
  23. <insert id="insert" parameterType="com.talent.example.model.Base">
  24. insert into tadd (id, tname,
  25. tpwd
  26. )
  27. values (#{id,jdbcType=VARCHAR}, #{tname,jdbcType=VARCHAR},
  28. #{tpwd,jdbcType=VARCHAR}
  29. )
  30. </insert>
  31. <insert id="insertSelective" parameterType="com.talent.example.model.Base">
  32. insert into tadd
  33. <trim prefix="(" suffix=")" suffixOverrides=",">
  34. <if test="id != null">
  35. id,
  36. </if>
  37. <if test="tname != null">
  38. tname,
  39. </if>
  40. <if test="tpwd != null">
  41. tpwd,
  42. </if>
  43. </trim>
  44. <trim prefix="values (" suffix=")" suffixOverrides=",">
  45. <if test="id != null">
  46. #{id,jdbcType=VARCHAR},
  47. </if>
  48. <if test="tname != null">
  49. #{tname,jdbcType=VARCHAR},
  50. </if>
  51. <if test="tpwd != null">
  52. #{tpwd,jdbcType=VARCHAR},
  53. </if>
  54. </trim>
  55. </insert>
  56. <update id="updateByPrimaryKeySelective" parameterType="com.talent.example.model.Base">
  57. update tadd
  58. <set>
  59. <if test="tname != null">
  60. tname = #{tname,jdbcType=VARCHAR},
  61. </if>
  62. <if test="tpwd != null">
  63. tpwd = #{tpwd,jdbcType=VARCHAR},
  64. </if>
  65. </set>
  66. where id = #{id,jdbcType=VARCHAR}
  67. </update>
  68. <update id="updateByPrimaryKey" parameterType="com.talent.example.model.Base">
  69. update tadd
  70. set
  71. tname = #{tname,jdbcType=VARCHAR},
  72. tpwd = #{tpwd,jdbcType=VARCHAR}
  73. where id = #{id,jdbcType=VARCHAR}
  74. </update>
  75.  
  76. <select id="getAll" resultMap="BaseResultMap">
  77. SELECT * FROM tadd
  78. </select>
  79. </mapper>

Base.java

  1. package com.talent.example.model;
  2. /**
  3. * <p>Title: MODEL Base</p>
  4. * <p>Description: Base实体类</p>
  5. * <p>Copyright: Copyright (c) VISEC 2015</p>
  6. * <P>CreatTime: Mar 25 2015 </p>
  7. * @author Dana丶Li
  8. * @version 1.0
  9. */
  10. public class Base{
  11.  
  12. private String id;
  13.  
  14. private String tname;
  15.  
  16. private String tpwd;
  17.  
  18. public String getId(){
  19. return id;
  20. }
  21. public void setId(String id) {
  22. this.id = id == null ? null : id.trim();
  23. }
  24. public String getTname() {
  25. return tname;
  26. }
  27. public void setTname(String tname) {
  28. this.tname = tname == null ? null : tname.trim();
  29. }
  30.  
  31. public String getTpwd() {
  32. return tpwd;
  33. }
  34.  
  35. public void setTpwd(String tpwd) {
  36. this.tpwd = tpwd == null ? null : tpwd.trim();
  37. }
  38. }

BaseServiceImpl.java

  1. package com.talent.example.service.impl;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import com.talent.example.dao.BaseMapper;
  6. import com.talent.example.model.Base;
  7. import com.talent.example.service.BaseService;
  8. /**
  9. * <p>Title: DAO BaseMapper</p>
  10. * <p>Description: Base接口</p>
  11. * <p>Copyright: Copyright (c) VISEC 2015</p>
  12. * <P>CreatTime: Mar 25 2015 </p>
  13. * @author Dana丶Li
  14. * @version 1.0
  15. */
  16. @Service("baseService")
  17. public class BaseServiceImpl implements BaseService{
  18.  
  19. private BaseMapper baseMapper;
  20.  
  21. public BaseMapper getBaseMapper(){
  22. return baseMapper;
  23. }
  24. @Autowired
  25. public void setBaseMapper(BaseMapper BaseMapper) {
  26. this.baseMapper = BaseMapper;
  27. }
  28.  
  29. @Override
  30. public String addInfo(Base BaseInfo) {
  31. if (baseMapper.insertSelective(BaseInfo) == 1) {
  32. return "添加成功";
  33. }
  34. return "添加失败";
  35. }
  36. @Override
  37. public List<Base> getAll() {
  38. return baseMapper.getAll();
  39. }
  40. @Override
  41. public String delete(String id) {
  42. if (baseMapper.deleteByPrimaryKey(id) == 1) {
  43. return "删除成功";
  44. }
  45. return "删除失败";
  46. }
  47. @Override
  48. public Base findById(String id) {
  49. return baseMapper.selectByPrimaryKey(id);
  50. }
  51. @Override
  52. public String update(Base BaseInfo) {
  53. if (baseMapper.updateByPrimaryKeySelective(BaseInfo) == 1) {
  54. return "更新成功";
  55. }
  56. return "更新失败";
  57. }
  58.  
  59. }

BaseService.java

  1. package com.talent.example.service;
  2. import java.util.List;
  3. import com.talent.example.model.Base;
  4. /**
  5. * <p>Title: DAO BaseService</p>
  6. * <p>Description: BaseService接口</p>
  7. * <p>Copyright: Copyright (c) VISEC 2015</p>
  8. * <P>CreatTime: Mar 25 2015 </p>
  9. * @author Dana丶Li
  10. * @version 1.0
  11. */
  12. public interface BaseService {
  13.  
  14. String addInfo(Base addInfo);
  15.  
  16. List<Base> getAll();
  17.  
  18. String delete(String id);
  19.  
  20. Base findById(String id);
  21.  
  22. String update(Base addInfo);
  23. }

接下来主要详述SpringMVC+Spring+Mybatis的配置文件

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  5. version="3.0">
  6. <display-name></display-name>
  7. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>classpath:spring.xml;classpath:spring-mybatis.xml</param-value>
  10. </context-param>
  11. <filter>
  12. <description>字符集过滤器</description>
  13. <filter-name>encodingFilter</filter-name>
  14. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  15. <init-param>
  16. <description>字符集编码</description>
  17. <param-name>encoding</param-name>
  18. <param-value>UTF-8</param-value>
  19. </init-param>
  20. </filter>
  21. <filter-mapping>
  22. <filter-name>encodingFilter</filter-name>
  23. <url-pattern>/*</url-pattern>
  24. </filter-mapping>
  25. <listener>
  26. <description>spring监听器</description>
  27. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  28. </listener>
  29. <listener>
  30. <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  31. </listener>
  32. <servlet>
  33. <description>spring mvc servlet</description>
  34. <servlet-name>springMvc</servlet-name>
  35. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  36. <init-param>
  37. <description>spring mvc 配置文件</description>
  38. <param-name>contextConfigLocation</param-name>
  39. <param-value>classpath:spring-mvc.xml</param-value>
  40. </init-param>
  41. <load-on-startup>1</load-on-startup>
  42. </servlet>
  43. <servlet-mapping>
  44. <servlet-name>springMvc</servlet-name>
  45. <url-pattern>*.do</url-pattern>
  46. </servlet-mapping>
  47. <session-config>
  48. <session-timeout>15</session-timeout>
  49. </session-config>
  50. <welcome-file-list>
  51. <welcome-file>ViewCenter/TalentBaseExample/index.jsp</welcome-file>
  52. </welcome-file-list>
  53. </web-app>

通过Web.xml加载SpringMVC+Spring+Mybatis的配置文件

首先是Spring.xml ,spring-mybatis.xml俩文件

Spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
  3. http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/context
  6. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  7. ">
  8. <!-- 引入属性文件 -->
  9. <context:property-placeholder location="classpath:com/talent/base/config.properties" />
  10. <!-- 自动扫描(自动注入) -->
  11. <context:component-scan base-package="com.talent.example.service..*" />
  12. </beans>

spring-mybatis.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
  3. http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  5. http://www.springframework.org/schema/tx
  6. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  7. http://www.springframework.org/schema/aop
  8. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
  9. <!-- 配置数据源 -->
  10. <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  11. <property name="url" value="${jdbc_url}" />
  12. <property name="username" value="${jdbc_username}" />
  13. <property name="password" value="${jdbc_password}" />
  14.  
  15. <!-- 初始化连接大小 -->
  16. <property name="initialSize" value="0" />
  17. <!-- 连接池最大使用连接数量 -->
  18. <property name="maxActive" value="20" />
  19. <!-- 连接池最大空闲 -->
  20. <property name="maxIdle" value="20" />
  21. <!-- 连接池最小空闲 -->
  22. <property name="minIdle" value="0" />
  23. <!-- 获取连接最大等待时间 -->
  24. <property name="maxWait" value="60000" />
  25.  
  26. <!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
  27.  
  28. <property name="validationQuery" value="${validationQuery}" />
  29. <property name="testOnBorrow" value="false" />
  30. <property name="testOnReturn" value="false" />
  31. <property name="testWhileIdle" value="true" />
  32.  
  33. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  34. <property name="timeBetweenEvictionRunsMillis" value="60000" />
  35. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  36. <property name="minEvictableIdleTimeMillis" value="25200000" />
  37.  
  38. <!-- 打开removeAbandoned功能 -->
  39. <property name="removeAbandoned" value="true" />
  40. <!-- 1800秒,也就是30分钟 -->
  41. <property name="removeAbandonedTimeout" value="1800" />
  42. <!-- 关闭abanded连接时输出错误日志 -->
  43. <property name="logAbandoned" value="true" />
  44.  
  45. <!-- 监控数据库 -->
  46. <!-- <property name="filters" value="stat" /> -->
  47. <property name="filters" value="mergeStat" />
  48. </bean>
  49.  
  50. <!-- MyBatis文件 -->
  51. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  52. <property name="dataSource" ref="dataSource" />
  53. <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
  54. <property name="mapperLocations" value="classpath:com/talent/example/mapping/*.xml" />
  55. </bean>
  56.  
  57. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  58. <property name="basePackage" value="com.talent.example.dao" />
  59. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
  60. </bean>
  61.  
  62. <!-- 配置事务管理器 -->
  63. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  64. <property name="dataSource" ref="dataSource" />
  65. </bean>
  66.  
  67. <!-- 注解方式配置事物 -->
  68. <!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->
  69.  
  70. <!-- 拦截器方式配置事物 -->
  71. <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
  72. <tx:attributes>
  73. <tx:method name="add*" propagation="REQUIRED" />
  74. <tx:method name="append*" propagation="REQUIRED" />
  75. <tx:method name="insert*" propagation="REQUIRED" />
  76. <tx:method name="save*" propagation="REQUIRED" />
  77. <tx:method name="update*" propagation="REQUIRED" />
  78. <tx:method name="modify*" propagation="REQUIRED" />
  79. <tx:method name="edit*" propagation="REQUIRED" />
  80. <tx:method name="delete*" propagation="REQUIRED" />
  81. <tx:method name="remove*" propagation="REQUIRED" />
  82. <tx:method name="repair" propagation="REQUIRED" />
  83. <tx:method name="delAndRepair" propagation="REQUIRED" />
  84.  
  85. <tx:method name="get*" propagation="SUPPORTS" />
  86. <tx:method name="find*" propagation="SUPPORTS" />
  87. <tx:method name="load*" propagation="SUPPORTS" />
  88. <tx:method name="search*" propagation="SUPPORTS" />
  89. <tx:method name="datagrid*" propagation="SUPPORTS" />
  90.  
  91. <tx:method name="*" propagation="SUPPORTS" />
  92. </tx:attributes>
  93. </tx:advice>
  94.  
  95. <aop:config>
  96. <aop:pointcut id="transactionPointcut" expression="execution(* com.talent.example.service..*Impl.*(..))" />
  97. <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
  98. </aop:config>
  99.  
  100. <!-- 配置Druid监控Spring JDBC -->
  101. <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
  102. </bean>
  103. <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
  104. <property name="patterns">
  105. <list>
  106. <value>com.talent.example.service.*</value>
  107. </list>
  108. </property>
  109. </bean>
  110.  
  111. <aop:config>
  112. <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
  113. </aop:config>
  114. </beans>

其次呢是Spring-mvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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" xsi:schemaLocation="http://www.springframework.org/schema/beans
  3. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  4. http://www.springframework.org/schema/context
  5. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  6. http://www.springframework.org/schema/mvc
  7. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
  8.  
  9. <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
  10. <context:component-scan base-package="com.talent.example.controller" />
  11.  
  12. <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
  13. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" />
  14.  
  15. </beans>

以上就是几个关键位置的代码,我全部贴出来了。至于配置文件什么的,由于时间原因没有贴出。如果大家要是感兴趣的话,可以下载我的这个演示项目包,里面的东西都齐全着,导入到MyEclipse上面直接部署到服务器上面就可以运行。数据库就是里面的那个.sql文件。建个库然后将数据导入就是。哦,对了。导完数据后,记得别忘了到config.properties里面去把数据库的连接信息换成你自己哦!

项目Demo下载地址~

SpringMVC3.2+Spring3.2+Mybatis3.1(SSM~Demo)的更多相关文章

  1. Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)

    依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况 叫 依赖传递

  2. Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory

    一.摘要 上两篇文章分别介绍了Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法 和 Spring3 整合Hibernate3.5 动态切换Ses ...

  3. Spring3.2+mybatis3.2+Struts2.3整合

    1.Spring3.2不能用于JDK1.8,只能用于JDK1.7.JDK1.8用spring4.0. 2.导入的jar包 3.目录结构: 4.配置Spring 配置数据库信息: <?xml ve ...

  4. ssm demo,用户角色权限管理

    SSM框架整合 Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspectwea ...

  5. Java学习之SpringBoot整合SSM Demo

    背景:在Java Web中Spring家族有着很重要的地位,之前JAVA开发需要做很多的配置,一堆的配置文件和部署调试一直是JavaWeb开发中的一大诟病,但现在Spring推出了SpringBoot ...

  6. spring3.2+mybatis3.2+maven整合

    用maven管理spring+mybatis的项目: 这里主要讲述的是maven中的pom.xml文件的配置,以及在maven构建过程中会碰到的几个问题(我用的是maven4.4的版本): 首先一步一 ...

  7. SSM demo :投票系统

    框架: Spring SpringMVC MyBatis 题目: 投票系统 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspe ...

  8. Spring3.2+mybatis3.2+Struts2.3整合配置文件大全

    0.配置文件目录 1.Spring配置 applicationContext-dao.xml <?xml version="1.0" encoding="UTF-8 ...

  9. Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory(转)

    1. Spring整合MyBatis切换SqlSessionFactory有两种方法,第一. 继承SqlSessionDaoSupport,重写获取SqlSessionFactory的方法.第二.继承 ...

随机推荐

  1. 第八章 连词(Les conjonction )

    ★并列连词(La conjonction de coordination ) ()表示联合关系的并列连词 .et连接肯定的内容.如:    ➞Il conduit vite et bien.      ...

  2. Django入门与实践 1-16章总结

    注意事项:随时备份.随时记录.从宏观到微观 不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之:学至于行之止矣 安装 Python 3.6.2 pip install django==1.11.4 ...

  3. C语言之控制台读取上下左右方向键指令

    首先,可以检测任何按键键值 // 首先,检测任何按键的代码 #include<stdio.h> #include<conio.h> int main() { char ch; ...

  4. Duplicate entry '1' for key 'PRIMARY'

    这个bug产生在你建立主键的时候,就是说主键的id重复了,有两个同名的id,需要删除一个,才能满足主键的唯一性

  5. public static void main(String[] args)说明

    /*public static void main(String[] args) 主函数特殊之处:1,格式是固定的.2,被jvm所识别和调用. public:因为权限必须是最大的.static:不需要 ...

  6. windows开启禁用网卡

    ' 在Windows中实现sudo命令--命令行环境中获取管理员权限 'ShellExecute 方法 '作用: 用于运行一个程序或脚本. '语法 ' .ShellExecute "appl ...

  7. VS2013支持多字节的方法

    参考链接: https://jingyan.baidu.com/article/6181c3e06ab30f152ff1534d.html

  8. 《Forward团队-爬虫豆瓣top250项目-设计文档》

    成员:马壮,李志宇,刘子轩,年光宇,邢云淇,张良 设计方案: 1.能分析HTML语言: 2.提取重要数据,并保存为文本文档: 3.用PY代码调取文本文档的数据: 4.编写提取部分数据的python代码 ...

  9. pytest 常用命令行选项(二)

    本文接上篇继续简介pytest常用的命令行选项. 8.-v(--verbose) 选项 使用-v/--verbose选项,输出的信息会更详细.最明显的区别就是每个文件中的每个测试用例都占一行,测试的名 ...

  10. struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)

    dispatcher 为默认跳转类型,用于返回一个视图资源(如:jsp) Xml代码 : <result name="success">/main.jsp</re ...