一、tkmybatis使用註解
tkmybatis允許使用註解來完成對mapper接口的映射,代碼效率高,可讀性強。使用註解的方式可以簡化XML配置文件的編寫,代碼片段如下:
public interface UserMapper extends Mapper<User> {
@Select("SELECT * FROM user WHERE username = #{username}")
User selectByUsername(String username);
@Insert("INSERT INTO user(id, username, password, age) VALUES(#{id}, #{username}, #{password}, #{age})")
void insert(User user);
@Update("UPDATE user SET username = #{username} WHERE id = #{id}")
void updateUsernameById(@Param("username") String username, @Param("id") Long id);
@Delete("DELETE FROM user WHERE id=#{id}")
void deleteById(Long id);
}
上述代碼展示了註解方式下mapper接口的定義,其中@Select、@Insert、@Update、@Delete註解分別對應了SQL語句中的select、insert、update、delete操作。
二、tkmybatis是啥
tkmybatis是對Mybatis的增強和封裝,是在Mybatis基礎上做了二次封裝,簡化了Mybatis的操作,提高了代碼的可讀性和可維護性。在使用tkmybatis時無需手動編寫SQL語句,通過簡單的註解方式即可完成對數據庫的操作。
與Mybatis不同,tkmybatis支持Java 8新特性,例如lambda表達式和optionals等。另外,tkmybatis還引入了一些有用的插件和功能,例如PageHelper插件,可用於分頁查詢。
三、tkmybatis自動生成
tkmybatis還提供了自動代碼生成工具,通過讀取數據庫表信息,生成相應的實體類、mapper接口、xml配置文件。生成的代碼實現了根據主鍵id的CRUD操作,同時通過註解的方式實現了按字段進行排序、條件查詢等操作。
生成的代碼不僅可以減少手寫代碼的工作量,還可以避免手寫代碼出現的錯誤,提高開發效率。生成代碼需要使用tkmybatis-generator插件,配置代碼如下:
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<dependencies>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.2.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
四、tkmybatis的模糊查詢
tkmybatis提供了多種方式進行模糊查詢,例如根據名稱模糊查詢、根據日期範圍查詢。下面是通過註解完成根據名稱模糊查詢的代碼:
public interface UserMapper extends Mapper<User> {
@Select("SELECT * FROM user WHERE name LIKE #{name}")
List<User> selectByName(@Param("name") String name);
}
上述代碼中,使用了LIKE語句對name字段進行模糊查詢,其中#{name}是SQL語句中的佔位符,而@Param(“name”)註解則對應了該佔位符的名稱和參數值。
五、tkmybatis官網
tkmybatis的官方網站為 https://mapperhelper.github.io/docs/ ,網站上提供了文檔、API、示例、FAQ等內容,方便開發者使用和了解tkmybatis。
六、tkmybatis原理
tkmybatis的原理與Mybatis類似,通過讀取mapper接口中的註解信息和XML配置文件對數據庫進行操作。tkmybatis對一些常見操作進行了封裝,提高了開發效率和代碼質量。與Mybatis不同的是,tkmybatis通過封裝對mapper接口的調用,簡化了底層代碼的編寫。
七、tkmybatis和mybatisplus的區別
tkmybatis和mybatisplus都是對Mybatis的封裝,提供了更友好的API和方法,但兩者的實現略有不同。mybatisplus內置了分頁、條件構造器、動態表名、JSON字段等功能,而tkmybatis則提供了自動生成代碼的功能、忽略數據庫字段、In條件等功能。
兩者的選擇取決於具體的業務需求和團隊的編程風格。
八、tkmybatis in條件
tkmybatis提供了In條件的支持,可以通過註解方式簡單地完成對In條件的使用。下面是一段實現In條件的代碼:
public interface UserMapper extends Mapper<User> {
@Select("SELECT * FROM user WHERE id IN (${ids})")
List<User> selectByIds(@Param("ids") String ids);
}
在上述代碼中,使用了${ids}佔位符來替代id值,然後通過@Param註解將ids和id值對應起來,實現了對id值進行In條件查詢。
九、tkmybatis id回填
tkmybatis提供了id回填的功能,當插入一個對象時,實體對象中的id將會自動回填到該對象中,從而方便後續操作。下面是一段實現id回填的代碼:
public interface UserMapper extends Mapper<User> {
@Insert("INSERT INTO user(name,age) VALUES(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insert(User user);
}
在上述代碼中,使用了@Options註解,並設置useGeneratedKeys=true和keyProperty=”id”,當插入一個對象時,實體對象中的id值將會被自動回填到該對象中。
十、tkmybatis忽略數據庫字段選取
tkmybatis提供了忽略數據庫字段選取的功能,允許開發者根據需要選擇查詢的字段,從而提高查詢效率。下面是一段實現選取部分字段的代碼:
public interface UserMapper extends Mapper<User> {
@Select("SELECT id,name FROM user WHERE id = #{id}")
@Results(id = "userResult", value = {
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name")
})
User selectById(@Param("id") Long id);
}
在上述代碼中,使用了@Select註解指定了查詢語句和選取的字段,而@Results註解則定義了每個查詢字段的對應關係。
原創文章,作者:LUYNT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/313387.html