一、tk.mybatis簡介
tk.mybatis是一個基於Mybatis的增強工具包,它使用簡單的註解來完成Mybatis單表的基本crud操作,同時提供通用的Mapper接口,可以在不寫SQL語句的情況下實現單表的增刪改查操作。
相較於使用Mybatis的mapper.xml文件,tk.mybatis使用註解方式實現Mapper接口,簡化了開發的難度,提高了開發效率。
二、tk.mybatis的主要優點
1、使用簡單的註解實現單表crud操作,避免了繁瑣的XML配置,提高了開發效率。
2、提供通用的Mapper接口,實現單表的增刪改查操作,減少了代碼量。
3、支持複雜SQL語句的自定義查詢,提供了更靈活的查詢方式。
4、支持多種數據庫,提供了針對不同數據庫的方言,大大提升了兼容性。
三、tk.mybatis的使用方法
1、依賴引入
在pom.xml文件中引入tk.mybatis的依賴:
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>latest</version> </dependency>
2、Mapper接口的編寫
創建Mapper接口並使用註解來完成單表的crud操作:
public interface UserMapper extends Mapper<User> { // 使用註解方式完成查詢操作 @Select("SELECT * FROM user WHERE name = #{name}") User findByUserName(@Param("name") String name); }
3、整合Spring
在Spring Boot中整合tk.mybatis非常簡單,只需要在啟動類上添加註解@EnableMapperScan註解即可,如下所示:
@SpringBootApplication @EnableMapperScan(basePackages = "com.example.mapper") public class MybatisDemoApplication { public static void main(String[] args) { SpringApplication.run(MybatisDemoApplication.class, args); } }
四、tk.mybatis常見問題
1、tk.mybatis沒找到
在pom.xml文件中引入依賴後,如果編譯出現找不到tk.mybatis的錯誤,可以嘗試使用以下命令清除Maven本地倉庫的緩存:
mvn dependency:purge-local-repository
2、tk.mybatis官網
tk.mybatis的官方網站為https://mapperhelper.github.io/mybatis-mapper-3/,上面有詳細的使用文檔和示例,可以供開發者參考。
3、tk.mybatis連接查詢方式
對於tk.mybatis支持的連接查詢方式,可以使用Provider註解來自定義SQL語句,這樣可以完成更複雜的連接查詢。
public interface UserMapper extends Mapper<User> { // 使用Provider註解自定義SQL語句 @SelectProvider(type = UserSqlProvider.class, method = "findUsersByJoin") List<User> findUsersByJoin(@Param("name") String name, @Param("age") Integer age); class UserSqlProvider { public String findUsersByJoin(Map<String, Object> params) { StringBuilder sql = new StringBuilder("SELECT u.*, r.rolename FROM user u "); sql.append("LEFT JOIN user_role ur ON u.id = ur.user_id "); sql.append("LEFT JOIN role r ON r.id = ur.role_id "); sql.append("WHERE 1 = 1 "); if (params.containsKey("name")) { sql.append("AND u.name = #{name} "); } if (params.containsKey("age")) { sql.append("AND u.age = #{age} "); } return sql.toString(); } } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240044.html