1、查看不同MyBatis版本整合Spring时使用的适配包; http://www.mybatis.org/spring/
2、下载整合适配包
https://github.com/mybatis/spring/releases
• 3、官方整合示例,jpetstore
https://github.com/mybatis/jpetstore-6

MyBatis-Spring MyBatis Spring
1.0.0 或 1.0.1 3.0.1 到 3.0.5 3.0.0 或以上
1.0.2 3.0.6 3.0.0 或以上
1.1.0 3.1.0 或以上 3.0.0 或以上

Mybatis整合Spring包
mybatis-spring-1.3.2.jar

1.整合Mybatis和Spring配置

结构

1.1 类

com.tangge.bean.employee.java

package com.tangge.bean;import java.io.Serializable;public class employee implements Serializable{private int id;private String lastName;private String email;private String  gender;private deptment dept;public employee() {}public employee(int id, String lastName, String email, String gender) {this.id = id;this.lastName = lastName;this.email = email;this.gender = gender;}public employee(String lastName, String email, String gender) {this.lastName = lastName;this.email = email;this.gender = gender;}public deptment getDept() {return dept;}public void setDept(deptment dept) {this.dept = dept;}@Overridepublic String toString() {return "employee{" +"id=" + id +", lastName='" + lastName + '\'' +", email='" + email + '\'' +", gender=" + gender +", dept=" + dept +'}';}public int getId() {return id;}public String getLastName() {return lastName;}public String getEmail() {return email;}public String getGender() {return gender;}public void setLastName(String lastName) {this.lastName = lastName;}public void setEmail(String email) {this.email = email;}public void setGender(String gender) {this.gender = gender;}}

1.2 接口

com.tangge.dao.employeeMapper.java

public interface employeeMapper {public List<employee> getEmployees();
}

1.3 服务层

com.tangge.service.employeeService.java

package com.tangge.service;import com.tangge.dao.employeeMapper;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.tangge.bean.employee;@Service
public class employeeService {@Autowiredprivate employeeMapper employeeMapper;public List<employee> getemps(){return employeeMapper.getEmployees();}
}

1.4 mapper 配置XML

employeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
namespace:命名空间,指定为接口的全类名
-->
<mapper namespace="com.tangge.dao.employeeMapper"><!--<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>--><select id="getEmployees" resultType="com.tangge.bean.employee">select `id`,  `last_name`  lastName,  `gender`,  `email` from tbl_employee</select>
</mapper>

1.5 mybatis 简单配置 XML

mybatis-config.xml 只留下setting等一些简单配置

<?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="logImpl" value="LOG4J"/><setting name="jdbcTypeForNull" value="NULL"/><!--显示指定每个我们需要更改的值,即使他是默认的。防止版本更迭带来的问题--><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/><!--<setting name="mapUnderscoreToCamelCase" value="true"></setting>--></settings><databaseIdProvider type="DB_VENDOR"><property name="SQL Server" value="sqlserver"/><property name="MySQL" value="mysql"/><property name="DB2" value="db2"/><property name="Oracle" value="oracle"/></databaseIdProvider></configuration>

1.6 * 最重要的spring配置

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:tx="http://www.springframework.org/schema/tx"xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://mybatis.org/schema/mybatis-springhttp://mybatis.org/schema/mybatis-spring.xsd"><!--指定Spring希望控制所有业务逻辑组件:扫描包--><context:component-scan base-package="com.tangge"></context:component-scan><!--Spring控制业务逻辑。数据源。事务控制。AOP--><!--(1)数据源:   引用外部文件db.properties --><context:property-placeholder location="classpath:tangge/db.properties"/><!--配置jdbc--><bean id="datasource" class="org.apache.commons.dbcp2.BasicDataSource"><property name="driverClassName" value="${drivername}"></property><property name="url" value="${url}"></property><property name="username" value="${user}"></property><property name="password" value="${pass}"></property></bean><!--事务管理--><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="datasource"></property></bean><!--启用事务注解 http://www.springframework.org/schema/tx--><!--http://www.springframework.org/schema/tx/spring-tx.xsd--><tx:annotation-driven transaction-manager="transactionManager"/><!--(2)整合mybatis目的:1.spring管理所有组件,mapper的实现类2.spring管理事务,spring声明式事务--><!--(2.1)创建 SqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="datasource"/><!--全局配置文件位置--><property name="configLocation" value="classpath:tangge/mybatis-config.xml"></property><!--指定 mapper 文件位置--><property name="mapperLocations" value="classpath:tangge/mapper/*.xml"></property></bean><!--(2.2)扫描所有mapper,自动注入base-package:指定包下所有的mapper接口实现自动扫描并加入到ioc容器中--><!--<mybatis-spring:scan base-package="com.tangge.dao" />--><!--第2个写法--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.tangge.dao" /></bean></beans>

---->【测试】:

public class SpringTest {public static void main(String[] args) {SpringTest test = new SpringTest();test.getFirstLevelCache();}public void getFirstLevelCache() {ApplicationContext applicationContext =new ClassPathXmlApplicationContext("classpath:tangge/applicationContext.xml");employeeService  service = applicationContext.getBean(employeeService.class);List<employee> list = service.getemps();System.out.println(list);}}

2.对应关系图

3.问题

java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException

一:jar包未加载完整。

二:Eclipse/idea 运行JVM内存过小,调整JVM内存。

解决:
Eclipse:
在Window->Preferences中,选择Java->Installed JREs,修改已配置的JDK。

配置Default VM arguments即可。

-Xmx512M -Xms512M -XX:MaxPermSize=256M-Xss512K
https://blog.csdn.net/u013355724/article/details/52222463

IDEA:
idea.exe.vmoptions
idea64.exe.vmoptions
修改1024,两个

转载于:https://www.cnblogs.com/tangge/p/9558817.html

MyBatis - 6.Spring整合MyBatis相关推荐

  1. 【Java从0到架构师】Spring - 整合 MyBatis

    整合 MyBatis 整合 MyBatis - 依赖 整合 MyBatis - 数据源 整合 MyBatis - SqlSessionFactoryBean 整合 MyBatis - MapperSc ...

  2. spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试

    引子:spring整合mybatis.因为,我们看完(我就是这样的)spring和mybatis之后,本想自己写一个小小的项目,以便加深理解,但是我发现在spring中整合mybatis并不是一件容易 ...

  3. Mybatis和Spring整合

    一.dao接口+实现类的方式 1.先创建好整合工程结构 2.对于Spring和Mybatis 整合,我们先从数据库开始,即先创建一张简单的数据表,Sql如下 CREATE TABLE `t_user` ...

  4. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)

    http://blog.csdn.net/qq598535550/article/details/51703190 二.Spring整合mybatis其实是在mybatis的基础上实现Spring框架 ...

  5. SSM之二(Spring整合Mybatis)

    项目与外界交互大概过程如下图: 一般过程是: 前端发送请求,查询数据.增加数据.修改数据.删除数据 中间件经过处理后,对数据发送请求 数据库返回数据,中间件再对数据处理 中间件响应前端请求 上一节关注 ...

  6. Spring整合Mybatis之注解方式,(注解整合Junit)

    Spring整合Mybatis之注解方式 我有一篇博客详细写了我自己使用xml的方法Spring整合MyBatis,现在我就把核心配置文件中的每个bean的配置使用注解的方式实现 注解整合MyBati ...

  7. Mybatis与Spring整合之配置文件方式

    Mybatis与Spring整合之配置文件 案例制作步骤--基础准备工作 ⚫ 环境准备 导入Spring坐标,MyBatis坐标,MySQL坐标,Druid坐标 ⚫ 业务类与接口准备 创建数据库表,并 ...

  8. spring整合mybatis基于注解

    数据库 /* Navicat MySQL Data Transfer Source Server         : mysql Source Server Version : 50549 Sourc ...

  9. spring整合mybatis基于xml配置

    数据库 /* Navicat MySQL Data Transfer Source Server         : mysql Source Server Version : 50549 Sourc ...

最新文章

  1. linux c内核开发,嵌入式uClinux的内核结构和开发环境
  2. mongodb学习参考博文
  3. ARKit从入门到精通(11)-ARKit开发常见问题及解决方案
  4. P1579哥德巴赫猜想
  5. 颜宁:当科学家是幸福的
  6. JQuery EasyUI入门
  7. but was actually of type [com.sun.proxy.$Proxy13]
  8. C++primer 9.5.5节练习
  9. 如何获取jar包的在执行机上面的路径
  10. 字和字节和位和16进制数的关系
  11. CMakeLists.txt是什么
  12. atitit.基于http json api 接口设计 最佳实践 总结o7
  13. ffmpeg rtmp 不清晰_SRS流媒体服务器之RTMP协议分析(2)
  14. 添加内核驱动模块(5)(mydriver.c+ Konfig+Makefile )
  15. 5G时代传统室内覆盖方案迎挑战,融合室分系统应运而生
  16. Win10自动更新永久关闭,有效的Win10强制更新关闭方法,禁止windows10自动更新,禁止update medic service ,win10显示更新并关机没有单独的关机按钮
  17. table中填写数据并批量增加
  18. 如何去掉网格线及网格区域颜色
  19. 智能汽车如何联接未来?岳麓峰会亮出“长沙梯度”
  20. 潮水退去 你还是那个让HR离不开的猎头吗

热门文章

  1. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令
  2. 小白给小白详解维特比算法(二)
  3. glove 安装错误
  4. pytorch记录:seq2seq例子看看这torch怎么玩的
  5. 自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR)
  6. 扩展LLVM:添加指令、内部函数、类型等
  7. Android进程间通信的方式
  8. 2021年大数据Flink(二十六):​​​​​​​State代码示例
  9. php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
  10. 【嵌入式】从STM32F103ZET6移植到STM32F103RCT6的流程