Mybatis for Java API官方文档:http://www.mybatis.org/mybatis-3/zh/java-api.html

Mybatis语法介绍

@Select 查询,所有的查询均使用这个
@Insert 插入,直接传入实体类会自动解析属性到对应的值
@Update 修改,也可以直接传入对象
@Delete 删除 @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
这里需要注意,使用#符号和$符号的不同:
// This example creates a prepared statement, something like select * from teacher where name = ?;
@Select("Select * from teacher where name = #{name}")
Teacher selectTeachForGivenName(@Param("name") String name); // This example creates n inlined statement, something like select * from teacher where name = 'someName';
@Select("Select * from teacher where name = '${name}'")
Teacher selectTeachForGivenName(@Param("name") String name);

使用步骤

1、在Maven配置文件中,添加mybatis和mysql依赖

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

2、application.properties添加数据库配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.16.65.200/hibernate?characterEncoding=UTF8
spring.datasource.username=root
spring.datasource.password=123456
mybatis.type-aliases-package=com.vmware.SpringMVC.domain // Mybatis Mapper接口类的路径

Springboot会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中,对了你一切都不用管了。

3、编写Mapper接口类

public interface UserMapper {

    @Select("SELECT * FROM users")
@Results({
@Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class),
@Result(property = "nickName", column = "nick_name")
})
List<UserEntity> getAll(); @Select("SELECT * FROM users WHERE id = #{id}")
@Results({
@Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class),
@Result(property = "nickName", column = "nick_name")
})
UserEntity getOne(Long id); @Insert("INSERT INTO users(userName,passWord,user_sex) VALUES(#{userName}, #{passWord}, #{userSex})")
void insert(UserEntity user); @Update("UPDATE users SET userName=#{userName},nick_name=#{nickName} WHERE id =#{id}")
void update(UserEntity user); @Delete("DELETE FROM users WHERE id =#{id}")
void delete(Long id);

4、在Service业务逻辑层去调用Mapper接口

// 业务逻辑层调用Mapper
@Service
public class UserService { @Autowired
private UserMapper userMapper; public List<User> getAll(){
return userMapper.getAll();
}
}
// Controller调用Service
@RestController
@RequestMapping("user")
public class UserController { @Autowired
private UserService userService; @GetMapping("/all")
public List<User> getAll(){
return userService.getAll();
}
}

5、在启动类中添加对Mapper包扫描@MapperScan()

/**
* @MapperScan() 表示扫描MyBatis的Mapper接口所在的包,找出所有加了@Mapper或@Repository注解的接口。
*/
@SpringBootApplication
@MapperScan("com.vmware.SpringMVC.domain")
public class SpringMvcApplication { public static void main(String[] args) {
SpringApplication.run(SpringMvcApplication.class, args);
}
}

参考资料:

http://412887952-qq-com.iteye.com/blog/2391924

https://blog.csdn.net/didi7696/article/details/80117238

https://cloud.tencent.com/developer/article/1347912

SpringBoot Mybatis 入门的更多相关文章

  1. SpringBoot+Mybatis整合入门(一)

    SpringBoot+Mybatis 四步整合 第一步 添加依赖 springBoot+Mybatis相关依赖 <!--springBoot相关--> <parent> < ...

  2. SpringBoot开发四-MyBatis入门

    需求介绍-MyBatis入门 首先就是安装Mysql Server 和Mysql Workbench. SqlSessionFactory:用于创建SqlSession的工厂类 SqlSession: ...

  3. SpringData 基于SpringBoot快速入门

    SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...

  4. DB数据源之SpringBoot+Mybatis踏坑过程实录系列(一)

    DB数据源之SpringBoot+MyBatis踏坑过程(一) liuyuhang原创,未经允许进制转载 系列目录 DB数据源之SpringBoot+Mybatis踏坑过程实录(一) DB数据源之Sp ...

  5. 01-项目简介Springboot简介入门配置项目准备

    总体课程主要分为4个阶段课程: ------------------------课程介绍------------------------ 01-项目简介Springboot简介入门配置项目准备02-M ...

  6. MyBatis从入门到精通(1):MyBatis入门

    作为一个自学Java的自动化专业211大学本科生,在学习和实践过程中"趟了不少雷",所以有志于建立一个适合同样有热情学习Java技术的参考"排雷手册". 最近在 ...

  7. springBoot从入门到源码分析

    先分享一个springBoot搭建学习项目,和springboot多数据源项目的传送门:https://github.com/1057234721/springBoot 1. SpringBoot快速 ...

  8. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  9. 从 0 使用 SpringBoot MyBatis MySQL Redis Elasticsearch打造企业级 RESTful API 项目实战

    大家好!这是一门付费视频课程.新课优惠价 699 元,折合每小时 9 元左右,需要朋友的联系爱学啊客服 QQ:3469271680:我们每课程是明码标价的,因为如果售价为现在的 2 倍,然后打 5 折 ...

随机推荐

  1. 什么是 HTTPS

    HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议. 你也可以说:HTTPS = HTTP + SSL HTTPS 在 ...

  2. hdu 1078 FatMouse and Cheese【dp】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:每次仅仅能走 横着或竖着的 1~k 个格子.求最多能吃到的奶酪. 代码: #include ...

  3. python提供了一个进行hash加密的模块:hashlib

    python提供了一个进行hash加密的模块:hashlib下面主要记录下其中的md5加密方式 import hashlib data1 = 'sada' #####字母和数字 m = hashlib ...

  4. Unity3d 游戏退出界面1

    功能需求:点击退出按钮,弹出“退出”UI,询问玩家是否退出游戏: 退出按钮 退出UI: publicclass GameQuit : MonoBehaviour { // 取消按钮 public  G ...

  5. [MongoDB]学习笔记--Linux 安装和运行MongoDB

    背景知识 MongoDB 是用C++写的, 开源的, NoSQL(Not Only SQL)文档数据库. 特点:high performance(高性能), high availability(高可靠 ...

  6. Happy Necklace(矩阵快速幂)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submissi ...

  7. CSS标签内多余内容隐藏

    CSS: <style> .mazey{width:100px;} .nowrap{overflow:hidden;text-overflow:ellipsis;white-space:n ...

  8. 实用的 集合工具类 和 String工具类

    集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合         Map<String,String ...

  9. Django models ORM基础操作--白话聊Django系列

    上次我们讲完了views视图,那我们这次来看一下Django强大的ORM,可以这么说,你不懂Django的ORM,你就不懂Django,那废话不多说 ORM又称关系对象映射,在ORM里,一张表就是一个 ...

  10. Facebook内部高效工作PPT指南(转)

    add by zhj: 其实好几条说的是“时间管理四象限”,如下图.对于自己来说,需要做的是两类事:重要且紧急,重要但不紧急. 第一类事情要立即去做:第二类事情,往往是花时间比较多的,比如锻炼身体,维 ...