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

上一篇文章《SpringBoot系列-整合Mybatis(XML配置方式)》介紹了XML配置方式整合的過程,本文介紹下SpringBoot經過註解方式整合Mybatis的過程。java

1、經常使用註解說明

  • @Mapper

能夠給接口自動生成一個實現類,讓spring對mapper接口的bean進行管理,而且能夠省略去寫複雜的xml文件。git

  • @Options

配置映射語句的屬性。例如:@Options(useGeneratedKeys = true, keyColumn = "id"):指定表的自增主鍵並自動綁定到實體類對象。github

  • @Result

修飾返回的結果集,關聯實體類屬性和數據庫字段一一對應,若是實體類屬性和數據庫屬性名保持一致,就不須要這個屬性來修飾。spring

  • @Param

若是你的映射方法的形參有多個,這個註解使用在映射方法的參數上就能爲它們取自定義名字。若不給出自定義名字,多參數(不包括 RowBounds 參數)則先以 "param" 做前綴,再加上它們的參數位置做爲參數別名。例如 #{param1}, #{param2}。數據庫

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

這四個註解分別表明將會被執行的 SQL 語句。它們用字符串數組(或單個字符串)做爲參數。若是傳遞的是字符串數組,字符串之間先會被填充一個空格再鏈接成單個完整的字符串。apache

2、實戰

新建一個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;
    }
}

3、測試

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}

4、注意事項

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

Java碎碎念公衆號

相關文章
相關標籤/搜索