SpringBoot系列-整合Mybatis(注解方式)

时间:2021-07-10 16:07:06

上一篇文章《SpringBoot系列-整合Mybatis(XML配置方式)》介绍了XML配置方式整合的过程,本文介绍下SpringBoot通过注解方式整合Mybatis的过程。

一、常用注解说明

  • @Mapper

可以给接口自动生成一个实现类,让spring对mapper接口的bean进行管理,并且可以省略去写复杂的xml文件。

  • @Options

配置映射语句的属性。例如:@Options(useGeneratedKeys = true, keyColumn = "id"):指定表的自增主键并自动绑定到实体类对象。

  • @Result

修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。

  • @Param

如果你的映射方法的形参有多个,这个注解使用在映射方法的参数上就能为它们取自定义名字。若不给出自定义名字,多参数(不包括 RowBounds 参数)则先以 "param" 作前缀,再加上它们的参数位置作为参数别名。例如 #{param1}, #{param2}。

  • @Select、@Delete、@Insert、@Update

这四个注解分别代表将会被执行的 SQL 语句。它们用字符串数组(或单个字符串)作为参数。如果传递的是字符串数组,字符串之间先会被填充一个空格再连接成单个完整的字符串。

二、实战

新建一个spring boot项目spring-boot-mybatis-annotation,其他代码上一篇文章已经有了,下面列下注解版本的主要代码:

1.映射类UserMapper

@Mapper
public interface UserMapper { /*
* 查询 所有用户
*/
@Select("SELECT * FROM user ")
List<User> queryAllUsers(); /*
* 新增数据,并把主键绑定到User实体类
*/
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into User(name,password) values (#{name},#{password})")
public int add(User user);
}

2.添加访问控制层

UserController代码如下:

/**
* UserController
*
* @Author: java_suisui
*/
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService; /**
* 查询 所有用户
*/
@GetMapping("/queryAllUsers")
public List<User> queryAllUsers() {
return userService.queryAllUsers();
} @GetMapping("/add")
public User add(User user) {
int num = userService.add(user);
return user;
}
}

三、测试

1.测试查询所有用户

本地打开浏览器,访问http://localhost:8080/user/queryAllUsers,成功后返回如下结果:

[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]

2.测试新增用户

本地打开浏览器,访问http://localhost:8080/user/add?name=test1&password=123456,成功后返回如下结果:

{"id":13,"name":"test1","password":"123456","sex":null,"des":null}

四、注意事项

1.如果有很多Mapper接口如何一次性扫描

直接在程序启动类添加@MapperScan注解即可。

例如:

@MapperScan(basePackages= {"com.example.springboot.mybatisannotation.dao.mapper"})

2.SpringBoot Mybatis增加驼峰命名规则

因为是注解版,没有配置文件,所以SpringBoot增加驼峰命名需要增加一个自定义配置类(ConfigurationCustomizer)。

例如:

/**
* mybatis 注解版
*/
@Configuration
public class MybatisConfig { @Bean
public ConfigurationCustomizer configurationCustomizer() {
return new ConfigurationCustomizer() { @Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);//设置驼峰命名规则
}
};
}
}

到此SpringBoot整合Mybatis(XML配置方式)的功能已经全部实现,有问题欢迎留言沟通哦!

完整源码地址: https://github.com/suisui2019/springboot-study

推荐阅读

1.SpringBoot系列-整合Mybatis(XML配置方式)

1.Java中打印日志,这4点很重要!

3.SpringBoot集成JWT实现权限认证

4.一分钟带你了解JWT认证!

5.SpringBoot中如何优雅的读取yml配置文件?


限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

关注下方公众号即可免费领取:

SpringBoot系列-整合Mybatis(注解方式)

SpringBoot系列-整合Mybatis(注解方式)的更多相关文章

  1. SpringBoot系列-整合Mybatis(XML配置方式)

    目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...

  2. Spring Boot整合Mybatis&lpar;注解方式和XML方式&rpar;

    其实对我个人而言还是不够熟悉JPA.hibernate,所以觉得这两种框架使用起来好麻烦啊. 一直用的Mybatis作为持久层框架, JPA(Hibernate)主张所有的SQL都用Java代码生成, ...

  3. 5、springcloud整合mybatis注解方式

    1.上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者.中间还穿插使用了Hikari数据源和spring cloud整合mybatis.但是上篇使用mybatis时还是沿用了老的 ...

  4. SpringBoot整合Mybatis注解版---update出现org&period;apache&period;ibatis&period;binding&period;BindingException&colon; Parameter &&num;39&semi;XXX&&num;39&semi; not found&period; Available parameters are &lbrack;arg1&comma; arg0&comma; param1&comma; param2&rsqb;

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  5. SpringBoot数据访问之整合mybatis注解版

    SpringBoot数据访问之整合mybatis注解版 mybatis注解版: 贴心链接:Github 在网页下方,找到快速开始文档 上述链接方便读者查找. 通过快速开始文档,搭建环境: 创建数据库: ...

  6. springboot整合mybatis&lpar;注解&rpar;

    springboot整合mybatis(注解) 1.pom.xml: <?xml version="1.0" encoding="UTF-8"?> ...

  7. MyBatis从入门到精通&lpar;第3章&rpar;:MyBatis注解方式的基本使用

    MyBatis 注解方式就是将 SQL 语句直接写在DAO层的接口上. 在黑马录制的2018年双元视频课:\08 SSM整合案例[企业权限管理系统]\07.订单操作  有使用MyBatis注解进行多表 ...

  8. SpringBoot系列之&commat;Conditional注解用法简介

    SpringBoot系列之@Conditional注解用法简介 引用Spring官方文档的说法介绍一下@Conditional注解:Spring5.0.15版本@Conditional注解官方文档 @ ...

  9. mybatis源码学习--spring&plus;mybatis注解方式为什么mybatis的dao接口不需要实现类

    相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...

随机推荐

  1. Java的String中的subString&lpar;&rpar;方法

    方法如下: public String substring(int beginIndex, int endIndex) 第一个int为开始的索引,对应String数字中的开始位置, 第二个是截止的索引 ...

  2. Qt之添加Windows资源文件(&period;rc文件)

    简述 在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明.产品名称.产品版本.版权等信息... 由于是Windows平台相关的东西,Qt助手中对 ...

  3. Python进阶03 模块

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前看到了函数和对象.从本质上来说,它们都是为了更好的组织已经有的程序,以方便 ...

  4. 关于sql server 代理(已禁用代理xp)

    由于有数据库在恢复,导致计划不能执行,先操作如下: 关闭数据库的服务..然后把数据库文件剪切出来.然后在起服务.进入SqlSever删除数据库.因为文件已经剪切走了.所以不会删除文件.再把数据库拷到M ...

  5. PageRank算法MapReduce实现

    如果你现在需要计算网页的排名只有4一:数据如下面的: baidu 10.00 google,sina,nefu google 10.00 baidu sina 10.00 google nefu 10 ...

  6. smokeping安装部署最佳实践

    1.1安装smokeping [root@linux-node2 ~]# cat /etc/redhat-release              #查看服务器信息 CentOS release 6. ...

  7. Java操作Memcached

    本文复制其他播客,有好的技术文章希望各位大神能告知... 谢谢. 如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import j ...

  8. 【Oracle学习笔记】序列

    Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方,一般结合触发器使用. Sequence是数据库系统的特性,有的数据库有Sequen ...

  9. nginx&period;conf&lpar;centos6, 1&period;12&rpar;主配置文件修改

    #nginx1.12 centos6.xuser admin admin;worker_processes 4; error_log /data/services/logs/nginx_error.l ...

  10. Hadoop记录-yarn ResourceManager Active频繁易主问题排查(转载)

    一.故障现象 两个节点的ResourceManger频繁在active和standby角色中切换.不断有active易主的告警发出 许多任务的状态没能成功更新,导致一些任务状态卡在NEW_SAVING ...