日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tkMapper的使用

發布時間:2024/1/1 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tkMapper的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tkMapper的使用

        • 1. 整合tkMapper
          • 1.1 添加tkMapper依賴
          • 1.2 修改啟動類的`@MapperScan`注解的包為`tk.mybatis.spring.annotation.MapperScan`
        • 2.使用tkMapper
          • 2.1 創建數據表
          • 2.2 創建實體類
          • 2.3 創建Dao
          • 2.4 測試
        • 3. tkMapper-條件查詢
        • 4.逆向工程
          • 4.1 添加逆向工程依賴
          • 4.2 配置
          • 4.3 運行

基于MyBatis提供了很多第三方插件,這些插件通常可以完成數據操作方法的封裝、數據庫逆向工程工作(根據數據表生成實體類、生成映射文件)

  • myBatis-plus
  • tkMapper

tkMapper是一個MyBatis插件,是在MyBatis的基礎上提供了很多的工具,讓開發變簡單,提高開發效率。

  • 提供了針對單表通用的數據庫操作方法
  • 提供了逆向工程(根據數據表生成實體類、Dao、映射文件)

1. 整合tkMapper

1.1 添加tkMapper依賴
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> <dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.1.5</version> </dependency>
1.2 修改啟動類的@MapperScan注解的包為tk.mybatis.spring.annotation.MapperScan

2.使用tkMapper

2.1 創建數據表
CREATE TABLE `schools` (`s_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '學校id',`s_name` varchar(100) NOT NULL COMMENT '學校名稱',`s_loc_provice` varchar(100) NOT NULL DEFAULT '' COMMENT '學校所處省',`s_loc_city` varchar(100) DEFAULT '' COMMENT '學校所處市',`s_loc_district` varchar(100) DEFAULT '' COMMENT '學校所處區',`s_loc_specific` varchar(100) DEFAULT '' COMMENT '學校區下的具體位置',PRIMARY KEY (`s_id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='學校基本信息表';
2.2 創建實體類
@Data @NoArgsConstructor @AllArgsConstructor @Table(name = "schools") // 指定實體類對應的數據表的表名 public class School {@Idprivate Integer sId;private String sName;private String sLocProvice;private String sLocCity;private String sLocDistrict;private String sLocSpecific; // 注意:該命名方式對應數據表:s_loc_specific }

如果數據表的命名方式和實體類不一致,則可以采取注解的方式來對應
比如:

public class School {@Column(name = "s_id")@Idprivate Integer sId; }
2.3 創建Dao
import com.computerskills.competition.entity.School; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper;public interface SchoolDao extends Mapper<School>, MySqlMapper<School> { }
2.4 測試
  • 右鍵:
  • 選擇test
  • 選擇Junit4
  • 添加依賴
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope><version>4.13.2</version> </dependency>
  • 編寫測試類
import com.computerskills.competition.CompetitionApplication; import com.computerskills.competition.entity.School; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class) @SpringBootTest(classes = CompetitionApplication.class) public class SchoolDaoTest {@Autowiredprivate SchoolDao schoolDao;@Testpublic void test() {School school = new School();school.setSName("成都大學");school.setSLocProvice("四川省");school.setSLocCity("成都市");school.setSLocDistrict("成華區");school.setSLocSpecific("成洛大道2025號");int i = schoolDao.insert(school);System.out.println(i);} }

3. tkMapper-條件查詢

  • 基本查詢
@Test public void test() {// 條件查詢// 1. 創建一個Example封裝類別School查詢條件Example example = new Example(School.class);// 2. 創建條件容器Example.Criteria criteria = example.createCriteria();// 3.選擇sId == 1 或者 sId == 2的數據 ,這里的sId對應實體類的字段 // criteria.andEqualTo("sId",1); // criteria.orEqualTo("sId",2);// 4. 查詢sName中含有`大學`字樣的數據criteria.andLike("sName", "%大學");List<School> schoolList = schoolDao.selectByExample(example);for (School school: schoolList) {System.out.println(school);}// 查詢記錄總條數System.out.println(schoolDao.selectCount(new School()));// 查詢記錄總條數(滿足條件)System.out.println(schoolDao.selectCountByExample(example));
  • 分頁查詢
@Test public void test2() {// 基本的分頁查詢int pageNum = 2;int pageSize = 10;int start = (pageNum-1)*pageSize;// 構造分頁信息RowBounds rowBounds = new RowBounds(start, pageSize);List<School> schoolList = schoolDao.selectByRowBounds(new School(),rowBounds);for (School school: schoolList) {System.out.println(school);} } @Test public void test3() {// 帶有條件的分頁查詢Example example = new Example(School.class);Example.Criteria criteria = example.createCriteria();criteria.andEqualTo("sId",1);int pageNum = 1;int pageSize = 10;int start = (pageNum-1)*pageSize;RowBounds rowBounds = new RowBounds(start, pageSize);List<School> schoolList = schoolDao.selectByExampleAndRowBounds(example,rowBounds);for (School school: schoolList) {System.out.println(school);} }

4.逆向工程

4.1 添加逆向工程依賴

mybatis的一個maven依賴

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-maven-plugin --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.5</version><dependencies><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><!--mapper--><!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.1.5</version></dependency></dependencies></plugin>
4.2 配置
  • 在resources/generator目錄下創建generatorConfig.xml
    內容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration> <!-- 引入數據庫連接配置--><context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"><property name="beginningDelimiter" value=""></property><property name="endimgDelimiter" value=""></property> <!-- 配置GeneralDao--><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="com.computerskills.competition.general.GeneralDao"></property></plugin><!-- 配置數據庫連接--><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/used"userId="root"password="123456"></jdbcConnection><!-- 配置實體類存放路徑--><javaModelGenerator targetPackage="com.computerskills.competition.entity" targetProject="src/main/java"/><!-- 配置XML 存放路徑--><sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/><!-- 配置 DAO 存放路徑--><javaClientGenerator targetPackage="com.computerskills.competition.dao" targetProject="src/main/java" type="XMLMAPPER"/><!-- 配置需要指定生成的數據庫和表 %代表所有表--> <!-- <table tableName="%">--><!-- mysql 配置 --> <!-- <generatedKey column="id" sqlStatement="Mysql" identity="true"/>--> <!-- </table>--><!-- 生成指定表 --><table tableName="goods"><!-- mysql 配置 --><generatedKey column="g_id" sqlStatement="Mysql" identity="true"></generatedKey></table></context> </generatorConfiguration>
  • 將配置文件設置到逆向工程的maven插件中
<!-- 配置資源文件路徑 --><configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile></configuration>

4.3 運行

總結

以上是生活随笔為你收集整理的tkMapper的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。