简介

SSH框架很强大,适合大型项目开发。但学无止境,多学会一门框架组合开发会让自己增值许多。 
SSM框架小巧精致,适合中小型项目快速开发,对于新手来说也是简单上手的。在SSM框架搭建之前,我们先学习组合Spring+MyBatis,下面开始简单实例。


实例

第一步——导包

Spring框架包及其依赖包+MyBatis框架包及其依赖包+EhCache架包+C3P0架包+MySql驱动包

本实例架包目录如下: 

实例项目结构如下: 

第二步——各种配置文件

SpringMVC配置文件(ApplicationContext.xml)

<?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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- bean definitions here --> <context:component-scan base-package="cn.pwc" /> <bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_pwc" />
<property name="user" value="pwc" />
<property name="password" value="123456" />
<property name="maxPoolSize" value="20" />
<property name="minPoolSize" value="1" />
<property name="initialPoolSize" value="3" />
<property name="maxIdleTime" value="60" />
</bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="SqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.pwc.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> </beans>

1.配置C3P0连接池bean和SqlSessionFactory工厂类bean 
2.该实例使用Mapper代理,因此需配置MapperScannerConfigurer的bean 
3.该bean的basePackage属性值为自动扫描的Mapper.xml的所在包 
4.扫描到的Mapper会自动实例化装载,实例的bean名为第一个字母为小写的Mapper接口名,例如该实例接口为UserMapper.java,实例化bean名为userMapper。

MyBatis配置文件(SqlMapConfig.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<mappers>
<package name="cn.pwc"/>
</mappers>
</configuration>

因为Spring管理各个层,DAO层配置,连接池等都交给Spring配置,因此MyBatis配置只需写简单全局设置和Mapper.xml自动扫描配置。 
这里全局配置打开了二级缓存,即cacheEnabled设置为true。

MyBatis的Mapper配置文件(UserMapper.xml)

<?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">
<mapper namespace="cn.pwc.dao.UserMapper">
<cache type="org.mybatis.caches.ehcache.EhcacheCache" />
<select id="findById" parameterType="int" resultType="cn.pwc.pojo.User">
SELECT * FROM user WHERE id=#{id}
</select>
<select id="findByAge" parameterType="int" resultType="cn.pwc.pojo.User">
SELECT * FROM user WHERE age=#{age}
</select>
<delete id="deleteById" parameterType="int">
DELETE FROM user WHERE id=#{id}
</delete>
<insert id="insert" parameterType="cn.pwc.pojo.User">
INSERT INTO user(name,age) VALUES(#{name},#{age})
</insert>
</mapper>

该ORM映射Mapper文件开启二级缓存,并指定为EhCache交给其管理

EhCache配置文件(ehcache.xml)

<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="F:\cache_test" />
<defaultCache eternal="false" maxElementsInMemory="1000"
timeToIdleSeconds="20" timeToLiveSeconds="20" overflowToDisk="false"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="20" memoryStoreEvictionPolicy="LRU" />
</ehcache>

这里特别要注意overflowToDisk属性值,若为true,那么缓存的pojo类需继承Serializable接口

Log4j配置文件(log4j.properties)

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

第三步——测试

测试类如下:

package cn.pwc.test;

import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.pwc.dao.UserMapper;
import cn.pwc.pojo.User; public class Test extends SqlSessionDaoSupport{ public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
UserMapper mapper=(UserMapper) context.getBean("userMapper");
User user = mapper.findById(1);
System.out.println(user.toString());
User user2 = mapper.findById(1);
System.out.println(user2.toString());
User user3 = mapper.findById(1);
System.out.println(user3.toString());
User user4 = mapper.findById(1);
System.out.println(user4.toString());
context.close(); } }

SpringMVC笔记——Spring+MyBatis组合开发简单实例的更多相关文章

  1. Spring笔记——Spring+JDBC组合开发

      使用Spring+JDBC集成步骤如下:   1. 配置数据源 2. 配置事务.配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置方式有两种:注解方式和基于XML配置方式 ...

  2. Springmvc+Spring+Mybatis整合开发(架构搭建)

    Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...

  3. SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发。

    SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发.是目前企业开发比较流行的架构.代替了之前的SSH(Struts + Spring + Hibernate) 计划 ...

  4. (转)Spring+JDBC组合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52882435 搭建和配置Spring与JDBC整合的环境 使用Spring+JDBC集成步骤如 ...

  5. Java Web开发中Spring+MyBatis框架的简单搭建

    这里使用的eclipse,首先创建一个动态web项目. 1.导入Spring IOC.AOP.DAO.dbcp.dbdrive.mybatis.jar . mybatis-spring.jar  本人 ...

  6. 在Spring+MyBatis组合中使用事务

     通过Spring和MyBatis的组合,给出一个较为详细的实例 代码清单:配置Spring+MyBatis测试环境 <?xml version='1.0' encoding='UTF-8' ? ...

  7. Spring学习笔记--spring+mybatis集成

    前言: 技术的发展, 真的是日新月异. 作为javaer, 都不约而同地抛弃裸写jdbc代码, 而用各种持久化框架. 从hibernate, Spring的JDBCTemplate, 到ibatis, ...

  8. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  9. Spring+Mybatis+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+MySql的的搭建实例 ...

随机推荐

  1. Qt 2D绘图高级篇

    1.拖动模式 在QGraphicView中提供了三种拖动模式,分别是: QGraphicsView::NoDrag :忽略鼠标事件,不可以拖动. QGraphicsView::ScrollHandDr ...

  2. atitit。win7 win8 win9 win10 win11 新特性总结与战略规划

    atitit.win7 win8 win9 win10  win11 新特性总结与战略规划 1. win7 1 1.1. 发布时间 2009年10月22日 1 1.2. 稳定性大幅提升,很少蓝屏死机 ...

  3. Struts2初学 struts.xml详解 一

    一.简介    Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点 二.详解    首先让我们看一下一个简单的struts.xml文件的结构  < ...

  4. iOS应用安全防护框架概述

    iOS应用安全防护框架概述 攻易防难,唯有缜密.多层的防护网络才能可靠的保护我们iOS应用程序的安全.那么,一个完善的iOS应用安全防护框架都要写哪些东西呢? 首先,先梳理一下常见的逆向及攻击工具. ...

  5. iOS 开发如何入门

    iOS 开发如何入门 新人如何入门 上一篇文章的回复中,很多读者让我推荐入门图书.其实我觉得每个人可能有自己喜欢的学习方式,我习惯的不一定适合你.不过我可以分享一下我当时是如何学习 iOS 开发的. ...

  6. Nokia Imaging SDK

    Nokia Imaging SDK 目前为 beta 版本,是诺基亚在自己的图像应用中使用的技术同时提供给开发者 使用.这是一个运行在手机设备上处理图片数据的高效的类库.功能包括 JEPG 图片的编码 ...

  7. Mockjs生成Vue数据表格

    1.npm install mockjs --save 2.在src文件下建mock.js文件 3.mock.js文件文件内容 //引入mockjs import Mock from 'mockjs' ...

  8. CSS3多列布局

    通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样! 在本章中,您将学习如下多列属性: column-count column-gap column-rule 浏览器支持 属性 浏览器 ...

  9. java中Keytool的使用总结 (加密 密钥(key)和证书(certificates))

    http://blog.chinaunix.net/uid-17102734-id-2830223.html

  10. RCC—使用 HSE/HSI 配置时钟 ---时钟树

    本章参考资料:< STM32F4xx 中文参考手册> RCC 章节.学习本章时,配合< STM32F4xx 中文参考手册> RCC 章节一起阅读,效果会更佳,特别是涉及到寄存器 ...