上一篇讲述了什么是Spring Boot、如何创建Sping Boot项目以及如何通过配置修改端口号;

本篇将讲述Spring Boot与Mybatis的整合过程。

一、添加mybatis以及mysql数据库驱动的依赖

在pom.xml文件添加如下内容:

     <!--mysql数据库连接驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--mybatis支持SpringBoot包--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency>


二、配置mysql数据源和mybatis映射mapper文件路径


mybatis映射mapper文件路径默认在resources目录下,因此配置的classpath:mappers/*.xml,

意思就是【resources/mappers】下的所有xml文件


三、编写接口访问数据库

3.1接口目录结构

3.2 controller层:注解@RestController已经组合了SpringMVC的@Controller注解,使之成为控制器

package com.xft.xftbase.actor.controller;import com.xft.xftbase.actor.domain.ActorVO;
import com.xft.xftbase.actor.service.ActorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** 系统角色控制器* @author lgy* @date 2018/02/07*/
@RestController
public class ActorController {@AutowiredActorService actorService;/*** 角色列表* @author lgy* @date 2018/02/07* @return String*/@RequestMapping(value = "/index")@ResponseBodyList<ActorVO> index(){return actorService.findUser();}
}

3.3 entity实体类,根据数据表字段生成

package com.xft.xftbase.actor.domain;import java.sql.Timestamp;/*** @description Actor数据表实体类* @author lgy* @date 2018/02/07*/
public class ActorVO {private Long actor_id;private String first_name;private String last_name;private java.sql.Timestamp last_update;public Long getActor_id() {return actor_id;}public void setActor_id(Long actor_id) {this.actor_id = actor_id;}public String getFirst_name() {return first_name;}public void setFirst_name(String first_name) {this.first_name = first_name;}public String getLast_name() {return last_name;}public void setLast_name(String last_name) {this.last_name = last_name;}public Timestamp getLast_update() {return last_update;}public void setLast_update(Timestamp last_update) {this.last_update = last_update;}@Overridepublic String toString() {return "ActorVO{" +"actor_id=" + actor_id +", first_name='" + first_name + '\'' +", last_name='" + last_name + '\'' +", last_update=" + last_update +'}';}
}

3.4 dao层:持久化数据到DB

使用注解@Mapper使之成为数据持久层,

如果不添加@Component注解,发布工程时会报此错误:【Consider defining a bean of type 'xxx' in your configuration.】意思是此类未交给Spring容器进行管理,而在程序中又通过@Autowired等方式自动注入,然鹅Spring容器中找不到此类就抛异常了。

package com.xft.xftbase.actor.mapper;import com.xft.xftbase.actor.domain.ActorVO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;/*** 系统角色dao层* @author lgy* @date 2018/02/07*/
@Mapper
@Component(value = "actorMapper")
public interface ActorMapper {/*** 查询系统所有角色* @author lgy* @date 2018/02/07* @return List*/List<ActorVO> findUser();
}

3.5 service层:定义业务逻辑层的相关接口

业务逻辑层接口:

package com.xft.xftbase.actor.service;import com.xft.xftbase.actor.domain.ActorVO;import java.util.List;/*** 系统角色相关接口* @author lgy* @date 2018/02/07*/
public interface ActorService {/*** 查询系统所有角色* @author lgy* @date 2018/02/07* @return String*/List<ActorVO> findUser();
}

实现接口:

package com.xft.xftbase.actor.service.serviceImpl;import com.xft.xftbase.actor.domain.ActorVO;
import com.xft.xftbase.actor.mapper.ActorMapper;
import com.xft.xftbase.actor.service.ActorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;/*** 系统角色业务逻辑层* @author lgy* @date 2018/02/07*/
@Component
public class ActorServiceImpl implements ActorService{@AutowiredActorMapper actorMapper1;@Overridepublic List<ActorVO> findUser() {return actorMapper1.findUser();}
}

四、SpringBoot程序发布入口

在@SpringBootApplication类中获取数据源、db操作对象、事务管理器,并通过@Bean交给Spring管理

package com.xft.xftbase;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;import javax.sql.DataSource;/*** springboot工程发布入口** @author lgy* @date 2018/02/08*/
@SpringBootApplication
public class XftBaseApplication {public static void main(String[] args) {SpringApplication.run(XftBaseApplication.class, args);}/*** 获取数据源* @return*/@Bean@ConfigurationProperties(prefix="spring.datasource")public DataSource dataSource() {return new org.apache.tomcat.jdbc.pool.DataSource();}/*** 获取DB操作对象* @return* @throws Exception*/@Beanpublic SqlSessionFactory sqlSessionFactoryBean() throws Exception {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource());PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();//映射文件是resource/mapper/目录下所有.xml文件sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mappers/*.xml"));return sqlSessionFactoryBean.getObject();}/*** 获取mybatis事务管理器* @return*/@Beanpublic PlatformTransactionManager transactionManager() {return new DataSourceTransactionManager(dataSource());}
}

五、验证结果

结果显示,成功将数据库中的actor表的数据读取

   以上就是SpringBoot整合mybatis的全部过程

Spring Boot(二): 集成Mybatis相关推荐

  1. spring boot(三) 集成mybatis

    前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...

  2. mybatis注解开发_Spring Boot 中集成 MyBatis

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了Spring Boot 中的AOP处理,今天给大家分享下 ...

  3. Spring Boot 工程集成全局唯一ID生成器 Vesta

    2019独角兽企业重金招聘Python工程师标准>>> 本文内容脑图如下: 文章共 760字,阅读大约需要 2分钟 ! 概 述 在前一篇文章 <Spring Boot工程集成全 ...

  4. Spring Boot(二):Web 综合开发

    Spring Boot(二):Web 综合开发 上篇文章介绍了 Spring Boot 初级教程:Spring Boot(一):入门篇,方便大家快速入门.了解实践 Spring Boot 特性:本篇文 ...

  5. Kotlin 企业级应用开发教程(Spring 5 + Spring Boot 2.0 + MyBatis)

    Kotlin 企业级应用开发教程 -- Spring 5 + Spring Boot 2.0 + MyBatis 内容简介 Kotlin编程语言是一种现代语言,它简洁,安全,实用,同时专注于与Java ...

  6. Spring Boot(七):Mybatis 多数据源最简解决方案

    Spring Boot(七):Mybatis 多数据源最简解决方案 参考文章: (1)Spring Boot(七):Mybatis 多数据源最简解决方案 (2)https://www.cnblogs. ...

  7. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

    概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...

  8. 在spring boot中集成Swagger

    Swagger 在spring boot中集成Swagger 新建一个swagger项目 maven依赖 <!-- https://mvnrepository.com/artifact/io.s ...

  9. Spring Boot + Shiro 集成

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot + Shiro 集成 Shiro 是一个流行的 Java 安全框架. 其实 Spring 有一个 Sp ...

  10. Spring Boot中使用MyBatis注解配置详解

    之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...

最新文章

  1. LeetCode实战:2的幂
  2. 乐观锁与悲观锁及应用举例
  3. Android System分区大小异常
  4. 冲压模板自动标注LISP_干货满满!超实用冲压模具资料,加薪必看!
  5. addall php,ThinkPHP3.2框架使用addAll()批量插入数据的方法
  6. Prometheus+Grafana监控PostgreSQL
  7. datatables使用封装
  8. 《亿万僵尸》优优卡评测:用你智慧的大脑,制定一套战争策略,把僵尸一举歼......
  9. 验证世界各地区手机号码libphonenumber
  10. Unity3D常用API
  11. 2020总结:临渊羡鱼不如退而结网
  12. linux格式化u盘fat32,linux下格式化u盘
  13. MySQLdb 安装
  14. GmSSL快速上手指南
  15. 使用IntelliJ IDEA打开一个项目步骤
  16. Mac安装软件时提示已损坏的解决方法
  17. 解析Excel获取单元格数据
  18. 用友NC创建表空间、用户、授权
  19. 点击链接跳出微信下载app如何实现
  20. 群体智能优化算法之细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)

热门文章

  1. tif文件在html打开,电脑里tif文件怎么打开?你学会了吗
  2. C 语言教程详解——入门到精通
  3. 大数据-------元数据管理
  4. 禀赋效应还是锚定效应
  5. 9.matplotlib contours等高线图
  6. 防火墙规则应用同一子网计算机,防火墙基础(一)
  7. MATLAB-数据类型之复数、字符串
  8. linux jboss的安装路径,LINUX下JBOSS的安装及配置
  9. 架设Hmailserver+webmail邮件服务器
  10. Leetcode 1833 雪糕的最大数量