目錄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等高併發分佈式、大數據、機器學習等技術。
關注下方公衆號便可免費領取: