springboot集成tkmapper及基本使用教程
一. 簡(jiǎn)介
tkMapper是?個(gè)MyBatis插件,是在MyBatis的基礎(chǔ)上提供了很多工具,讓開(kāi)發(fā)變得簡(jiǎn)單,提高開(kāi)發(fā)效率。
- 提供了針對(duì)單表通用的數(shù)據(jù)庫(kù)操作方法
- 逆向工程(根據(jù)數(shù)據(jù)表生成實(shí)體類(lèi)、mapper接口、映射文件)這里不做介紹
二、集成mybatis&tkmapper
2.1、所需依賴(lài)
<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映射文件及實(shí)體類(lèi)別名包配置
2.3、主啟動(dòng)類(lèi)上加注解掃描
三、基本使用
3.1、創(chuàng)建BaseMapper接口
tkMapper已經(jīng)完成了對(duì)單表的通用操作的封裝,封裝在Mapper接口和MySqlMapper接口;因此如果我們要完
成對(duì)單表的操作,只需自定義Mapper接?繼承Mapper接口和MySqlMapper接口
創(chuàng)建基礎(chǔ)mapper接口繼承Mapper接口和MySqlMapper接口以供其他接口直接繼承
/** * tkmapper的公共接口 供其它接口繼承 * * @author likelong * @date 2022/8/5 */ public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> { }
3.2、entity實(shí)體層
先看數(shù)據(jù)庫(kù)表結(jié)構(gòu),數(shù)據(jù)庫(kù)user表
對(duì)應(yīng)實(shí)體類(lèi),使用tkmybaist時(shí)要給實(shí)體類(lèi)注解,比如說(shuō)@Table就是表名【類(lèi)注解】,@Id就是主鍵,@Column就是列【屬性注解】。(符合命名規(guī)則則可以省去這些注解,如下實(shí)體類(lèi))
這里值得注意的是表的列名和類(lèi)的字段名的對(duì)比,比如說(shuō)我表的字段名是user_name,那么映射成類(lèi)的字段應(yīng)該是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服務(wù)層
服務(wù)層接口
/** * @author likelong * @date 2022/8/6 */ public interface UserService { User getById(int id); List<User> list(); }
服務(wù)層實(shí)現(xiàn)類(lèi),UserMapper接口此時(shí)就具備單表的基本增刪改查操作
/** * @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(); } }
四、測(cè)試
userMapper具備單表的基本增刪改查操作(因?yàn)樗械慕涌诙祭^承自Mapper<T>, MySqlMapper<T>
,這2個(gè)接口中封裝好了所有的單表操作,直接調(diào)用相關(guān)方法即可。),如下:
五、注意:
此時(shí)的UserMapper僅具備單表的基本增刪改查操作,如若有多表關(guān)聯(lián)操作時(shí),也可以在mapper映射文件中直接編寫(xiě)相關(guān)的sql腳本即可(規(guī)則同mybatis一致)。
參考資料
SpringBoot使用tkmapper
1.加載依賴(lài)
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
2.引入逆向工程的插件
引入逆向工程插件的目的是為了省略繁瑣的創(chuàng)建各種實(shí)體類(lèi),映射文件和xml文件等步驟,這些文件在自己創(chuàng)建的過(guò)程中很有可能會(huì)出現(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> <!--在插件中依然需要插入插件所需要的依賴(lài)--> <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.插件配置文件
具體的設(shè)置和注解在下面的程序中都有說(shuō)明,并且相對(duì)的在文件中設(shè)置路徑的時(shí)候,可以對(duì)目標(biāo)包進(jìn)行復(fù)制路徑之后粘貼在目標(biāo)位。
<?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ù)庫(kù)連接配置 --> <!--<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ù)庫(kù)連接 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mall?useSSL=false" userId="root" password="123456"> </jdbcConnection> <!-- 配置實(shí)體類(lèi)存放路徑 --> <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ù)庫(kù)和表,%代表所有表--> <table tableName="%"> </table> </context> </generatorConfiguration>
強(qiáng)調(diào)強(qiáng)調(diào)強(qiáng)調(diào)
逆向工程生成了實(shí)體類(lèi)以及各個(gè)參數(shù)的set/get方法,但是沒(méi)有生成實(shí)體類(lèi)的構(gòu)造方法,一定要自己添加構(gòu)造方法?。?!
4.錯(cuò)誤
1.在tkmapper進(jìn)行逆向工程的時(shí)候顯示依賴(lài)找不到
自己的原因: 因?yàn)槭褂玫膍aven聚合工程,所以在父工程引入了打包插件,即下面的依賴(lài)
<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>
標(biāo)簽中的內(nèi)容全部進(jìn)行刪除,之后將pom文件重新加載。
對(duì)于一個(gè)問(wèn)題也是同樣的解決方案: 在打包過(guò)程中顯示找不到main函數(shù)
2.提示如下的錯(cuò)誤
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ù)提示中的錯(cuò)誤,則需要設(shè)置數(shù)據(jù)庫(kù)連接地址中的useSSL
"jdbc:mysql://localhost:3306/mall?useSSL=false"
3.修改上述的錯(cuò)誤之后,還是生成不了
自己的問(wèn)題: tkmapper的版本過(guò)高,所以將1.4.0的版本降至1.3.5之后,問(wèn)題解決。
到此這篇關(guān)于springboot集成tkmapper及基本使用的文章就介紹到這了,更多相關(guān)springboot集成tkmapper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例
本篇文章主要介紹了android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)配置方法
這篇文章主要介紹了SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)的配置方式,Spring MVC會(huì)拋出MethodArgumentNotValidException異常,并將錯(cuò)誤信息綁定到相應(yīng)的字段上,感興趣的朋友跟隨小編一起看看吧2024-03-03Java中StringUtils工具類(lèi)進(jìn)行String為空的判斷解析
這篇文章主要介紹了Java中StringUtils工具類(lèi)進(jìn)行String為空的判斷解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01SpringBoot整合Dubbo zookeeper過(guò)程解析
這篇文章主要介紹了SpringBoot整合Dubbo zookeeper過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Mysql存儲(chǔ)java對(duì)象實(shí)例詳解
這篇文章主要介紹了Mysql存儲(chǔ)java對(duì)象實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11