mybatis plus 等使用

一、

Mybatis-Plus默認會自動將添加的用戶的id打到對象上,插入用戶後可以直接得到id。

Mybatis需要手動添加useGeneratedKeys="true"

<insert id="insertSelective" parameterType="hx.insist.demo.dto.User" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
    ...
</insert>

在setting中設置的useGeneratedKeys參數會對接口映射器中的方法產生效果,但不會對xml映射器中的方法產生效果。且接口映射器中配置的useGeneratedKeys參數將覆蓋setting中配置的參數。xml映射器配置useGeneratedKeys參數是獨立的。

二、

Mybatis默認沒有開啓下劃線轉駝峯命名,需手動開啓,否則不會將某些字段映射,但是不開啓不會報異常

mybatis.configuration.map-underscore-to-camel-case=true

或者這樣

mybatis.configuration.mapUnderscoreToCamelCase=true

若沒有開啓這個轉換也有方法轉換:

  • a)、配置resultMap,將對應字段和bean屬性映射
  • b)、select起別名

三、

  • 如果使用mybatis-spring-boot-starter依賴,需要配置mybatis.mapper-locations
  • 如果使用mybatis-plus-boot-starter 依賴,需要配置 mybatis-plus.mapper-locations
  • 如果使用mybatis-plus 依賴,需要配置 mybatis.mapper-locations
<dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>1.1.1</version>
 </dependency>

mybatis.mapper-locations: classpath:static/mybatis/*.xml,classpath:static/mybatis/Ext/*.xml
<dependency>
   <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.1.0</version>
</dependency>

mybatis.mapper-locations=classpath:mapper/*.xml
<dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>3.1.0</version>
 </dependency>

mybatis-plus.mapper-locations=classpath:mapper/*.xml

Mapper接口和xml文件的名字不必一致,只需要xml中對應的namespace對應就可以了:

<mapper namespace="hx.insist.demo.mapper.UserMapper">

四、

Mybatis-Plus使用中,mapper接口繼承(extends)BaseMapper時必須要顯示的寫上此類是對於哪個pojo的,即

extends BaseMapper,否則在執行相應原生mapper接口方法時會報錯:無效的綁定語句。

Invalid bound statement (not found): hx.insist.demo.mapper.xxxMapper.xxxxx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章