Mybatis与Spring整合之配置文件方式
Mybatis与Spring整合之配置文件
案例制作步骤——基础准备工作
⚫ 环境准备
- 导入Spring坐标,MyBatis坐标,MySQL坐标,Druid坐标
⚫ 业务类与接口准备 - 创建数据库表,并制作相应的实体类
- 定义业务层接口与数据层接口
- 在业务层调用数据层接口,并实现业务方法的调用
⚫ 基础配置文件 - jdbc.properties
- MyBatis映射配置文件
⚫ 整合前基础准备工作 - spring配置文件,加上context命名空间,用于加载properties文件
- 开启加载properties文件
- 配置数据源druid(备用)
- 定义service层bean,注入dao层bean
- dao的bean无需定义,使用代理自动生成
整合Spring与Mybatis
1. 导入Spring坐标,MyBatis坐标,MySQL坐标,Druid坐标
<?xml version="1.0" encoding="UTF-8"?>
<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.fs</groupId><artifactId>day01_spring_ioc_mybatis</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.9.RELEASE</version></dependency><!-- jdbc--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><!-- spring整合mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.1</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency>
<!-- mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>
<!--druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.20</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
</project>
2. 创建数据库表,并制作相应的实体类
mysql数据库表
实体类
package com.fs.pojo;import lombok.Data;@Data
public class Account {private Integer id;private String name;private Double money;
}
3. 定义业务层接口与数据层接口
数据层接口
package com.fs.dao;import com.fs.pojo.Account;
import org.apache.ibatis.annotations.*;import java.util.List;public interface AccountDao {@Select("select * from account")List<Account> findAll();//查询所有
}
业务层接口
package com.fs.service;import com.fs.pojo.Account;import java.util.List;public interface AccountService {List<Account> findAll();
}
4. 在业务层调用数据层接口,并实现业务方法的调用
package com.fs.service.impl;import com.fs.dao.AccountDao;
import com.fs.pojo.Account;
import com.fs.service.AccountService;import java.util.List;public class AccountServiceImpl implements AccountService {//在业务层调用数据层接口private AccountDao accountDao;//提供DI依耐注入的set方法public void setAccountDao(AccountDao accountDao) {this.accountDao = accountDao;}//并实现业务方法的调用@Overridepublic List<Account> findAll() {return accountDao.findAll();}
}
5. jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.93.132:3306/test
jdbc.username=root
jdbc.password=root
6. MyBatis映射配置文件
我这里使用的MyBatis的注解开发,所以没有使用这个映射配置文件
7. spring配置文件,整合MyBatis(xml中有详细解释)
spring核心配置文件
<?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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!-- 引入properties--><context:property-placeholder location="classpath:jdbc.properties"/><!-- 整合druid,把DruidDataSource交给spring管理--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!-- 整合MyBatis--><!-- 配置MyBatis的会话工厂类 mybatis.spring 下的SqlSessionFactoryBean配置的sqlSessionFactory得到SqlSession,然后MyBatis从spring中拿到SqlSession.getMapper()去动态代理dao--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 给MyBatis配置链接池,依耐注入--><property name="dataSource" ref="dataSource"/>
<!-- 配置别名扫描的包,被扫描的包下的类起的别名就是类名首字母小写,用于mapper.xml文件中使用--><property name="typeAliasesPackage" value="com.fs.pojo"/></bean><!--配置MyBatis扫描dao的包,让MyBatis动态代理生成这个dao的实现类,并交给ioc管理mybatis-spring这个包下MapperScannerConfigurer提供了spring于MyBatis的整合--><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 告诉MyBatis我dao在哪里.然后MyBatis将这个dao实现,然后给spring管理--><property name="basePackage" value="com.fs.dao"/></bean><!-- 把业务类 AccountServiceImpl 交给ioc管理 --><bean id="accountServiceImpl" class="com.fs.service.impl.AccountServiceImpl">
<!-- 依耐注入dao,这个dao被MyBatis动态代理实现后被spring存放在ioc容器中--><property name="accountDao" ref="accountDao"/></bean>
</beans>
测试方法
@Testpublic void findAll() {//创建ioc容器ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");//从容器中获取accountServiceImplAccountServiceImpl accountServiceImpl = (AccountServiceImpl) applicationContext.getBean("accountServiceImpl");//调用方法,查询结果List<Account> all = accountServiceImpl.findAll();System.out.println(all);}
执行结果
Mybatis与Spring整合之配置文件方式相关推荐
- mybatis和spring整合时这个报错,应该这样解决!
01 问题描述 今天在写mybatis和spring整合的时候,出现了个问题,其实也没有多难,就是自己没有仔细看,特此记录一下. 报错问题如下: org.springframework.beans.f ...
- 【MyBatis框架】mybatis和spring整合
spring和mybatis整合 1.整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactor ...
- Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合
1.整合思路 需要Spring通过单例方式管理SqlSessionFactory. Spring和MyBatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(Sp ...
- Mybatis 与Spring整合及原理
Mybatis 与Spring原理分析 http://www.mybatis.org/spring/zh/index.html 这里我们以传统的Spring 为例,因为配置更直观,在Spring 中使 ...
- Mybatis和Spring整合
一.dao接口+实现类的方式 1.先创建好整合工程结构 2.对于Spring和Mybatis 整合,我们先从数据库开始,即先创建一张简单的数据表,Sql如下 CREATE TABLE `t_user` ...
- spring boot mybatis 整合_MyBatis学习:MyBatis和Spring整合
1. 整合的工程结构 首先我们来看下整合之后的工程结构是什么样的. 2. 配置文件 在于spring整合之前,mybatis都是自己管理数据源的,然后sqlSessionFactory是我们自己去注入 ...
- 【Spring】【MyBatis】Spring整合MyBatis01
这是一个Spring整合MyBatis的第一次尝试,对于文件的命名和存放位置,也许有些不太合理,请见谅 需要数据库的请查阅[Mybatis]学习笔记01:连接数据库,实现增删改 - 萌狼蓝天 本文档使 ...
- MyBatis - 6.Spring整合MyBatis
1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...
- MyBatis与Spring整合
1. 使用Spring的数据源代替MyBatis的配置 <bean id="dataSource" class="org.springframework.jdbc. ...
最新文章
- LeetCode简单题之丢失的数字
- 黎明觉醒火种测试服务器维护,黎明觉醒火种测试什么时候上线 黎明觉醒火种测试资格获取方式(图文)...
- 使用Oauth2实现微服务的安全保护
- VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号、逗号、双引号
- php 502.88,Nginx+PHP-FPM 访问出现 502错误
- eclipse快捷键Alt + /
- 知识图谱最新权威综述论文解读:知识表示学习部分
- ax200网卡支持Linux吗,Deepin 20和Win10双系统中AX200网卡不能用的请关闭快速启动
- win10切换桌面_总说win7最好用,那是你还不知道win10系统,竟有这些强大的功能!...
- Python笔记002-列表推导式
- 好戏连台,BCH独领风骚
- 什么是事件的三要素?
- 编程经历的一些思考——一个工作4年老鸟的职业思考(转载)
- xci转nsp工具_再谈xci、nsz、nsp
- centos7安装abaqus2020
- Selenium-WEB自动化学习笔记--更新ing
- AndroidStudio
- 超体分享 | 迭代思维:你感觉原地踏步,只是因为你想一步到位
- 优达学城 深度学习 任务1
- 2020年产品经理职业发展路径