【思维导图】mybatis-12、与spring整合

合集下载

Spring精品教程资料:3.MyBatis与Spring的整合

Spring精品教程资料:3.MyBatis与Spring的整合
根据整合步骤实现Spring和MyBatis的整合 查询出全部供应商数据 直接注入SqlSessionTemplate实现
完成时间:20分钟
7/33
学员操作—根据名称查询供应商信息 练习 需求说明
在上一练习基础上增加按照供应商名称模糊查询供应商 信息的功能
要求:直接注入SqlSessionTemplate实现
MapperFactoryBean
MapperScannerConfigurer递归扫描基准包下所有接口,若它们 在SQL映射文件中定义过,则动态注册为MapperFactoryBean, 如此即可批量产生映射器实现类
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
分析 配置数据源 配置SqlSessionFactoryBean
使用SqlSessionTemplate实现数据库的操作
编写业务逻辑代码并测试
演示示例1:实现Spring对MyBatis的整合
6/33
学员操作—实现供应商表的查询操作 练习 需求说明
在超市订单系统中实现供应商表的查询操作
<property name="basePackage" value="cn.smbms.dao" />
</bean>
指定扫描的基准包
演示示例3:使用MapperScannerConfigurer注入映射器
11/33
小结
MapperScannerConfigurer 与@Autowired注解或@Resource注解配合 使用,自动创建映射器实现并注入给业务组件,能够最大限度地减 少DAO组件与业务组件的编码和配置工作

MyBatis思维导图

MyBatis思维导图

MyBatis思维导图1、初识框架技术2、搭建MyBatis环境3、掌握MyBatis的核⼼API4、掌握MyBatis的核⼼配置⽂件:主要⽤于配置数据库连接和MyBatis运⾏时所需的各种特性5、掌握SQL映射⽂件(或者使⽤⾃动⽣成SQL映射⽂件的插件)6、掌握MyBatis缓存7、Dao上级操作8、掌握动态SQL9、掌握MyBatis框架的优缺点和其使⽤场合--------------------------------------------------------------------------------------------------------------------------------------知识点详情-------------------------------------------------------------1、初识框架技术 1.1什么是框架 框架(Framework)是⼀个提供了可重⽤的公共结构的半成品,它成为构建新的应⽤程序提供了极⼤的便利,更提供了可重⽤的设计; 1.2当前的主流框架 1.2.1 Struts2: Struts2以Webwork设计思想为核⼼,吸收了Struts框架的部分优点,提供了⼀个更加整洁的基于MVC设计模式实现的Web应⽤程序框架。

它引⼊了⼏个新的框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置⽂件,贯穿整个框架的强⼤表达式语⾔,⽀持可重⽤的标签API等。

Struts2充分利⽤了从其他MVC框架学到的经验和教训,使整个框架更加清晰、灵活(引⼊了拦截器)。

1.2.2 Hibernate: Hibernate是⼀个优秀的持久化框架(ORM),负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的⼯作。

Hibernate通过简单配置和编码即可替代JDBC繁琐的程序代码。

1.2.3Spring: Spring是⼀个开源框架。

16.mybatis和spring整合-SqlSessionFactory配置

16.mybatis和spring整合-SqlSessionFactory配置
|--新建log4j.properties配置文件
log4j.rootCategory=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
yout=org.apache.log4j.PatternLayout
yout.ConversionPattern=[%5p] [%t] %c{2}:%L - %m%n
1、SqlSessionFactory配置:
在applicationContext.xml配置SqlSessionFactory和数据源。
mybatis和spring整合
整合思路:
需要spring通过单例的方式管理SqlSessionFactory。
spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(Spring和mybatis整合自动完成)
持久层的mapper、dao都需要由spring进行管理。
ername=root
jdbc.password=753951
dbcp.maxIdle=10
dbcp.maxTotal=20
jdbc.defaultAutoCommit=true
-->
<!-- 加载数据源properties配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- Connection Pooling Info -->
<property name="maxIdle" value="${dbcp.maxIdle}" />

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。

之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。

以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。

这次,先说说三大框架整合过程。

个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。

不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。

实践出真知。

(可通过图片水印查看博客地址)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。

它是为了解决企业应用开发的复杂性而创建的。

Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

然而,Spring的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。

mybatis整合spring

mybatis整合spring

mybatis整合springmybatis整合spring根据官方的说法,在ibatis3,也就是mybatis3问世之前,spring3的开发工作就已经完成了,所以spring3中还是没有对mybatis3的支持。

因此由mybatis社区自己开发了一个mybatis-spring用来满足mybatis用户整合spring的需求。

下面就将通过mybatis-spring来整合mybatis跟spring的用法做一个简单的介绍。

mapperfactorybean首先,我们需要从mybatis官网上下载mybatis-spring的jar包添加到我们项目的类路径下,当然也需要添加mybatis的相关jar包和spring的相关jar包。

我们知道在mybatis的所有操作都是基于一个sqlsession的,而sqlsession是由sqlsessionfactory来产生的,sqlsessionfactory又是由sqlsessionfactorybuilder来生成的。

但是mybatis-spring是基于sqlsessionfactorybean的。

在使用mybatis-spring的时候,我们也需要sqlsession,而且这个sqlsession是内嵌在程序中的,一般不需要我们直接访问。

sqlsession也是由sqlsessionfactory来产生的,但是mybatis-spring给我们封装了一个sqlsessionfactorybean,在这个bean里面还是通过sqlsessionfactorybuilder来建立对应的sqlsessionfactory,进而获取到对应的sqlsession。

通过sqlsessionfactorybean我们可以通过对其指定一些属性来提供mybatis的一些配置信息。

所以接下来我们需要在spring的applicationcontext配置文件中定义一个sqlsessionfactorybean。

mybatis与spring的整合配置说明

mybatis与spring的整合配置说明

mybatis是ibatis的升级版,spring也有自带mybatis的orm。

所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。

下面介绍3中方式1,只是用mybatis3。

2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory )。

3,使用ibatis2.3+spring(使用spring自带的ibatis)spring的orm包中只有ibatis,没有mybatis。

而mybatis和ibatis还是有些区别的,比如配置文件属性不同。

第一种方式(只使用mybatis):1)jar包:cglib-2.2.jarasm-3.1.jarmysql-connector-java-3.1.13.jarmybatis-3.0.5.jarjunit.jar2)mybatis配置文件:[html]view plaincopy1.<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//my//DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">2.<configuration>3.<!-- 参数设置 -->4.<settings>5.<!-- 这个配置使全局的映射器启用或禁用缓存 -->6.<setting name="cacheEnabled"value="true"/>7.<!-- 全局启用或禁用延迟加载。

当禁用时,所有关联对象都会即时加载 -->8.<setting name="lazyLoadingEnabled"value="true"/>9.<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。

第10章 MyBatis与Spring的整合[40页]

第10章 MyBatis与Spring的整合[40页]
作为Bean容器,Spring框架提供了IoC机制,可以接管所有组件的创建工作并进行 依赖管理,因而整合的主要工作就是把MyBatis框架使用中所涉及的核心组件配置 到Spring框架的容器中,再交给Spring框架来创建和管理。
具体来说,业务逻辑对象依赖基于MyBatis技术实现的DAO对象,其核心是获取 SqlSession实例。
第10章 MyBatis与Spring 的整合
Spring框架对MyBatis框架的整合思路
主讲内容
Speech content
Spring框架整合MyBatis框架的准备工作 实现Spring对MyBatis的框架整合 注入Mapper接口方式的开发整合 测试事务
Spring配置补充
Spring框架对MyBatis框架的整合思路
演示示例:实现Spring对MyBatis的整合
11
准备所需JAR包
要实现MyBatis与Spring的整合,很明显需要这两个框架的JAR包, 但是只使用这两个框架中所提供的JAR包是不够的,还需要其他的JAR包 来配合使用,整合时所需准备的JAR包具体如下。
1.Spring框架所需的JAR包
• aopalliance-1.0.jar。 • aspectjweaver-1.8.10.jar。 • spring-aop-3.2.18.RELEASE.jar。 • spring-aspects-3.2.18.RELEASE.jar。 • spring-beans-3.2.18.RELEASE.jar。 • spring-context-3.2.18.RELEASE.jar。 • spring-core-3.2.18.RELEASE.jar。 • spring-expression-3.2.18.RELEASE.jar。 • spring-jdbc-3.2.18.RELEASE.jar。 • spring-tx-3.2.18.RELEASE.jar。

Spring和MyBatis的整合

Spring和MyBatis的整合

Spring和MyBatis的整合1. Spring和各个框架的整合Spring⽬前是JavaWeb开发中最终的框架,提供⼀站式服务,可以其他各个框架整合集成Spring整合⽅案1.1. SSHssh是早期的⼀种整合⽅案Struts2 : Web层框架Spring :容器框架Hibernate :持久层框架1.2. SSM主流的项⽬架构的三⼤框架(相对其他框架⽽⾔,最优秀)SpringMVC : spring⾃⼰家的 Web层框架,spring的⼀个模块Spring :容器框架MyBatis :持久层框架2. Spring与MyBatis整合2.1. 集成思路实际开发,使⽤Maven项⽬,直接引⼊项项⽬在Maven仓库中的坐标即可学习阶段:⼿动导⼊jar包,从零开始集成(巩固基础知识)2.2. 创建java项⽬准备集成相关jar包完成项⽬层与层之间spring对象的创建和依赖关系的维护package cn.sxt.pojo;public class User {private Integer id;private String name;private String password;private Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", password=" + password + ", age=" + age + "]"; }public User(Integer id, String name, String password, Integer age) {super();this.id = id; = name;this.password = password;this.age = age;}public User() {super();// TODO Auto-generated constructor stub}}package cn.sxt.mapper;import java.util.List;import er;public interface UserMapper {int insert(User user);int deleteByPrimaryKey(Integer id);int updateByPrimaryKey(User user);User selectByPrimaryKey(Integer id);List<User> selectList();}<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd"><mapper namespace="erMapper"><insert id="insert" parameterType="User"keyColumn="id"keyProperty="id"useGeneratedKeys="true">insert into user (name,password,age)values(#{name},#{password},#{age}) </insert><!-- 单⾏查询<select resultType ="">查询功能的标签resultType : 返回结果的数据类型,和接⼝对应⽅法的返回类型必须⼀致--><select id="selectByPrimaryKey" parameterType="Integer" resultType="User"><!-- #{对象属性} ,主键理论上任何值都可以 #{abc},#{xxx},可以不⽤对象属性-->select * from user where id = #{id}</select><!-- 多⾏查询⽆论单⾏或者多⾏查询,返回的数据类型都是对应 pojo 对应的对象类型--><select id="selectList" resultType="User">select * from user</select><!-- 删除操作 --><delete id="deleteByPrimaryKey" parameterType="Integer">delete from user where id = #{id}</delete><!-- 修改操作 --><update id="updateByPrimaryKey" parameterType="User"><!-- 固定语义的sql语句 -->update user set name = #{name},password = #{password},age = #{age} where id = #{id} </update></mapper>package cn.sxt.service;import java.util.List;import er;public interface UserService {int insert(User user);int deleteByPrimaryKey(Integer id);int updateByPrimaryKey(User user);User selectByPrimaryKey(Integer id);List<User> selectList();}package cn.sxt.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import erMapper;import er;import erService;@Servicepublic class UserServiceImpl implements UserService {/** 问题1 : UserMapper是接⼝,如何创建对象?* 答:使⽤MyBatis的SqlSession 会话对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档