Mybatis与Spring整合之配置文件

案例制作步骤——基础准备工作

⚫ 环境准备

  1. 导入Spring坐标,MyBatis坐标,MySQL坐标,Druid坐标
    ⚫ 业务类与接口准备
  2. 创建数据库表,并制作相应的实体类
  3. 定义业务层接口与数据层接口
  4. 在业务层调用数据层接口,并实现业务方法的调用
    ⚫ 基础配置文件
  5. jdbc.properties
  6. MyBatis映射配置文件
    ⚫ 整合前基础准备工作
  7. spring配置文件,加上context命名空间,用于加载properties文件
  8. 开启加载properties文件
  9. 配置数据源druid(备用)
  10. 定义service层bean,注入dao层bean
  11. 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整合之配置文件方式相关推荐

  1. mybatis和spring整合时这个报错,应该这样解决!

    01 问题描述 今天在写mybatis和spring整合的时候,出现了个问题,其实也没有多难,就是自己没有仔细看,特此记录一下. 报错问题如下: org.springframework.beans.f ...

  2. 【MyBatis框架】mybatis和spring整合

    spring和mybatis整合 1.整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactor ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合

    1.整合思路 需要Spring通过单例方式管理SqlSessionFactory. Spring和MyBatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(Sp ...

  4. Mybatis 与Spring整合及原理

    Mybatis 与Spring原理分析 http://www.mybatis.org/spring/zh/index.html 这里我们以传统的Spring 为例,因为配置更直观,在Spring 中使 ...

  5. Mybatis和Spring整合

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

  6. spring boot mybatis 整合_MyBatis学习:MyBatis和Spring整合

    1. 整合的工程结构 首先我们来看下整合之后的工程结构是什么样的. 2. 配置文件 在于spring整合之前,mybatis都是自己管理数据源的,然后sqlSessionFactory是我们自己去注入 ...

  7. 【Spring】【MyBatis】Spring整合MyBatis01

    这是一个Spring整合MyBatis的第一次尝试,对于文件的命名和存放位置,也许有些不太合理,请见谅 需要数据库的请查阅[Mybatis]学习笔记01:连接数据库,实现增删改 - 萌狼蓝天 本文档使 ...

  8. MyBatis - 6.Spring整合MyBatis

    1.查看不同MyBatis版本整合Spring时使用的适配包: http://www.mybatis.org/spring/ 2.下载整合适配包 https://github.com/mybatis/ ...

  9. MyBatis与Spring整合

    1. 使用Spring的数据源代替MyBatis的配置 <bean id="dataSource" class="org.springframework.jdbc. ...

最新文章

  1. LeetCode简单题之丢失的数字
  2. 黎明觉醒火种测试服务器维护,黎明觉醒火种测试什么时候上线 黎明觉醒火种测试资格获取方式(图文)...
  3. 使用Oauth2实现微服务的安全保护
  4. VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号、逗号、双引号
  5. php 502.88,Nginx+PHP-FPM 访问出现 502错误
  6. eclipse快捷键Alt + /
  7. 知识图谱最新权威综述论文解读:知识表示学习部分
  8. ax200网卡支持Linux吗,Deepin 20和Win10双系统中AX200网卡不能用的请关闭快速启动
  9. win10切换桌面_总说win7最好用,那是你还不知道win10系统,竟有这些强大的功能!...
  10. Python笔记002-列表推导式
  11. 好戏连台,BCH独领风骚
  12. 什么是事件的三要素?
  13. 编程经历的一些思考——一个工作4年老鸟的职业思考(转载)
  14. xci转nsp工具_再谈xci、nsz、nsp
  15. centos7安装abaqus2020
  16. Selenium-WEB自动化学习笔记--更新ing
  17. AndroidStudio
  18. 超体分享 | 迭代思维:你感觉原地踏步,只是因为你想一步到位
  19. 优达学城 深度学习 任务1
  20. 2020年产品经理职业发展路径

热门文章

  1. 【FFmpeg】FFmpeg常用基本命令(转载)
  2. ubuntu 12.04 配置LAMP
  3. Err:query must begin with SELECT or FROM
  4. Vue 新手学习笔记:vue-element-admin 之安装,配置及入门开发
  5. Java并发学习之六——等待线程的终结
  6. 你不得不掌握的thinkphp5
  7. 【Java每日一题】20170113
  8. Front End Developer Questions 前端开发人员问题(三)JavaScript部分
  9. Eclipse自动代码补全
  10. HTML5 Canvas 自定义笔刷