转载自http://blog.csdn.net/naruto_Mr/article/details/48239357

1.创建web工程,导入spring依赖包与mybatis依赖包,还需要mybatis-spring.jar,这是spring连接mybatis的桥梁.下载地址:http://mvnrepository.com/artifact/org.mybatis/mybatis-spring

2.配置文件

1)web.xml配置,指定spring配置文件名为config/spring-cfg.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3. xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7. <!-- spring入口 -->
  8. <!-- 自动加载spring配置文件WEB-INF/applicationContenxt.xml -->
  9. <listener>
  10. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  11. </listener>
  12. <!-- 修改spring配置文件路径 -->
  13. <context-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>WEB-INF/classes/config/spring-cfg.xml</param-value>
  16. </context-param>
  17. </web-app>

2)spring-cfg.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  9. http://www.springframework.org/schema/tx
  10. http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context-3.2.xsd">
  13. <import resource="classpath:config/spring-mybatis.xml"/>
  14. <!-- 开启注解注入 -->
  15. <context:annotation-config></context:annotation-config>
  16. <context:component-scan base-package="com.skymr.mybatis.dao"></context:component-scan>
  17. <context:component-scan base-package="com.skymr.mybatis.service"></context:component-scan>
  18. </beans>

引用mybatis的spring配置文件,开启自动扫描功能,扫描dao层与service层.

3)spring-mybatis.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  6. <!-- 数据源 -->
  7. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  8. <!-- 这个属性driverClassName为什么在DriverManagerDataSource及父类中找不到呢 -->
  9. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  10. <property name="url" value="jdbc:mysql://127.0.0.1:3306/website"/>
  11. <property name="username" value="root" />
  12. <property name="password" value="root" />
  13. </bean>
  14. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  15. <property name="basePackage" value="com.skymr.mybatis.dao"></property>
  16. <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
  17. </bean>
  18. <!-- sessionFactory配置 -->
  19. <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  20. <property name="dataSource" ref="dataSource" />
  21. <property name="mapperLocations" value="classpath:com/skymr/mybatis/mappers/*.xml"/>
  22. <property name="configLocation" value="classpath:config/mybatis-config.xml"/>
  23. </bean>
  24. </beans>

首先是配置数据源;

再配置了个MapperScannerConfigurer,这个是什么用的呢?

在Service的实现层中,要使用到dao层的实现层的实例,但是mybatis中是没有dao层实现层的啊,怎么注入到Service中呢,我想MapperScannerConfiger就是解决这个问题的,它是将mybatis自己对dao层的实例化后的实例注入到spring容器中,我们就可以取出后使用.

最后配置了SqlsessionFactory,指定mapper文件路径与mybatis的另一些配置.

3)mybatis-config.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <typeAliases>
  5. <!-- 别名配置,方便书写 -->
  6. <package name="com.skymr.mybatis.model"/>
  7. </typeAliases>
  8. </configuration>

只是定义别名而已.

3.分层

1).Model层

  1. package com.skymr.mybatis.model;
  2. public class User {
  3. private int id;
  4. private String userName;
  5. private String password;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getUserName() {
  13. return userName;
  14. }
  15. public void setUserName(String userName) {
  16. this.userName = userName;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. public String toString(){
  25. return id+"," + userName+","+password;
  26. }
  27. }

2)Dao层

  1. package com.skymr.mybatis.dao;
  2. import com.skymr.mybatis.model.User;
  3. public interface UserDao {
  4. public User login(String userName, String password);
  5. }

3)mapper层,UserMapper.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.skymr.mybatis.dao.UserDao">
  4. <select id="login" resultType="User">
  5. select * from mybatis_user where userName=#{param1} and password=#{param2}
  6. </select>
  7. </mapper>

4).Service层

  1. package com.skymr.mybatis.service;
  2. import com.skymr.mybatis.model.User;
  3. public interface UserService {
  4. public User login(String userName, String password);
  5. }
  1. package com.skymr.mybatis.service.impl;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Repository;
  4. import com.skymr.mybatis.dao.UserDao;
  5. import com.skymr.mybatis.model.User;
  6. import com.skymr.mybatis.service.UserService;
  7. @Repository("userService")
  8. public class UserServiceBean implements UserService{
  9. @Resource
  10. private UserDao userDao;
  11. public User login(String userName, String password) {
  12. return userDao.login(userName, password);
  13. }
  14. }

4.测试

    1. package com.skymr.mybatis.service;
    2. import org.junit.Test;
    3. import org.springframework.context.ApplicationContext;
    4. import org.springframework.context.support.ClassPathXmlApplicationContext;
    5. import com.skymr.mybatis.model.User;
    6. public class LoginTest {
    7. @Test
    8. public void loginTest(){
    9. ApplicationContext context= new ClassPathXmlApplicationContext("/config/spring-cfg.xml");
    10. UserService service =(UserService) context.getBean("userService");
    11. User user = service.login("aaaa", "aaaa");
    12. System.out.println(user);
    13. }
    14. }

mybatis学习笔记 spring与mybatis整合的更多相关文章

  1. mybatis 学习笔记 -详解mybatis 及实例demo

    快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...

  2. MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...

  3. SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...

  4. MyBatis学习笔记(3)—— 利用mybatis灌入假数据

    由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析.正好最近自己学习了mybatis .因此使用mybatis 配置一个select.insert 的简单操作语句,用于灌入 ...

  5. MyBatis学习笔记1--初识MyBatis

    我也是初学者,写博客只是想把自己的整个思路整理一下,有不对或者不好的地方,请大家多多指正. 1.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...

  6. MyBatis学习笔记(三)——优化MyBatis配置文件中的配置

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的 ...

  7. 1.1(Mybatis学习笔记)初识Mybatis

    一.Mybatis下载与使用 下载地址:https://github.com/mybatis/mybatis-3/releases 下载后解压目录: 需要将lib下的jar包和mybatid-x-x- ...

  8. Mybatis学习笔记-第一个Mybatis程序

    思路 搭建环境 搭建数据库(略) CREATE DDATABASE CREATE TABLE INSERT VALUES 新建项目 普通Maven项目 删除src文件夹 --> 建立父工程 导入 ...

  9. Mybatis学习笔记导航

    Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...

随机推荐

  1. ethtool常见命令使用方法

    查看网卡信息:ethtool DEVNAME Settings for eth6: Supported ports: [ FIBRE ] #可以看出网卡类型:光口或电口 Supported link ...

  2. 编写实现字符串拷贝函数strcpy()完整版

    有个题目编程实现字符串拷贝函数strcpy(),很多人往往很快就写出下面这个代码. void strcpy( char *strDest,char *strSrc ) { while(( *strDe ...

  3. PS更换证件照颜色

    PS是我们经常使用的设计软件,在生活中使用的范围也很广,但是对于普通的用户来说,也就是平时给自己的照片美化一下,还有就是做一些证件照.今天和大家分享的是更改证件照的颜色,网上可能有很多,但是个人感觉都 ...

  4. Jar包进行反编译,修改后重新打包

    在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用 ...

  5. 转载 iir直接i型和直接ii型滤波器

    1.IIR滤波器构造           之前在介绍FIR滤波器的时候,我们提到过,IIR滤波器的单位冲击响应是无限的!用差分方程来表达一个滤波器,应该是下式这个样子的.                ...

  6. BZOJ5337 [TJOI2018]str

    题意 小豆参加了生物实验室.在实验室里,他主要研究蛋臼质.他现在研究的蛋臼质是由k个氨基酸按一定顺序构成的.每一个氨基酸都可能有a种碱基序 列si_j 构成.现在小豆有一个碱基串s,小豆想知道在这个碱 ...

  7. unity drawcall测试

    unity引擎影响drawcall的元素(使用Quad和Cube对比测试) 1.相机的background(没有渲染元素区域的颜色),4Verts.2Tris.1SetPass calls:      ...

  8. Delphi从Internet下载文件

    Delphi从Internet下载文件   今天在做拍卖系统的时候,因考虑到网络状况问题,需要将拍品所有信息下载到本机,包括拍品图片,因此需要实现从Internet下载文件的功能.      下面是代 ...

  9. fuser

    fuser 命令,查看正在被占用的文件:

  10. 事务之四:Spring事务--原理

    一.Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: ...