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. ASP.NET Core Kestrel部署HTTPS

    ASP.NET Core配置 Kestrel部署HTTPS.现在大部分网站已经部署HTTPS,大家对于安全越来越重视. 今天简单介绍一下ASP.NET Core 部署HTTPS,直接通过配置Kestr ...

  2. python 数据类型---列表使用之三

    1. 判断列表中是否存在一个元素: "in" 的使用 list = ['Frank', 99, 'is',78, 7,3,4,'smart'] print(99 in list) ...

  3. java基础知识 多线程

    package org.base.practise9; import org.junit.Test; import java.awt.event.WindowAdapter; import java. ...

  4. 25 highest paying companies: Which tech co outranks Google, Facebook and Microsoft?

    Tech companies dominate Glassdoor’s ranking of the highest paying companies in the U.S., snagging 20 ...

  5. 301和302 Http状态有啥区别?

    301和302 Http状态有啥区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently ...

  6. 【IOS开发笔记02】学生管理系统

    端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...

  7. 在View and Data API中更改指定元素的颜色

    大家在使用View and Data API开发过程中,经常会用到的就是改变某些元素的颜色已区别显示.比如根据某些属性做不同颜色的专题显示,或者用不同颜色表示施工进度,或者只是简单的以颜色变化来提醒用 ...

  8. Sqlite 存储自定义对象

    在iOS中如果想保存自定义对象,要让自定义对象实现NSCoding接口并实现方法-(id)initWithCoder:(NSCoder *)coder和-(void)encodeWithCoder:( ...

  9. Titanium.App.Properties 对象

    Titanium.App.Properties是用来管理键值对数据的一个很方便的对象.在保存数据的时候,在Ti.App.Properties.setString相对应的Key的值中设置你要保存的值即可 ...

  10. Newtonsoft.Json 自定义 解析协议

    在开发web api的时候 遇到一个要把string未赋值默认为null的情况改成默认为空字符串的需求 这种情况就需要自定义json序列话的 解析协议了 Newtonsoft.Json默认的解析协议是 ...