Sping和MyBatis的整合
作为Bean容器,Sping框架提供了Ioc机制,可以接管所有组件的创建工作进行依赖管理,因而整合的主要工作就是把MyBatis框架使用中涉及的核心组件配置到Sping容器中,交给Sping来创建和管理。
业务逻辑对象依赖于MyBatis技术实现的Dao对象,核心是获取SqlSession实例。而SqlSession是通过SqlSessionFactoryBen来获取。
Sping 和MyBatis整合方法:
在整合是用到MyBatis-Sping-1.2.0jar
<!--Mybatis+Spring整合--><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.0</version></dependency>
1、采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。
spring-mybatis.xml:
例:图书添加。
建立数据库:
创建book实体:
private int id;private String bookname;private int bookprice; public int getId() { return id;} public void setId(int id) { this.id = id;} public String getBookname() { return bookname;} public void setBookname(String bookname) { this.bookname = bookname;} public int getBookprice() { return bookprice;} public void setBookprice(int bookprice) { this.bookprice = bookprice;} 创建IBookDAO
public interface IBookDAO { public int addbook(book book);} 创建IBookDAO.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"><!--映射文件的根节点 namespace--><mapper namespace="cn.happy.day16ssm.dao.IBookDAO"> <insert id="addbook"> insert into bookshop(bookname,bookprice) values(#{bookname},#{bookprice}) </insert></mapper>service层:
IBookService:
public interface IBookService { public int addbook(book book);}
BookServiceimpl:
public class BookServiceimpl implements IBookService { private IBookDAO dao; public IBookDAO getDao() { return dao; } public void setDao(IBookDAO dao) { this.dao = dao; } public int addbook(book book) { return dao.addbook(book); }}JDBC的四大属性:
jdbc.url=jdbc:mysql:///bookshopjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.username=rootjdbc.password=MyBatis的配置文件:
<?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> <!--别名的设置--> <typeAliases> <package name="cn.happy.day16ssm.entity"></package> </typeAliases> <!--管理小配置--></configuration>配置文件:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property value="classpath:jdbc.properties" name="location"></property> </bean> <!--阿里数据源--> <!--阿里数据源 不想进入阿里的程序员,不是好厨师--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="url" value="${jdbc.url}"></property> <property name="driverClassName" value="${jdbc.driverClassName}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!--将Mybatis SqlsessionFactory--> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!--bookDAO 根据工厂生成session--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" > <property name="basePackage" value="cn.happy.day16ssm.dao"></property> </bean> <!--4.service--> <bean id="bookService" class="cn.happy.day16ssm.service.BookServiceimpl"> <property name="dao" ref="IBookDAO"></property> </bean> <!--平台事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--注入什么东西 事务对象的来源,一定是Connection --> <property name="dataSource" ref="dataSource"></property> </bean> <!--方式三:Aspectj AOP 方式管理事物--><tx:advice id="txadvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="addbook" isolation="DEFAULT" propagation="REQUIRED" /> </tx:attributes></tx:advice><aop:config> <aop:pointcut id="mypoint" expression="execution(* *..day16ssm.service.*.*(..))"></aop:pointcut> <aop:advisor advice-ref="txadvice" pointcut-ref="mypoint"></aop:advisor></aop:config></beans> 测试类:
public class test16ssm {@Test public void t01(){ ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContextStockday16ssm.xml"); IBookService service=(IBookService)ac.getBean("bookService"); book book=new book(); book.setBookname("三国演义"); book.setBookprice(200); service.addbook(book); }} 运行结果:
运行结果:
转载于:https://www.cnblogs.com/lsj0404/p/7704725.html
Sping和MyBatis的整合相关推荐
- 1.springMVC+spring+Mybatis的整合思路
视频教程地址:http://edu.51cto.com/sd/2cfc2 SSM整合的过程:就是把一些东西交给spring管理,也就是添加配置文件的一个过程.那么有哪些东西我们要交给spring管理呢 ...
- SSM框架Spring+SpringMVC+MyBatis——详细整合教程
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参 ...
- 孙宇java_[JAVA] 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程...
资源介绍 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程 ===============课程目录===== ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)MockMvc服务端的单元测试
日常啰嗦 承接前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例>,已经讲解了dao层和service层的单元测试,还有控制器这层也不能 ...
- 基于Maven+SpringMVC+Spring+MyBatis+Layui整合框架,超详细的SSM整合❤️
人生有太多不如意,我们要学会去努力 参考文档:layUI文档:spring家族文档:mybatis文档 前言:SSM 整合 整合的思路是: 先创建spring框架 通过spring整合spring m ...
- springboot+mybatis+redis整合
springBoot+mybatis+redis整合,这里搭建一个简单的框架是为了记录怎么使用redis做缓存. 一.构建一个springboot的maven项目,目录结构如下: 二.在pom.xml ...
- springboot mybatis easyui 整合的一个小demo
springboot mybatis easyui 整合的一个小demo 这是最终完成界面 话不多说 开整! 这是项目结构 数据库 表结构和数据库 (有点乱 之前本来是个正经图书表的 = =.) /* ...
- spring + mybatis + c3p0 整合(配置篇)
摘要 近期由于项目使用mybatis出现了数据源阻塞,导致应用程序假死,服务超时引发严重后果,故此下定决心重新梳理一下spring+mybatis+c3p0整合问题,主要分为:配置.源码(通过一次数据 ...
最新文章
- Visual C#使用DirectX实现视频播放
- 底层原理_Spring框架底层原理IoC
- http接口测试工具——RESTClient
- 【省选2020A卷】作业题【矩阵树】【扩域】【莫比乌斯反演】
- 计算机基础是高校必修课,高校计算机基础教育教学方式改革
- @Scheduled定时任务不生效的原因
- Herev Falciani推出新的加密货币和区块链项目
- 单片机编程软件很简单(一),keil单片机编程软件忽略警告+全局替换
- 手动修改Icon图标的颜色深度(张佩)
- 高数篇:高等数学全目录
- JEB工具介绍及使用
- Photoshop插件-删除中间调通道蒙板-脚本开发-PS插件
- win7不显示移动硬盘_小巧便携,自动备份-希捷Backup Plus Slim移动硬盘让资料更安全...
- 看完这篇 Linux 的基本操作你就会了!
- CSS 零基础到实战(05)布局、盒子模型、弹性盒子【前端就业课 第二阶段】
- 解决破解版matlab2018a打开示例或者帮助需要登录账号或者需要输入激活码问题
- CVPR 2020 论文大盘点-图像修复Inpainting篇
- php投影,使用 CSS 3 制作长投影
- springboot 处理put请求参数
- 【TS中的面向对象】