Mybatis簡(jiǎn)介
- mybatis是一個(gè)比較靈活的orm,簡(jiǎn)單好用。
- 官方文檔
- 下面僅僅是介紹一些容易混淆的知識(shí)點(diǎn)
項(xiàng)目依賴(僅僅是java項(xiàng)目)
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Mybatis的mapper,xml 和 接口
- mapper的實(shí)現(xiàn),一種是使用xml,一種是接口的方式,還有是兩種結(jié)合起來(lái)使用
- 如果僅僅是使用xml的方式,配置mapper的時(shí)候配置的是xml文件的路徑,mapper里面的namespace僅僅就是一個(gè)區(qū)分不同mapper的作用,和java里面的包名沒(méi)有任何關(guān)系
<mappers>
<mapper resource="mapper\CountryMapper.xml"/>
</mappers>
- 如果是使用java接口的方式,這個(gè)時(shí)候就需要配置包名。如果僅僅是用java就需要用注解來(lái)實(shí)現(xiàn)各種操作
<mappers>
<package name="com.suse.yudapi.mapper"/>
</mappers>
- java接口和xml的方式,這種方式需要xml的包名和java接口的包名對(duì)應(yīng)。配置的時(shí)候是配置包名,mybatis會(huì)通過(guò)包名去解析對(duì)應(yīng)路徑里面的xml,如果沒(méi)有找到就會(huì)報(bào)錯(cuò),這個(gè)時(shí)候xml里面的namespace也需要和包名對(duì)應(yīng)起來(lái)
枚舉處理
- 使用typeHandlers 這個(gè)要配置在typAliases后面
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
javaType="com.suse.yudapi.model.CountryType"/>
</typeHandlers>
Spring Boot Mybatis
- 依賴
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
- 配置(由 xml 變成了 java 配置),配置類是org.mybatis.spring.boot.autoconfigure.MybatisProperties。下面列出常用的配置
mybatis.mapperLocations="classpath:mapper/*.xml"
mybatis.typeAliasesPackage="com.suse.model"
mybatis.typeHandlersPackage=""
mybatis.configuration.mapUnderscoreToCamelCase=""
- mapper接口直接使用 @mapper 注解進(jìn)行配置
- 開(kāi)啟掃描mapper的配置 @MapperScan
?
End