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. ionic2+angular2中踩的那些坑

    好久没写什么东西了,最近在做一个ionic2的小东西,遇到了不少问题,也记录一下,避免后来的同学走弯路. 之前写过一篇使用VS2015开发ionic1的文章,但自己还没摸清门道,本来也是感兴趣就学习了 ...

  2. 设计模式(十四)模板方法模式(Template Pattern)

    一.引言 提到模板,大家肯定不免想到生活中的“简历模板”.“论文模板”.“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简 ...

  3. iPhone开发学习

    Xcode6中怎么添加空工程模板  NSBundle 使用(程序的资源)     本地存储数据的简单方式:NSUserDefaults UIApplication隐藏statusBarStyle    ...

  4. JDBC 制作简单的登录验证

    两种方法: 一.直接拼接到SQL语句 public static void main(String[] args) throws Exception{ //输入账号密码 Scanner sc = ne ...

  5. servlet开发中遇到的问题集合

    问题1: servlet插入数据库时中文会乱码. 解决方法:在数据库连接地址最后增加两个转码参数(?useUnicode=true&characterEncoding=utf8) url=jd ...

  6. Linux设置开机启动

    开机启动 解决服务器重启,比如断点,导致服务没有启动的烦恼   1.整理机器上面运行的服务,编些成sh脚本,文件为:/home/rc/exec.sh #加载环境变量 source /etc/profi ...

  7. C3p0连接池配置

    在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)   ②连接数据库(Connection co ...

  8. 阿里云添加路由的Windows批处理文件

    一段很好的学习bat程序的示例代码,如下: @echo off route print -4 "10.0.0.0" | find "10.0.0.0" > ...

  9. Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)

    Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用) 1.1. Keyword1 1.2. 前言1 2. Java项目使用.Net的aspx页面view1 ...

  10. dubbo连接zookeeper注册中心因为断网导致线程无限等待问题【转】

    最近维护的系统切换了网络环境,由联通换成了电信网络,因为某些过滤规则导致系统连不上zookeeper服务器(应用系统机器在深圳,网络为电信线路,zookeeper服务器在北京,网络为联通线路),因为我 ...