SpringBoot+Mybatis 四步整合

第一步 添加依赖

springBoot+Mybatis相关依赖



	<!--springBoot相关-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent> <!--约定版本-->
<properties>
<mybatis-spring-boot>1.2.0</mybatis-spring-boot>
<mysql-connector>5.1.39</mysql-connector>
</properties> <dependencies>
<!--springBoot相关-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!--mybatis相关-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency> <!--mysql驱动相关-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency> <!--pojo实用小插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--依赖不传递-->
<optional>true</optional>
</dependency>
</dependencies>

第二步 配置文件 (src/main/resources/application.yml)

server:
# 服务端口
port: 8081 spring:
datasource:
url: jdbc:mysql://localhost:3306/springcloud-mybatis
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver # Mybatis 配置
mybatis:
typeAliasesPackage: com.fame.entity
mapperLocations: classpath:mapper/*.xml # 打印sql
logging:
level:
# 配置mapper接口的包路径
com.fame.mapper : debug

第三步 创建Mybatis Mapper接口、Mapper.xml 以及 Entity

Mapper接口

public interface UserMapper {

	/**
* 用户列表查询
*
* @return 用户信息列表
*/
List<User> findAll(); /**
* 新增用户信息
*
* @param user 用户信息
*/
void add(User user); /**
* 通过ID获取用户信息
*
* @param id 用户ID
* @return 用户信息
*/
User get(Long id); /**
* 修改用户信息
*
* @param user 用户信息
*/
void update(User user); /**
* 删除用户信息
*
* @param id 用户ID
*/
void delete(long id);
}

UserMapper.xml(src/main/resources/mapper/UserMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.fame.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.fame.entity.User">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="age" property="age" jdbcType="INTEGER"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="username" property="username" jdbcType="VARCHAR"/>
</resultMap> <sql id="Base_Column_List">
id, age, password, username
</sql>
<insert id="add" parameterType="com.fame.entity.User">
INSERT INTO sys_user(
<if test="id != null and id != '' ">id,</if>
<if test="age != null and age != ''">age,</if>
<if test="password != null and password != ''">password,</if>
<if test="username != null and username != ''">username</if>
)VALUES (
<if test="id != null and id != '' ">#{id},</if>
<if test="age != null and age != ''">#{age},</if>
<if test="password != null and password != ''">#{password},</if>
<if test="username != null and username != ''">#{username}</if>
)
</insert> <update id="update" parameterType="com.fame.entity.User">
UPDATE sys_user
<set>
<if test="age != null and age != '' ">age = #{age},</if>
<if test="password != null and password != ''">password = #{password},</if>
<if test="username != null and username != ''">username = #{username}</if>
</set>
WHERE id = #{id}
</update> <delete id="delete" parameterType="java.lang.Long">
DELETE FROM sys_user WHERE id = #{id}
</delete> <select id="findAll" resultMap="BaseResultMap" parameterType="com.fame.entity.User">
SELECT
<include refid="Base_Column_List"/>
FROM sys_user
</select> <select id="get" parameterType="java.lang.Long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM sys_user
WHERE id = #{id}
</select> </mapper>

Entity

@Data
// 开启链式编程
@Accessors(chain = true)
public class User implements Serializable {
private static final long serialVersionUID = -6510879035056033993L; private Long id;
private Integer age;
private String password;
private String username;
}

第四步 创建Application启动类

如果是直接创建springboot项目可忽略这一步,我是直接创建的一个Maven项目进行整合。

注意:加入注解@MapperScan进行mapper接口扫描

@SpringBootApplication
// mapper 接口类扫描包配置
@MapperScan("com.fame.mapper")
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
}
}

这样就整合完成,可以创建接口进行单元测试了

UserController

@RequestMapping("/user")
@RestController
public class UserController { @Autowired
private UserMapper userMapper; /**
* 查询用户列表
*/
@GetMapping("/list")
public List<User> list() {
List<User> userList = userMapper.findAll();
System.out.println(userList);
return userList;
} /**
* 通过ID获取用户信息
*/
@GetMapping("/get")
public User get() {
return userMapper.get(8L);
} /**
* 新增用户信息
*/
@PostMapping("/add")
public void add() {
User user = new User().setUsername("大白一号").setPassword("dabaiyihao").setAge(22);
userMapper.add(user);
} /**
* 修改用户信息
*/
@PutMapping("/update")
public void update() {
User user = userMapper.get(1L);
user.setUsername("大白修改操作");
userMapper.update(user);
} /**
* 删除用户信息
*/
@DeleteMapping("/delete")
public void delete() {
userMapper.delete(9L);
} }

SpringBoot+Mybatis整合入门(一)的更多相关文章

  1. SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)

    SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...

  2. SpringBoot+SpringData 整合入门

    SpringData概述 SpringData :Spring的一个子项目.用于简化数据库访问,支持NoSQL和关系数据存储.其主要目标是使用数据库的访问变得方便快捷. SpringData 项目所支 ...

  3. SpringBoot+Mybatis整合实例

    前言 大家都知道springboot有几大特点:能创建独立的Spring应用程序:能嵌入Tomcat,无需部署WAR文件:简化Maven配置:自动配置Spring等等.这里整合mybatis,创建一个 ...

  4. 2、SpringBoot+Mybatis整合------一对一

    开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/93398da60c647573645917b2 ...

  5. springboot/Mybatis整合

    正题 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 springboot: 1.5.6 jdk:1.8.0_161 maven:3.3.9 额外功能 PageHelper ...

  6. springboot+mybatis整合(单元测试,异常处理,日志管理,AOP)

    我用的事IDEA,jdk版本是1.7.新建项目的时候这个地方的选择需要注意一下,springboot版本是1.5的,否则不支持1.7的jdk pom.xml <dependency> &l ...

  7. 9、SpringBoot+Mybatis整合------动态sql

    开发工具:STS 前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框架更加灵活. 动态sql中的语法: where标签 if标签 trim标签 set标签 s ...

  8. 1、SpringBoot+Mybatis整合------简单CRUD的实现

    编译工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/commit/b757cd9bfa4e2de551b2e9 ...

  9. springboot mybatis 整合

    新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; publi ...

随机推荐

  1. sqlServer 查询表中31到40的记录,考虑id不连续的情况

    SQL   查询表中31到40的记录,考虑id不连续的情况 写出一条sql语句输出users表中31到40记录(数据库为SQL Server,以自动增长的ID作为主键,注意ID可能不是连续的)? -- ...

  2. [原创] 基础中的基础(二):C/C++ 中 const 修饰符用法总结

    在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助.作者是菜鸟一 ...

  3. Mysql错误处理: /usr/bin/mysqld_safe: line xxx: xxxx Killed ... (mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法)

    哈哈哈,问题总算解决,内心抑不住的开心 centos mysql 问题:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mysql.p ...

  4. 约瑟夫(Josephus)问题~转

    本文都是转的,一个是转博客,一个是转贴吧,前者详细,后者"强,无敌"! 博客转: 以前就知道约瑟夫问题是模拟,今天我才发现一些约瑟夫问题可以使用数学解法得出!真是强悍啊!约瑟夫问题 ...

  5. 算法逆向6——RSA识别

    本文原创作者:i春秋作家——icq5f7a075d 1. 算法介绍 RSA算法是一种用数论构造的.基于大合数因子分解困难性的公开密钥密码.由于RSA密码既可用于加密,又可用于数字签名,安全.易懂,因此 ...

  6. Chrome谷歌浏览器已停用不支持的扩展程序解决方法

    在不能上外网的情况下解决该问题: http://www.liu16.com/post/Chrome_2447.html

  7. C#4.0使用dynamic 动态添加属性

    最近做一个项目,用wpf mvvm实现,而前台表格需要根据数据库某表的设置不同生成不同的列名.过去用winform和Ado.net实现这种功能的时候就只需要拼装DataTable,拼成最后需要的表格, ...

  8. 【learning】 单调队列与单调栈用法详解

    1.单调栈 单调栈是指一个栈内部的元素具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈. 其具有以下两个性质: 1,满足栈底到栈顶的元素具有严格单调性. 2,满足栈的先进后出特性,越靠近栈顶的 ...

  9. SQL Server 数据库存储过程实例

    USE [UFDATA_999_2014] GO /****** Object: StoredProcedure [dbo].[p_XMonPerNums] Script Date: 06/12/20 ...

  10. Python shutil模块(目录和文件操作)

    import shutil #导入shutil模块 copyfileobj方法 将类文件对象fsrc的内容复制到类文件对象fdst shutil.copyfileobj(fsrc, fdst[, le ...