Spring4+Mybatis3+SpringMVC(基于注解)整合步聚:

一)Mybatis3测试;

二)Mybatis3+Spring4整合;

三)Mybatis3+Spring4+SpringMVC整合;

一、新建maven web项目
参考maven项目文章--Maven新建Web项目

二、添加pom.xml依赖包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
>

<modelVersion>4.0.0</modelVersion>

<groupId>com.ssm.demo1</groupId>

<artifactId>ssmdemo</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

<name>ssmdemo</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<!--
spring版本号 -->

<spring.version>4.0.2.RELEASE</spring.version>

<!--
mybatis版本号 -->

<mybatis.version>3.2.6</mybatis.version>

<!--
log4j日志文件管理包版本 -->

<slf4j.version>1.7.7</slf4j.version>

<log4j.version>1.2.12</log4j.version>

</properties>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

<!-- 表示开发的时候引入,发布的时候不会加载此包 -->

<scope>test</scope>

</dependency>

<!-- spring核心包 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-oxm</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-aop</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>${spring.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring.version}</version>

</dependency>

<!-- mybatis核心包 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>${mybatis.version}</version>

</dependency>

<!-- mybatis/spring包 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.2.2</version>

</dependency>

<!-- 导入java ee jar 包 -->

<dependency>

<groupId>javax</groupId>

<artifactId>javaee-api</artifactId>

<version>7.0</version>

</dependency>

<!-- 导入Mysql数据库链接jar包
-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.30</version>

</dependency>

<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->

<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>1.2.2</version>

</dependency>

<!-- JSTL标签类 -->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!-- 日志文件管理包 -->

<!-- log start -->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>${log4j.version}</version>

</dependency>

<!-- 格式化对象,方便输出日志 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.1.41</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>${slf4j.version}</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>${slf4j.version}</version>

</dependency>

<!-- log end -->

<!-- 映入JSON -->

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-mapper-asl</artifactId>

<version>1.9.13</version>

</dependency>

<!-- 上传组件包 -->

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.1</version>

</dependency>

<dependency>

<groupId>commons-io</groupId>

<artifactId>commons-io</artifactId>

<version>2.4</version>

</dependency>

<dependency>

<groupId>commons-codec</groupId>

<artifactId>commons-codec</artifactId>

<version>1.9</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.0</version>

<configuration>

<source>1.7</source>

<target>1.7</target>

</configuration>

</plugin>

</plugins>

</build>

</project>

再clear下项目,就会自动从网上下载依赖包,本地maven仓库没有滴

三、在src/main/java/目录下新建如下包名
     com.ssm.demo2                             //

com.ssm.demo2.controller              //存放@controller 注解的类

com.ssm.demo2.mapper                //mybatis接口类与mapper(*.xml)

com.ssm.demo2.po                        //实体类

com.ssm.demo2.service                  //业务类

四、在src/main/resources目录新建如下包名

mybatis                 //存放mybatis的配置文件,在整合后,此文件下将无效

spring              //存放spring的配置文件

五、在src/main/resources目录新建

db.properties                   //数据库连接信息配置

log4j.properties               //日志打印配置

六、db.properties添加内容如下:

jdbc.user=root

jdbc.password=root

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.jdbcUrl=jdbc:mysql:///mybatis?useUnicode=true&characterEncoding=utf8

jdbc.initPoolSize=5

jdbc.maxPoolSize=10

注明:”
?useUnicode=true&characterEncoding=utf8”设置编码为utf-8

如不配置,有时数据库编码没配好,就可能出现查询中文,不出结果的情况, 以防万一配上!

七、Log4j.properties添加内容如下:

log4j.rootLogger=DEBUG, stdout

# Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

注明:在正式发布时,把debug改成info,该文件放在classpath目录下即可,框架会自动加载,

无须手工来加载!

项目结构如下:

八、新建数据库 用Navicat for
mysql 工具

8.1)、新建user数据表,结构如下

自行输入几条测试数据!

这样数据库就建好了!

九、在scr/main/resources中的mybatis目录下

新建mybatis_cofig.xml文件并添加如下
内容:

注:在与spring整合后,该文件下的配置将交由spring管理!

<?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>

<!-- 加载数据源配置 -->

<properties resource="db.properties" />

<!-- 别名 -->

<typeAliases>

<typeAlias alias="User" type="com.ssm.demo2.po.User"/>

</typeAliases>

<!--配置jdbc -->

<environments default="development">

<environment id="development">

<transactionManager type="JDBC" />

<dataSource type="POOLED">

<property name="driver" value="${jdbc.driverClass}"/>

<property name="url" value="${jdbc.jdbcUrl}"/>

<property name="username" value="${jdbc.user}"/>

<property name="password" value="${jdbc.password}"/>

</dataSource>

</environment>

</environments>

</configuration>

十、接下来写po实体类与mapper文件

在po包中新建User.java类:

public class User {

private int id;

private String
username;

private Date password;

private char sex;

private String
address;

…setter/getter方法省略

}

十一、新建mapper接口类及映射文件(采用注解和代理接口方式,原始接口的可查看其他文章)

新建映射文件

在src/main/resources/mybatis包下新建 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="com.ssm.demo2.mapper.UserMapper">

<!--查找记录  -->

<select id="findUserList" parameterType="java.lang.String" resultType="User">

select * from user where username
like "%"#{value}"%"

</select>

</mapper>

在mapper包下新建UserMapper.java接口文件

内容如下:

public interface UserMapper {

public
List<User>findUserList(String name) throws
Exception;

}

十二、配置映射文件(注册mapper)

在mybatis_config.xml中添加如下内容:

<mappers>

<!-- 加载mapper -->

<mapper resource="mybatis/UserMapper.xml"
/>

</mappers>

十三、添加测试方法

在src/test/main下新建com.ssm.demo2包并新键 MybatisTest.java文件

内容:

public class MybatisTest
{

private
SqlSessionFactory factory;

{

String config ="mybatis/mybatis_config.xml";

InputStream in;

try {

in =
Resources.getResourceAsStream(config);

factory=new
SqlSessionFactoryBuilder().build(in);

} catch
(IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Test

public void test()
throws Exception {

System.out.println(factory);

SqlSession session=factory.openSession();

UserMapper usero=session.getMapper(UserMapper.class);

List<User>users=usero.findUserList("www");

System.out.println(users.size());

}

}

运行并得到打印结果

上面有显示,查询的sql语句!如在数据中有结果,查询无数据,可运行上面的sql来排错!

十四、把在mybatis_config.xml中手工注册的mapper映射,改成,自动扫描式的

在mybatis_config.xml中的<mappers>标签下添加如下内容

<!--

注解的方式

自动扫描mapper包下的所有文件, 加载mapper

但是mapper中.xml必须与接口名字一样

-->

<package name="com.ssm.demo2.mapper" />

注:这样配置必须满足二个条件就是mapper接口类与mapper映射文件(*.xml)要同名,并在同一个包下!

把resources下mybatis目录下的UserMapper.xml复制至com.ssm.demo2.mapper包下

并在mybatis_config.xml中注释掉

<!-- 加载mapper
-->

<!--
<mapper resource="mybatis/UserMapper.xml" /> -->

结构如下:

其他的文件无须改动,再运行,也ok!

现在SSM整合的第一个框架已搭建好!

有关详细的mybatis请自行查阅相关文章!此文章只是针对整合!

下面在引基础上,整合spring框架,最后再整合springmvc!!

SSM集成(一):Mybatis3测试的更多相关文章

  1. SSM集成

    SSM集成   Spring和各个框架的整合   Spring目前是JavaWeb开发中最终的框架,提供一站式服务,可以其他各个框架整合集成   Spring整合方案   SSH Ssh是早期的一种整 ...

  2. SSM手把手整合教程&测试事务

    自打来了博客园就一直在看帖,学到了很多知识,打算开始记录的学习到的知识点 今天我来写个整合SpringMVC4 spring4 mybatis3&测试spring事务的教程,如果有误之处,还请 ...

  3. SSM简单整合教程&测试事务

    自打来了博客园就一直在看帖,学到了很多知识,打算开始记录的学习到的知识点 今天我来写个整合SpringMVC4 spring4 mybatis3&测试spring事务的教程,如果有误之处,还请 ...

  4. ssm集成redis

    身在一个传统的IT公司,接触的新技术比较少,打算年后跳槽,所以抽空学了一下redis. 简单的redis测试,咱们这边就不讲了,现在主要讲讲ssm集成redis的过程,因为现在项目用的就是ssm的框架 ...

  5. MyBatis进阶讲解+ssm集成

    1.sql映射器Mapper MyBatis基于动态代理机制,让我们无需再编写Dao的实现. 传统Dao接口,现在名称统一以Mapper结尾,还有我们映射器配置文件要和映射器在同一个包. 1.1使用映 ...

  6. java:Mybatis框架3(二级缓存,延时和积极加载,SSI(Ibatis)集成,SSM集成)

    1.二级缓存: 需要导入二级缓存jar包: mybatis03: ehcache.xml: <ehcache xmlns:xsi="http://www.w3.org/2001/XML ...

  7. SSM集成FastJson

    FastJson Json数据格式回顾 什么是json JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript( ...

  8. (二) 关于配置travis-ci持续集成python pytest测试的相关记录

    接上篇 上篇只是非常官方的描述了一下travis-ci是包括了些什么部分会如何工作但是并没有深入介绍也没有写demo. 这里先贴上一个我已经测试好了的python_travis-ci的环境 https ...

  9. 回看《例说FPGA》---DDR2控制器集成与读写测试

    回看<例说FPGA> ---DDR2控制器集成与读写测试 1.DDR2 IP核的配置 需要弄清楚的选项主要有: PLL reference clock frequency Memory c ...

随机推荐

  1. sql server left 和right 函数

    参考文章:微信公众号文章 一直对sql中的left和right有误解,一直以为它是这样的. 执行这样一句: ) leftNum ) rightNum 出现的结果是这样的: 而我心中这样认为: 我认为只 ...

  2. [Tool] Open Live Writer 插件更新

    最新插件下载地址:Memento.OLW_V1.0.0.2.7z 零.历史更新记录 2016.11.24 1. 修正 cnblog 语法高亮中的 SQL.Perl 语法高亮异常 下载地址:Mement ...

  3. EC笔记:第三部分:16成对使用new和delete

    我们都知道,申请的资源,使用完毕后要释放.但是这个释放动作,一定要注意. 举个例子,很多人动态分配的资源,在使用之后,往往直接调用了delete,而不管申请资源的时候用的是new还是new[]. 如下 ...

  4. MySQL: Table 'mysql.plugin' doesn't exist的解决

    安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...

  5. 手游聚合SDK开发之远程开关---渠道登入白名单

    白名单有啥好说的呢?无非就是筛选登入,大家第一眼看到就是这个印象,白名单也是有文章的,弄的时机不同会给你带来很不错的收益,注意是收益.还是举例来说,游戏上线前渠道都会做一个预下载,一般提前1-2天,这 ...

  6. python学习笔记- 多线程(1)

    学习多线程首先先要理解线程和进程的关系. 进程 计算机的程序是储存在磁盘中的可执行的二进制文件,执行时把这些二进制文件加载到内存中,操作系统调用并交给处理器执行对应操作,进程是程序的一次执行过程,这是 ...

  7. SVG Path高级教程

    课程分为四个方面: 1. Path概述 2. 移动和直线命令 3. 弧线命令 4. 贝塞尔曲线命令 Path概述 <path> 标签用来定义路径,Path字符串是由命令及其参数组组成的字符 ...

  8. 调用sharepoint 2010 REST报版本过低

    问题描述: 写了一个webservice调用sharepoint REST,本机测试成功,部署到服务器上后报错 (System.Data.Services.Client.DataServiceQuer ...

  9. iOS之由身份证号返回性别

    该博文出自:http://www.cnblogs.com/yang-guang-girl/p/5683454.html - (void)viewDidLoad { [super viewDidLoad ...

  10. TiQuery

    TiQuery 是一个基于JQuery 的在Titanium上使用的 javascript 库 TiQuery 为TI 提供了很快捷的方法: // Utilities $.info('My messa ...