Spring Boot(二): 集成Mybatis
上一篇讲述了什么是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相关推荐
- spring boot(三) 集成mybatis
前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...
- mybatis注解开发_Spring Boot 中集成 MyBatis
阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了Spring Boot 中的AOP处理,今天给大家分享下 ...
- Spring Boot 工程集成全局唯一ID生成器 Vesta
2019独角兽企业重金招聘Python工程师标准>>> 本文内容脑图如下: 文章共 760字,阅读大约需要 2分钟 ! 概 述 在前一篇文章 <Spring Boot工程集成全 ...
- Spring Boot(二):Web 综合开发
Spring Boot(二):Web 综合开发 上篇文章介绍了 Spring Boot 初级教程:Spring Boot(一):入门篇,方便大家快速入门.了解实践 Spring Boot 特性:本篇文 ...
- Kotlin 企业级应用开发教程(Spring 5 + Spring Boot 2.0 + MyBatis)
Kotlin 企业级应用开发教程 -- Spring 5 + Spring Boot 2.0 + MyBatis 内容简介 Kotlin编程语言是一种现代语言,它简洁,安全,实用,同时专注于与Java ...
- Spring Boot(七):Mybatis 多数据源最简解决方案
Spring Boot(七):Mybatis 多数据源最简解决方案 参考文章: (1)Spring Boot(七):Mybatis 多数据源最简解决方案 (2)https://www.cnblogs. ...
- Spring Boot项目利用MyBatis Generator进行数据层代码自动生成
概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...
- 在spring boot中集成Swagger
Swagger 在spring boot中集成Swagger 新建一个swagger项目 maven依赖 <!-- https://mvnrepository.com/artifact/io.s ...
- Spring Boot + Shiro 集成
2019独角兽企业重金招聘Python工程师标准>>> Spring Boot + Shiro 集成 Shiro 是一个流行的 Java 安全框架. 其实 Spring 有一个 Sp ...
- Spring Boot中使用MyBatis注解配置详解
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...
最新文章
- LeetCode实战:2的幂
- 乐观锁与悲观锁及应用举例
- Android System分区大小异常
- 冲压模板自动标注LISP_干货满满!超实用冲压模具资料,加薪必看!
- addall php,ThinkPHP3.2框架使用addAll()批量插入数据的方法
- Prometheus+Grafana监控PostgreSQL
- datatables使用封装
- 《亿万僵尸》优优卡评测:用你智慧的大脑,制定一套战争策略,把僵尸一举歼......
- 验证世界各地区手机号码libphonenumber
- Unity3D常用API
- 2020总结:临渊羡鱼不如退而结网
- linux格式化u盘fat32,linux下格式化u盘
- MySQLdb 安装
- GmSSL快速上手指南
- 使用IntelliJ IDEA打开一个项目步骤
- Mac安装软件时提示已损坏的解决方法
- 解析Excel获取单元格数据
- 用友NC创建表空间、用户、授权
- 点击链接跳出微信下载app如何实现
- 群体智能优化算法之细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)