Springboot整合mybatis框架(含实例Demo)
最近要交一份project项目作业,前后端分离,我负责后端,选用了Springboot+mybatis进行整合操作。
一.前期准备:
开发使用的IDE为IntelliJ IDEA:https://www.jetbrains.com/idea/
maven仓库整合jar包:http://mvnrepository.com/artifact/org.apache.maven/maven-plugin-api/3.5.3
下完上述两样后,IDEA安装略,我们开始使用IDEA配置默认的maven库
从GIF中可以看到,我们点击configure菜单项下的Project Defaults来设置项目的默认配置,从settings选项中,找到Maven库一栏,选择我们刚才下载好的maven仓库的安装目录。
创建好我们的数据表。数据库名为jiguo,表名为jiguo_user。
以上,前期准备就准备好啦。
二.项目结构一栏以及实现步骤。
实现步骤:
1.Springboot项目创建
2.在pom.xml中,使用maven架包导入mybatis依赖dependency
3.逆向工程,配置自己的generatorConfig逆向工程的配置文件,然后使用maven插件执行出来,逆向出DAO层还有Model层
4.在application.properties中,配置我们的数据源 mybatis所需要的配置
5.MyMapper接口的创建
6.service层代码的创建
7.创建controller,处理前端的请求。
8.启动文件中设置DAO层扫描,这样就能识别出DAO层注解
@MapperScan(basePackages = "com.example.sl.xxxxx.dao")
步骤一:Springboot项目创建
完成创建一个名为demospringboot的项目
步骤二:在pom.xml中,使用maven架包导入mybatis等依赖
pom.xml:
<?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.example.sl</groupId><artifactId>demospringboot</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demospringboot</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--alibaba-start--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><!--alibaba-end--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.41</version></dependency><!--mybatis-start--><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><!--generator--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version><scope>compile</scope><optional>true</optional></dependency><!--mapper--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>1.2.4</version></dependency><!--pagehelper--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency><!--mybatis-end--><!-- 引入 redis 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.18.1</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><verbose>true</verbose><overwrite>true</overwrite></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.29</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.0.0</version></dependency></dependencies></plugin></plugins></build>
</project>
import以后,我们导入了mybatis,mysql,阿里巴巴的sql检测插件,分页插件等。
步骤三:逆向工程,配置自己的generatorConfig(resource包下)逆向工程的配置文件,然后使用maven插件执行出来,逆向出DAO层还有Model层
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--1.jdbcConnection设置数据库连接--><!--2.javaModelGenerator设置类的生成位置--><!--3.sqlMapGenerator设置生成xml的位置--><!--4.javaClientGenerator设置生成dao层接口的位置--><!--5.table设置要进行逆向工程的表名以及要生成的实体类的名称--><context id="default" targetRuntime="MyBatis3Simple" defaultModelType="flat"><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="com.example.sl.demospringboot.util.MyMapper"/></plugin><!-- optional,旨在创建class时,对注释进行控制 --><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><!--jdbc的数据库连接 --><jdbcConnectiondriverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/jiguo?characterEncoding=utf-8"userId="root"password="root"></jdbcConnection><!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制--><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类targetPackage 指定生成的model生成所在的包名targetProject 指定在该项目下所在的路径--><!--<javaModelGenerator targetPackage="com.mmall.pojo" targetProject=".\src\main\java">--><javaModelGenerator targetPackage="com.example.sl.demospringboot.model" targetProject="./src/main/java"><!-- 是否允许子包,即targetPackage.schemaName.tableName --><property name="enableSubPackages" value="false"/><!-- 是否对model添加 构造函数 --><property name="constructorBased" value="false"/><!-- 是否对类CHAR类型的列的数据进行trim操作 --><property name="trimStrings" value="true"/><!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 --><property name="immutable" value="false"/></javaModelGenerator><!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 --><!--<sqlMapGenerator targetPackage="mappers" targetProject=".\src\main\resources">--><sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources"><property name="enableSubPackages" value="false"/></sqlMapGenerator><!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口--><!-- targetPackage:mapper接口dao生成的位置 --><!--<javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao" targetProject=".\src\main\java">--><javaClientGenerator type="XMLMAPPER" targetPackage="com.example.sl.demospringboot.dao" targetProject="./src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><table tableName="jiguo_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table><!-- geelynote mybatis插件的搭建 --></context>
</generatorConfiguration>
然后执行我们的mybatis插件
就发现我们的DAO层和model层已经创建好了。对应jiguo数据库中的
jiguo_user表。
四。在application.properties中,配置我们的数据源 mybatis所需要的配置
server.port=8080//服务器的端口号
#mysql链接配置
spring.datasource.url=jdbc:mysql://localhost:3306/jiguo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.durid.initialsize=1#mybatis配置
#首先是实体类所在的包的名字
mybatis.type-aliases-package=com.example.sl.demospringboot.model
mybatis.mapper-locations=classpath:mappers/*.xml
#mybatis使用resources的xml来映射数据库表,这里就是resources下的mappers包的所有xml文件#MyMapper是继承了一些封装好的方法接口 CRUD
#mapper
#mappers 多个接口时逗号隔开 通配mappers
mapper.mappers=com.example.sl.demospringboot.util.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL#pagehelper 分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
配置了服务器端口号,数据库的链接数据,以及mybatis的映射表关系,我们发现有一个MyMapper接口,是我们之前没创建的,这是一个通配mappers(封装了一些常用CRUD操作,可以通过实现接口来进行),在maven库中添加依赖的时候,我们已经添加了相关接口的库tk.mybatis。
所以我们执行步骤五。
五.MyMapper接口的创建
util包下,创建MyMapper接口:
MyMapper:
package com.example.sl.demospringboot.util;import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;//自定义接口集成大牛给我们写好的数据层的接口类
public interface MyMapper<T> extends Mapper<T>,MySqlMapper<T> {}
然后在DAO层继承这个接口。
UserMapper:
package com.example.sl.demospringboot.dao;import com.example.sl.demospringboot.model.User;
import com.example.sl.demospringboot.util.MyMapper;public interface UserMapper extends MyMapper<User> {
}
以上我们完成了DAO层和数据库的准备,然后我们开发我们的service层,业务层。
六.service层代码的创建
我们将UserMapper使用注解的方式,生成,减少内存消耗,再调用之前别人写好的接口方法,进行CRUD操作(自己定制的CRUD操作暂略)。
UserService:
package com.example.sl.demospringboot.service;import com.example.sl.demospringboot.model.User;import java.util.List;public interface UserService {public List<User> findAll();
}
UserServiceImpl:
package com.example.sl.demospringboot.service;import com.example.sl.demospringboot.dao.UserMapper;
import com.example.sl.demospringboot.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service("userService")
public class UserServiceImpl implements UserService{@Autowiredprivate UserMapper userMapper;@Overridepublic List<User> findAll() {return userMapper.selectAll();}
}
七.创建controller,处理前端的请求
UserController:
package com.example.sl.demospringboot.controller;import com.example.sl.demospringboot.model.User;
import com.example.sl.demospringboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping(value = "/user")
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/findAll")public List<User> findAllUser(){List<User> userlist=userService.findAll();return userlist;}
}
八..启动文件中设置DAO层扫描,这样就能识别出DAO层注解
@MapperScan(basePackages = "com.example.sl.xxxxx.dao")
package com.example.sl.demospringboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;@SpringBootApplication
@MapperScan(basePackages = "com.example.sl.demospringboot.dao")//这个注解注意一下 放DAO层的包名 对这个包下进行注入
public class DemospringbootApplication {public static void main(String[] args) {SpringApplication.run(DemospringbootApplication.class, args);}
}
保存~后台完成
三.自定义一个login.html进行请求测试。(由于JS要跨域,这里不进行ajax请求了 这里我们直接使用表单 PS:本地可以将一个ajax请求的页面放在本地Apache容器中来解决)
login.html:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>login.html</title>
</head>
<body>
<form action="/user/findAll"><input type="submit" value="login">
</form>
</body>
</html>
然后运行~
测试完成~终于可以睡觉啦
以上demo收录在Ricardo-L-Song的github
喜欢就给个小吧,你的支持是对博主最大的支持。
Springboot整合mybatis框架(含实例Demo)相关推荐
- 详解SpringBoot整合Mybatis框架
文章目录 前言 一.创建SpringBoot项目 二.配置Mybatis 1. 在pom.xml文件中添加jar包依赖 2. SpringBoot整合Mybatis配置文件 三.创建Mapper接口 ...
- Springboot整合Mybatis框架
Springboot学习有段时间,由于最近忙着找实习,学习网之后很久么有实操过,有点忘了今天复盘一下,记录此笔记. 1.新建springboot项目,这里使用阿里云镜像,官方的网络太卡了 2.选择好版 ...
- Springboot整合MyBatis框架(内含两种方式)
新建一个模块,命名为springboot-mybatis 创建完成. 在navicat软件里新建数据库springboot,运行下面这段sql代码, /*!40101 SET NAMES utf8 * ...
- springboot整合mybatis框架,超详细
第一种:mapper接口纯注解 (mapper层即为dao层) 第一步:application.yml文件配置DataSource,注解开发可以不用配置mybatis.(以User.java为例) ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 1.前言 本文主要介绍使用SpringBoot与shiro实现基 ...
- STS安装配置及写的一个springboot整合mybatis的小demo
新入职的猿,师傅给了一个小任务,用STS写一个springboot整合mybatis的小demo.由于之前没用过STS和eclipse,所以听到这个任务还是比较懵逼的,经过一天的摸索,慢慢的摸出了门道 ...
- SpringBoot整合Quartz--使用/教程/实例
原文网址:SpringBoot整合Quartz--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用实例介绍quartz的用法. quartz与spring自带的定时最大的区别之处 ...
- springboot 整合mybatis plus
简单介绍下 mybatis plus,mybatis plus(简称 MP)是一个 mybatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 本文讲解使用 ...
最新文章
- H3 BPM微信接入配置
- Centos7下编译安装python2.7.10
- 暑假周报告(第三周)
- 【AWSL】之Linux引导过程及服务控制(MBR、GRUB、runlevel、systemcl、init、ntsysv、chkconfig)
- Windows系统CUDA10.2+CUDNN安装教程
- 单行溢出 和多行溢出
- Flowable 数据库表结构 ACT_HI_DETAIL
- 从C语言过渡到C++并不容易啊,大家说呢?
- ajax url 的是什么格式,什么是从AJAX URL格式来发送POST方法有响应实体
- 如何才干创建一个空的IBM DB2 ECO数据库
- centos 7增强命令补全
- Visio(流程图绘制软件)的免费替代品
- 智能家居APP设计规格
- 论文发表如何选择期刊
- Goby - 新一代安全工具
- matlab中对于xf(x)的积分,[matlab 积分]MATLAB求积分?
- 【Mathematica】三种画爱心的方法
- 什么是云计算?让我来告诉你~
- 2021年全球电子雪茄行业调研及趋势分析报告
- MFC中进度条的学习
热门文章
- python求100以内的素数和(只作新手参考)
- r语言怎么把txt数据变成一个Rdata格式_甲基化芯片数据下载如何读入到R里面
- openssh升级_Redhat 6.5源码编译升级openssh到7.8版本
- 达内python第二阶段月考_oracle练习题 达内第二次月考题
- mysql close 出错_MySQL错误Forcing close of thread的两种解决方法
- C++ OpenCV 问题
- HttpJsonResult和ModelMap使用??
- 19软件班专业英语学期总结
- SSM框架笔记15:SSM框架西蒙购物网(XML配置方式)
- 【BZOJ2460】元素,线性基+贪心