目录html
上一篇文章《SpringBoot系列-整合Mybatis(XML配置方式)》介绍了XML配置方式整合的过程,本文介绍下SpringBoot经过注解方式整合Mybatis的过程。java
能够给接口自动生成一个实现类,让spring对mapper接口的bean进行管理,而且能够省略去写复杂的xml文件。git
配置映射语句的属性。例如:@Options(useGeneratedKeys = true, keyColumn = "id"):指定表的自增主键并自动绑定到实体类对象。github
修饰返回的结果集,关联实体类属性和数据库字段一一对应,若是实体类属性和数据库属性名保持一致,就不须要这个属性来修饰。spring
若是你的映射方法的形参有多个,这个注解使用在映射方法的参数上就能为它们取自定义名字。若不给出自定义名字,多参数(不包括 RowBounds 参数)则先以 "param" 做前缀,再加上它们的参数位置做为参数别名。例如 #{param1}, #{param2}。数据库
这四个注解分别表明将会被执行的 SQL 语句。它们用字符串数组(或单个字符串)做为参数。若是传递的是字符串数组,字符串之间先会被填充一个空格再链接成单个完整的字符串。apache
新建一个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.添加访问控制层springboot
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配置方式)
限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号便可免费领取: