转: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. 封装Thread的两种方法 via C++ in Linux

    方法一: 代理线程函数(proxyThreadFunc)作为类的静态成员函数, 回调函数指针作为类的私有成员变量 方法二: 代理线程函数(proxyThreadFunc)作为全局函数,  回调函数指针 ...

  2. 基于vue的图片查看插件vue-photo-preview

    1. 安装 在任务管理器中输入命令 2. 在项目main.js中引入 3.在所需要的项目中直接使用 还有两个属性,可以看需求添加 preview-title-enable="false&qu ...

  3. C# 对结构体和指针的使用

    //结构体的定义 [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]        pub ...

  4. 解决centos7上system tools - setting无法打开的问题

    今天在centos7上安装中文输入法时,遇到system tools - setting无法打开的问题. 最后定位时libwbclient这个包无法查找到的原因. 问题显示如下: 可以使用以下方式安装 ...

  5. 手动清除mac的广告弹框病毒 MacOSDefender

    最近在浏览亚马逊, 京东的时候, 发现会自动弹出很多广告到浏览器, 其实是中了病毒MacOSDefender. 这个病毒非常烦人, 会在你浏览电商网页的时候拼命的打开广告页面, 而且还会弹出一些提示, ...

  6. http协议常见状态码含义

    状态码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值: 2xx:成功--表示请求已被成功接收.理解.接受 200(成功)  服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. ...

  7. 小妖精的完美游戏教室——东方PROJECT,同人,子机

    //================================================================//// Copyright (C)// All Rights Re ...

  8. js中substr、substring、slice的区别

    substr(start, length) substring(from, to) slice(from, to) 以上函数只传一个参数时,认为是起始位置,然后按照正方向截取 substring的参数 ...

  9. Azure monitor Portal 、Azure monitor API监控指标、性能监视器常用指标

  10. 黑an网络---an网入门

    我认为学网络的会上an网也是一项必备的技能,我不是鼓励你去犯罪而是保护自己的个人隐私免遭被侵害.an网和shen网实际上都是从英文翻译来的,an网即Dark Net或Dark Web,shen网则译为 ...