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


上一篇文章《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等高並發分布式、大數據、機器學習等技術。
關注下方公眾號即可免費領取:

Java碎碎念公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM