springboot集成tkmapper及基本使用教程
一. 簡介
tkMapper是?個MyBatis插件,是在MyBatis的基礎上提供了很多工具,讓開發(fā)變得簡單,提高開發(fā)效率。
- 提供了針對單表通用的數(shù)據(jù)庫操作方法
- 逆向工程(根據(jù)數(shù)據(jù)表生成實體類、mapper接口、映射文件)這里不做介紹
二、集成mybatis&tkmapper
2.1、所需依賴
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
2.2、配置yml
spring: datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai username: root password: root mybatis: mapper-locations: classpath:mappers/*Mapper.xml type-aliases-package: com.lkl.tkmapper.entity
mybatis主要配置mapper映射文件及實體類別名包配置
2.3、主啟動類上加注解掃描
三、基本使用
3.1、創(chuàng)建BaseMapper接口
tkMapper已經(jīng)完成了對單表的通用操作的封裝,封裝在Mapper接口和MySqlMapper接口;因此如果我們要完
成對單表的操作,只需自定義Mapper接?繼承Mapper接口和MySqlMapper接口
創(chuàng)建基礎mapper接口繼承Mapper接口和MySqlMapper接口以供其他接口直接繼承
/** * tkmapper的公共接口 供其它接口繼承 * * @author likelong * @date 2022/8/5 */ public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> { }
3.2、entity實體層
先看數(shù)據(jù)庫表結(jié)構(gòu),數(shù)據(jù)庫user表
對應實體類,使用tkmybaist時要給實體類注解,比如說@Table就是表名【類注解】,@Id就是主鍵,@Column就是列【屬性注解】。(符合命名規(guī)則則可以省去這些注解,如下實體類)
這里值得注意的是表的列名和類的字段名的對比,比如說我表的字段名是user_name,那么映射成類的字段應該是userName,符合駝峰命名法!
@Data public class User { @Id private Integer id; private String userName; private String password; private String address; private String phone; }
3.3、mapper持久層
創(chuàng)建接口直接繼承我們的BaseMapper接口即可
public interface UserMapper extends BaseMapper<User> { }
3.4、service服務層
服務層接口
/** * @author likelong * @date 2022/8/6 */ public interface UserService { User getById(int id); List<User> list(); }
服務層實現(xiàn)類,UserMapper接口此時就具備單表的基本增刪改查操作
/** * @author likelong * @date 2022/8/6 */ @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getById(int id) { return userMapper.selectByPrimaryKey(id); } @Override public List<User> list() { return userMapper.selectAll(); } }
四、測試
userMapper具備單表的基本增刪改查操作(因為所有的接口都繼承自Mapper<T>, MySqlMapper<T>
,這2個接口中封裝好了所有的單表操作,直接調(diào)用相關方法即可。),如下:
五、注意:
此時的UserMapper僅具備單表的基本增刪改查操作,如若有多表關聯(lián)操作時,也可以在mapper映射文件中直接編寫相關的sql腳本即可(規(guī)則同mybatis一致)。
參考資料
SpringBoot使用tkmapper
1.加載依賴
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
2.引入逆向工程的插件
引入逆向工程插件的目的是為了省略繁瑣的創(chuàng)建各種實體類,映射文件和xml文件等步驟,這些文件在自己創(chuàng)建的過程中很有可能會出現(xiàn)不匹配的情況,所以逆向工程可以很方便完成這些工作。
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!--插件配置文件所在的位置--> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> </configuration> <!--在插件中依然需要插入插件所需要的依賴--> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.1.5</version> </dependency> </dependencies> </plugin> </plugins>
3.插件配置文件
具體的設置和注解在下面的程序中都有說明,并且相對的在文件中設置路徑的時候,可以對目標包進行復制路徑之后粘貼在目標位。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 引入數(shù)據(jù)庫連接配置 --> <!--<properties resource="jdbc.properties" />--> <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <property name="beginningDelimiter" value="`"/> <property name="endingDelimiter" value="`"/> <!--配置GeneralDAO --> <plugin type="tk.mybatis.mapper.generator.MapperPlugin"> <property name="mappers" value="general.GeneralMapper"/> </plugin> <!-- 配置數(shù)據(jù)庫連接 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mall?useSSL=false" userId="root" password="123456"> </jdbcConnection> <!-- 配置實體類存放路徑 --> <javaModelGenerator targetPackage="domain" targetProject="src/main/java"/> <!-- 配置 XML 存放路徑 --> <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mapper"/> <!-- 配置 DAO 存放路徑 --> <javaClientGenerator targetPackage="mapper" targetProject="src/main/java" type="XMLMAPPER"/> <!--配置置需要指定生成的數(shù)據(jù)庫和表,%代表所有表--> <table tableName="%"> </table> </context> </generatorConfiguration>
強調(diào)強調(diào)強調(diào)
逆向工程生成了實體類以及各個參數(shù)的set/get方法,但是沒有生成實體類的構(gòu)造方法,一定要自己添加構(gòu)造方法?。?!
4.錯誤
1.在tkmapper進行逆向工程的時候顯示依賴找不到
自己的原因: 因為使用的maven聚合工程,所以在父工程引入了打包插件,即下面的依賴
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins>
解決辦法: 將父工程的<build>
標簽中的內(nèi)容全部進行刪除,之后將pom文件重新加載。
對于一個問題也是同樣的解決方案: 在打包過程中顯示找不到main函數(shù)
2.提示如下的錯誤
Mon Mar 08 15:03:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
根據(jù)提示中的錯誤,則需要設置數(shù)據(jù)庫連接地址中的useSSL
"jdbc:mysql://localhost:3306/mall?useSSL=false"
3.修改上述的錯誤之后,還是生成不了
自己的問題: tkmapper的版本過高,所以將1.4.0的版本降至1.3.5之后,問題解決。
到此這篇關于springboot集成tkmapper及基本使用的文章就介紹到這了,更多相關springboot集成tkmapper內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringMVC實現(xiàn)參數(shù)校驗配置方法
這篇文章主要介紹了SpringMVC實現(xiàn)參數(shù)校驗的配置方式,Spring MVC會拋出MethodArgumentNotValidException異常,并將錯誤信息綁定到相應的字段上,感興趣的朋友跟隨小編一起看看吧2024-03-03Java中StringUtils工具類進行String為空的判斷解析
這篇文章主要介紹了Java中StringUtils工具類進行String為空的判斷解析,具有一定借鑒價值,需要的朋友可以參考下2018-01-01SpringBoot整合Dubbo zookeeper過程解析
這篇文章主要介紹了SpringBoot整合Dubbo zookeeper過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02