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 ...
随机推荐
- 【cocos2d-x 手游研发----精灵的八面玲珑】
继续上一篇文章继续聊吧,这章内容会比较多,也会附上代码,很多朋友加了群,大家在群里面探讨了很多东西,这让大家都觉得受益匪浅,这便是极好的,废话不多了,精灵是游戏的重要组成部分,那ARPG里面的精灵必然 ...
- 高性能mysql学习笔记
此文已由作者朱笑天授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 笔者在工作之余阅读了一下高性能mysql,以下的内容对mysql的介绍以及书中涉及一些概念的总结归纳. 1. ...
- BZOJ4825: [Hnoi2017]单旋(Splay)
题面 传送门 题解 调了好几个小时--指针太难写了-- 因为只单旋最值,我们以单旋\(\min\)为例,那么\(\min\)是没有左子树的,而它旋到根之后,它的深度变为\(1\),它的右子树里所有节点 ...
- What are rules about using an underscore in a c identifier
http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identi ...
- javaWeb登录注册页面
简单的登陆注册页面 1.配置JDBC驱动连接数据库 2. 配置struts2框架 3. 利用1 2完成登录页面, 注意做到不耦合,即servlet Api和控制器完全脱离) 4. 利用1 2 制作注册 ...
- RPC理解
RPC,英文名称Remote Procedure Call Protocol,即远程过程通讯协议. 可以设想一种情况,有一个人,叫A,A想要翻开一本书,非常简单,让大脑控制自己两只手,轻易就可以看到书 ...
- python3模块: uuid
一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifie ...
- leetcode-914-卡牌分组
题目描述: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 ...
- leetcode-179-Largest Number(理解规则,自定义cmp函数进行排序)
题目描述: 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明 ...
- SQL使用子查询,查找班级成绩最高分
-- 根据要求,获取班级成绩的最高分的学生-- 第一个子查询,先去各个科目的最高,再横向比较各个科目的最高,再取最高分的那个科目-- 第二个子查询,查询每个同学的最高分-- 最后,通过第一个子查询查询 ...