转:https://blog.csdn.net/qq_35153200/article/details/79538440

开发环境:

开发工具:Intellij IDEA 2017.2.3
JDK : 1.8.0_144
spring boot 版本 : 1.5.10.RELEASE
maven : 3.2.3

SpringBoot集成MyBatis加入基础依赖:

mybatis:
<!--mybatis-->
<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.1</version>
</dependency>
<!--通用mapper插件-->
<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>1.1.5</version>
</dependency>

MySQL:
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
</dependency>

数据库配置:

application.yml
spring:
  datasource:
     url: jdbc:mysql://192.168.1.59:3306/test?useUnicode=true&characterEncoding=UTF-8
     username: root
     password: 123456
     driver-class-name: com.mysql.jdbc.Driver
在Mysql数据库中创建数据表:

CREATE DATABASE mytest;
 USE mytest; 
CREATE TABLE t_user(
     id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
     name VARCHAR(255) NOT NULL , 
     password VARCHAR(255) NOT NULL ,
     phone VARCHAR(255) NOT NULL ) ENGINE=INNODB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;
MyBatis配置文件配置:
application.yml(映射文件配置的位置)
#初始化自定义的接口mapper
mapper:
    mappers: com.test2.mapper.CommonMapper
    not-empty: false
    identity: MYSQL


使用Mybatis:

创建映射对象User
/** * User实体映射类 
    * Created by Administrator on 2017/11/24. 
    */ 
@Table(name = "t_user")
public class User { 
    @Id
    private Integer id; 
    private String name; 
    private String password; 
    private String phone; 
    //省略 get 和 set ... 
}
实现自己的接口,继承通用的mapper
package com.test2.mapper;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface CommonMapper<T> extends Mapper<T>,MySqlMapper<T> {
    //这里实现一个自己的接口,继承通用的mapper,关键点就是这个接口不能被扫描到(不加注解就不会被扫描到),
}

创建User映射的操作UserMapper,为了后续单元测试验证,实现插入和查询操作
@Mapper
public interface UserMapper extends CommonMapper<User>{

}

创建单元测试:

@RunWith(SpringRunner.class)
@SpringBootTest
public class Demo2ApplicationTests {

   @Autowired
   private UserMapper userMapper;

   @Test
   public void insert(){
      User user = new User();
      user.setName("aaa");
      user.setPassword("222222");
      user.setPhone("123456");
      userMapper.insert(user);
   }
}


通用mapper版:
    1.首先需要在pom.xml中引入通用mapper插件包;
   2.在创建实体类时,需要指明表名和主键id
   3.实现自己的通用接口,继承通用的mapper
   4.创建的mapper接口,只需要继承自定义的通用接口就可以使用默认的方法

注意:配置版、通用mapper版、配置文件版,这三版可以混合使用,


通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合的更多相关文章

  1. 如何用IDEA创建springboot(maven)并且整合mybatis连接mysql数据库和遇到的问题

    一.New->Project 二.点击next 三.在Group栏输入组织名,Artifact就是项目名.选择需要的java版本,点击next 四.添加需要的依赖 在这里我们也可以添加sql方面 ...

  2. 五、使用druid管理数据库,mybatis连接mysql数据库

    简介:    使用 mybatis 连接 mysql 数据库, 一套简单的增删改查流程, 前台用 bootstrap, bootstrap-table 框架, 最后用 druid 监控数据库连接情况 ...

  3. Java逆向工程SpringBoot + Mybatis Generator + MySQL

    Java逆向工程SpringBoot+ Mybatis Generator + MySQL Meven pop.xml文件添加引用: <dependency> <groupId> ...

  4. (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

    大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...

  5. JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一

    系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...

  6. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

  7. mybatis连接mysql数据库实现的jdbc功能

    最近公司项目要使用myBatis,自己以前没有接触过,就在网上找到了一些资料研究了些.初步做出了基于myBatis连接mysql数据库的jdbc实现的功能. employee.java package ...

  8. Mybatis插入MySQL数据库中文乱码

    Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...

  9. mybatis查询mysql数据库tinyint(1)变为boolean类型

    mybatis查询mysql数据库对象转化为Map,tinyint(1)被转化为boolean类型,可以t通过避免使用tinyint(1)来解决.

随机推荐

  1. CSV空行问题

    当写入CSV时生成的数据会有空行如果加入 newline =‘’ 不会新增空行 writefile = open('result.csv','w',newline =‘’) 原贴 https://bl ...

  2. WEB学习笔记8-添加javascript禁用的提示

    最常用的方式是使用<noscript>标签,此标签就是当javascript被禁用或者不被支持的时候提供一种代替方式,即<noscript>标签的内容会在此时被浏览器解析,作为 ...

  3. SQLI DUMB SERIES-14

    (1)闭合方式为一对双引号 (2)可用报错注入.如: admin" and extractvalue(1,concat(0x7e,(select database()))) and &quo ...

  4. JavaScript权威指南--数组Array

    什么是数组 数组是值的有序集合.每一个值叫做元素,每一个元素在数组中有一个位置,用数字表示,称为索引.js数组是无类型的.动态的,也可能是稀疏的.每个数组都有length属性.数组最大能容纳42949 ...

  5. 51单片机---点亮一个LED灯

    1 程序源码 #include <REGX52.H> `包含51单片机的头文件` sbit led = P0^0; int main(void) { while(1) { led = 1; ...

  6. java-IO流-其他流

    ###22.01_IO流(序列流)(了解) * 1.什么是序列流     * 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, ...

  7. 冰水挑战 HDU - 6495

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6495 题解:DP!!! dp[i][j] 表示前i个挑战,接受了j个剩余的最大体力,最后输出体力大于0 ...

  8. 顺序栈代码实现&&stack库

    #include<iostream> using namespace std; ; typedef int Elemtype; struct SqStack { Elemtype *bas ...

  9. python中常见的报错,总结一下,以后看。

    AttributeError 试图访问一个对象没有的属性,比如,乔峰.nameIOError 输入.输出异常:基本上无法打开文件ImportError 无法引入模块或者是包:基本上是路径问题,或者是名 ...

  10. 学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人

    真正掌握一种算法,最实际的方法,完全手写出来. LSTM(Long Short Tem Memory)特殊递归神经网络,神经元保存历史记忆,解决自然语言处理统计方法只能考虑最近n个词语而忽略更久前词语 ...