SpringBoot+Mybatis整合入门(一)
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整合入门(一)的更多相关文章
- SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)
		SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ... 
- SpringBoot+SpringData 整合入门
		SpringData概述 SpringData :Spring的一个子项目.用于简化数据库访问,支持NoSQL和关系数据存储.其主要目标是使用数据库的访问变得方便快捷. SpringData 项目所支 ... 
- SpringBoot+Mybatis整合实例
		前言 大家都知道springboot有几大特点:能创建独立的Spring应用程序:能嵌入Tomcat,无需部署WAR文件:简化Maven配置:自动配置Spring等等.这里整合mybatis,创建一个 ... 
- 2、SpringBoot+Mybatis整合------一对一
		开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/93398da60c647573645917b2 ... 
- springboot/Mybatis整合
		正题 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 springboot: 1.5.6 jdk:1.8.0_161 maven:3.3.9 额外功能 PageHelper ... 
- springboot+mybatis整合(单元测试,异常处理,日志管理,AOP)
		我用的事IDEA,jdk版本是1.7.新建项目的时候这个地方的选择需要注意一下,springboot版本是1.5的,否则不支持1.7的jdk pom.xml <dependency> &l ... 
- 9、SpringBoot+Mybatis整合------动态sql
		开发工具:STS 前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框架更加灵活. 动态sql中的语法: where标签 if标签 trim标签 set标签 s ... 
- 1、SpringBoot+Mybatis整合------简单CRUD的实现
		编译工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/commit/b757cd9bfa4e2de551b2e9 ... 
- springboot mybatis 整合
		新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; publi ... 
随机推荐
- Django signal 信号机制的使用
			Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作 一.Django中内置的 signal 类型主要包含以下几 ... 
- jzoj5804
			這道題n-m很小,可以從此入手 記f[i][j]為i個字符括號綜合為j的合法方案數 則第i個括號可以枚舉為(和),所以f[i][j]=f[i-1][j-1]+f[i-1][j+1],小心越界 再記a為 ... 
- SQL语句常见优化十大案例
			1.慢SQL消耗了70%~90%的数据库CPU资源: 2.SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低:3.SQL语句可以有不同的写法: 1 ... 
- 基于Spring Boot的Logback日志轮转配置
			在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的.我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异.这里就结合Spring Boot配置一下L ... 
- dos新建文件夹 新建文件
			https://jingyan.baidu.com/article/49ad8bceb0237f5834d8fa19.html 新建文件夹: mkdir kkk 新建kkk文件夹 新建文件: type ... 
- JVM中的对象生命周期
			在JVM运行空间中,对象的整个生命周期大致可以分为七个阶段:创建阶段(Creation).应用阶段(Using).不可视阶段(Invisible).不可到达阶段( Unreachable).可收集阶段 ... 
- Visual Studio 中的 Office 和 SharePoint 开发
			MSDN Library 开发工具和语言 Visual Studio 中的 Office 和 SharePoint 开发 https://msdn.microsoft.com/zh-cn/libra ... 
- python 批量模块导入(笔记)
			环境:python3.6 目的:根据列表['os', 'sys', 're']中的字符串导入对应模块 from importlib import import_module modules = ['o ... 
- Spring Security构建Rest服务-0900-rememberMe记住我
			Spring security记住我基本原理: 登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeS ... 
- 使用EntityFrameworkCore 连接 MySql
			上篇文章介绍了如何在dotnetcore下使用Dapper连接MySql,这里再介绍使用使用EntityFrameworkCore 连接 MySql. 新建控制台项目,安装下面两个nuget包: In ... 
