Mybatis和Mybaits-plus在springboot項目中使用的區別


1、概念
MyBatis 是一款優秀的持久層框架。它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數據庫中的記錄。
MyBatis-Plus(簡稱 MP)是一個 MyBatis的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
 

2、Mybatis和Mybaits-plus依賴

Mybatis和Mybaits-plus在springboot項目中使用,需要先引入依賴

 

Mybatis和Mybaits-plus的sprongboot項目依賴在中央倉庫鏈接:
Mybatis依賴:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>


 Mybaits-plus依賴:https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
還需要mysql依賴:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
 https://mvnrepository.com/artifact/mysql/mysql-connector-java

3、springboot項目中其它依賴

3.1 依賴:

要想使用mybatis和mybatis-plus,還需要其它必備依賴:
先引入parent:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> 

spring-boot-starter-parent提供了springboot統一的依賴管理和插件管理;主要的依賴其實是繼承了spring-boot-dependencies(通過標簽dependencyManagement管理依賴聲明),本質是繼承了它然后擴展了插件配置。

其它依賴:

mysql依賴
lombok依賴
spring-boot-starter:這是Spring Boot的核心啟動器,包含了自動配置、日志和YAML。
spring-boot-starter-web:支持全棧式Web開發,包括Tomcat和spring-webmvc。(controller層@RequestMapper等注解需要用到)
3.2 mysql數據源配置
# mysql數據庫連接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tzq?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

4、Mybatis與Mybatis-Plus項目結構

4.1 Mybatis:

 

 

 

4.1.1 Mybatis注意事項:
注意事項一:mapper映射的xml文件如果寫在java文件夾下,在編譯的時候是不會被編譯的(編譯器只會編譯java文件夾下的.java文件)。否則運行會出現Invalid bound statement (not found)錯誤(找不到映射xml文件)。
解決辦法(兩種):
①:xml文件放到resource文件夾下
②:(推薦)在pom文件的`< build >``標簽下,添加:(將java文件下的xml文件也打包)
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>

注意事項二:需要在啟動類或者配置類上加上@MapperScanner( ),否則在啟動的時候報錯(找不到mapper):

 

注意事項三:需要在配置文件application.properties中添加mybatis.mapper-locations

mybatis.mapper-locations=classpath*:com/example/test002/mapper/**/*.xml

否則 在運行時也會報錯Invalid bound statement (not found):(與注意事項第一個一樣的錯誤)

 

 

 

4.2 Mybatis-Plus

 

 

 

 

 

注意:

mb是增強型通用接口基本實現了單表查詢的所有方法,可以直接使用,單表查詢時無需配置xml文件(自己非要手寫sql也可以配置xml映射文件(手動狗頭));
mb下的多表查詢與mybatis一模一樣,還是需要配置xml文件;
mb配置mybatis-plus.mapper-locations,必須加plus,不可以mybatis.mapper-locations,否則配置無效!!!!!

 

 

 

 

5、附錄(所有可復用粘貼的文件)
5.1 xml文件格式(可以粘貼復制)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.testmybatisplus.mapper.StudentsMapper">

<resultMap id="BaseResultMap" type="com.example.testmybatisplus.entity.Students">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="age" jdbcType="VARCHAR" property="age" />
</resultMap>

<select id="findTzq" resultType="com.example.testmybatisplus.entity.Students">
select * from students where id = #{id}
</select>

</mapper> 

 

5.2 配置文件
server.port=8004
spring.application.name=testApplication

# mysql數據庫連接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/tzq?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

# 配置mybatis-plus的mapper位置
mybatis-plus.mapper-locations=classpath*:com/example/testmybatisplus/mapper/**/*.xml

# 配置mybatis的mapper位置
mybatis.mapper-locations=classpath*:com/example/testmybatisplus/mapper/**/*.xml

5.3 打包xml資源文件
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>

 


免責聲明!

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



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