Spring Cloud Spring Boot mybatis分佈式微服務雲架構(二十六)使用MyBatis註解配置詳解(1)

以前在Spring Boot中整合MyBatis時,採用了註解的配置方式,相信不少人仍是比較喜歡這種優雅的方式的,也收到很多讀者朋友的反饋和問題,主要集中於針對各類場景下註解如何使用,下面就對幾種常見的狀況舉例說明用法。html

傳參方式

下面經過幾種不一樣傳參方式來實現前文中實現的插入操做。app

使用@Param

在以前的整合示例中咱們已經使用了這種最簡單的傳參方式,以下:spa

@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
int insert(@Param("name") String name, @Param("age") Integer age);

這種方式很好理解,@Param中定義的name對應了SQL中的#{name}age對應了SQL中的#{age}.net

使用Map

以下代碼,經過Map對象來做爲傳遞參數的容器:code

@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})")
int insertByMap(Map<String, Object> map);

對於Insert語句中須要的參數,咱們只須要在map中填入同名的內容便可,具體以下面代碼所示:htm

Map<String, Object> map = new HashMap<>();
map.put("name", "CCC");
map.put("age", 40);
userMapper.insertByMap(map);

使用對象

除了Map對象,咱們也可直接使用普通的Java對象來做爲查詢條件的傳參,好比咱們能夠直接使用User對象:對象

@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
int insertByUser(User user);

這樣語句中的#{name}#{age}就分別對應了User對象中的nameage屬性。get

源碼來源

相關文章
相關標籤/搜索