我的编程空间,编程开发者的网络收藏夹
学习永远不晚

TKMybatis的使用方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

TKMybatis的使用方法是什么

本篇内容介绍了“TKMybatis的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、什么是 TKMybatis

TKMybatis 是基于 Mybatis 框架开发的一个工具,内部实现了对单表的基本数据操作,只需要简单继承 TKMybatis 提供的接口,就能够实现无需编写任何 sql 即能完成单表操作。

二、TKMybatis 使用

2.1 Springboot 项目中加入依赖

<!--通用mapper起步依赖--><dependency>    <groupId>tk.mybatis</groupId>    <artifactId>mapper-spring-boot-starter</artifactId>    <version>2.0.4</version></dependency>

在 POJO 类中加入依赖

<!--每个工程都有Pojo,都需要用到该包对应的注解--><dependency>    <groupId>javax.persistence</groupId>    <artifactId>persistence-api</artifactId>    <version>1.0</version>    <scope>compile</scope></dependency>

在启动类中配置 @MapperScan 扫描

@SpringBootApplication@MapperScan(basePackages = {"com.tom.order.mapper"})public class OrderApplication {    public static void main(String[] args) {        SpringApplication.run(OrderApplication.class, args);    }}

2.2 使用讲解

2.1 实体类中使用

在实体类中,常用的注解和意义为:

@Table:描述数据库表信息,主要属性有name(表名)、schema、catalog、uniqueConstraints等。

@Id:指定表主键字段,无属性值。

@Column:描述数据库字段信息,主要属性有name(字段名)、columnDefinition、insertable、length、nullable(是否可为空)、precision、scale、table、unique、updatable等。

@ColumnType:描述数据库字段类型,可对一些特殊类型作配置,进行特殊处理,主要属性有jdbcType、column、typeHandler等。

其他注解如:@Transient、@ColumnResult、@JoinColumn、@OrderBy、@Embeddable等暂不描述

2.2 dao中使用

单表操作,只需要继承 tk.mybatis 下的 Mapper 接口即可使用

import tk.mybatis.mapper.common.Mapper; @Repositorypublic interface BrandMapper extends Mapper<Brand> {}

查看具体使用:内部都已经封装了基本的单表操作

TKMybatis的使用方法是什么TKMybatis的使用方法是什么

 2.2.3 Service 层中使用

操作类型介绍
增加Mapper.insert(record);保存一个实体,null的属性也会保存,不会使用数据库默认值
Mapper.insertSelective(record);保存一个实体,忽略空值,即没提交的值会使用使用数据库默认值

删除Mapper.delete(record);根据实体属性作为条件进行删除,查询条件使用等号
Mapper.deleteByExample(example)根据Example条件删除数据
Mapper.deleteByPrimaryKey(key)根据主键字段进行删除,方法参数必须包含完整的主键属性

修改Mapper.updateByExample(record,example)根据Example条件更新实体`record`包含的全部属性,null值会被更新
Mapper.updateByExampleSelective(record, example)根据Example条件更新实体`record`包含的不是null的属性值
Mapper.updateByPrimaryKey(record)根据主键更新实体全部字段,null值会被更新
Mapper.updateByPrimaryKeySelective(record)根据主键更新属性不为null的值

查询Mapper.select(record)根据实体中的属性值进行查询,查询条件使用等号
Mapper.selectAll()查询全部结果
Mapper.selectByExample(example)根据Example条件进行查询
Mapper.selectByPrimaryKey(key)根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
Mapper.selectCount(record)根据实体中的属性查询总数,查询条件使用等号
Mapper.selectCountByExample(example)根据Example条件进行查询总数
Mapper.selectOne(record)

根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号。

但是如果存在某个属性为int,则会初始化为0。可能影响到实际使用

2.3 实际案例

1 dao 层使用

 import tk.mybatis.mapper.common.Mapper; @Repositorypublic interface BrandMapper extends Mapper<Brand> {  }

2 service 层使用

import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import org.apache.commons.lang.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import tk.mybatis.mapper.entity.Example; import java.util.List; @Servicepublic class BrandServiceImpl implements BrandService {     @Autowired    private BrandMapper brandMapper;     public Example createExample(Brand brand) {        // 自定义条件搜索对象 Example        Example example = new Example(Brand.class);        Example.Criteria criteria = example.createCriteria(); //条件构造器         if (brand != null) {            if (!StringUtils.isEmpty(brand.getName())) {                criteria.andLike("name", '%' + brand.getName() + '%');            }             if (!StringUtils.isEmpty(brand.getLetter())) {                criteria.andEqualTo("letter", brand.getLetter());            }        }        return example;    }     @Override    public List<Brand> findAll() {        return brandMapper.selectAll();    }     @Override    public List<Brand> findList(Brand brand) {        Example example = createExample(brand);        return brandMapper.selectByExample(example);    }     @Override    public Brand findById(Integer id) {        return brandMapper.selectByPrimaryKey(id);    }         @Override    public PageInfo<Brand> pageSearch(Integer page, Integer size) {        // 分页实现        // 后面的查询必须是紧跟集合查询        PageHelper.startPage(page, size);        // 查询集合        List<Brand> brands = brandMapper.selectAll();        return new PageInfo<Brand>(brands);    }     @Override    public PageInfo<Brand> pageSearchAndCondition(Brand brand, Integer page, Integer size) {        // 开始分页        PageHelper.startPage(page, size);        // 搜索数据        Example example = createExample(brand);        List<Brand> list = brandMapper.selectByExample(example);        return new PageInfo<Brand>(list);    }         @Override    public void add(Brand brand) {        // 使用通用 Mapper.insertSelective        // 方法中但凡带有selective就会忽略空值        int i = brandMapper.insertSelective(brand);    }         @Override    public void update(Brand brand) {        // 使用通用mapper.update();        brandMapper.updateByPrimaryKeySelective(brand);    }         @Override    public void del(Integer id) {        brandMapper.deleteByPrimaryKey(id);    }}

三、扩展介绍

使用

public interface BaseMapper<T> extends tk.mybatis.mapper.common.BaseMapper<T>, IdsMapper<T>, MySqlMapper<T>, OracleMapper<T> {}pom.xml引入<dependency>    <groupId>tk.mybatis</groupId>    <artifactId>mapper-spring-boot-starter</artifactId>    <version>2.1.5</version></dependency>

注:为了演示所以同时引用了MySqlMapper和OracleMapper 正常情况是只能引用一种因为他们有一个相同的方法insertList(List list)

泛型(实体类)的类型必须符合要求

实体类按照如下规则和数据库表进行转换,注解全部是JPA中的注解:

  • 表名默认使用类名,驼峰转下划线(只对大写字母进行处理),如UserInfo默认对应的表名为user_info。

  • 表名可以使用@Table(name = “tableName”)进行指定,对不符合第一条默认规则的可以通过这种方式指定表名。

  • 字段默认和@Column一样,都会作为表字段,表字段默认为Java对象的Field名字驼峰转下划线形式。

  • 可以使用@Column(name = “fieldName”)指定不符合第3条规则的字段名。

  • 使用@Transient注解可以忽略字段,添加该注解的字段不会作为表字段使用。

  • 建议一定是有一个@Id注解作为主键的字段,可以有多个@Id注解的字段作为联合主键。

所有的mapper继承此类将具有以下通用方法

查询方法

BaseSelectMapper下的通用方法

方法名称作用
List selectAll();查询全部数据
T selectByPrimaryKey(Object key);通过主键查询
T selectOne(T record);通过实体查询单个数据
List select(T record);通过实体查询多个数据
int selectCount(T record);通过实体查询实体数量
boolean existsWithPrimaryKey(Object key);通过主键查询此主键是否存在

SelectByIdsMapper下的通用方法

方法名称作用
List selectByIds(String var1);通过多个主键查询数据

添加方法
BaseInsertMapper下的通用方法

方法名称作用
int insert(T record);全部添加
int insertSelective(T record);选择性(不为null)的添加

MySqlMapper下的通用方法

方法名称作用
int insertList(List list);批量插入
int insertUseGeneratedKeys(T record);如果主键为自增可使用此方法获取添加成功的主键

OracleMapper下的通用方法

方法名称作用
int insertList(List list);批量插入

修改方法

BaseUpdateMapper下的通用方法

方法名称作用
int updateByPrimaryKey(T record);按照实体进行修改
int updateByPrimaryKeySelective(T record);按照实体进行有选择的修改

删除方法
BaseDeleteMapper下的通用方法

方法名称作用
int delete(T record);按照实体进行删除
int deleteByPrimaryKey(Object o);按照主键进行删除

IdsMapper下的通用方法

方法名称作用
int deleteByIds(String var1);按照主键批量删除

“TKMybatis的使用方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

TKMybatis的使用方法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

TKMybatis的使用方法是什么

本篇内容介绍了“TKMybatis的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是 TKMybatisTKMybat
2023-06-21

TreeSet的使用方法是什么

TreeSet是Java中的一个集合类,它实现了Set接口,用于保存一组元素并且保持这些元素的顺序。TreeSet使用红黑树(Red-Black tree)数据结构来存储元素,并且能够根据元素的自然顺序或者指定的比较器对元素进行排序。要使
TreeSet的使用方法是什么
2024-03-08

phpqrcode的使用方法是什么

PHP QR Code 是一个用于生成二维码的 PHP 类库。它可以让你简单快速地生成包含各种信息的二维码,比如 URL、文本等。使用 PHP QR Code 生成二维码的方法如下:下载 PHP QR Code 类库:首先需要下载 PHP
phpqrcode的使用方法是什么
2024-03-02

gist的使用方法是什么

本篇内容介绍了“gist的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:创建gist仓库当你初次进入 gist 页面时
2023-07-06

canalyzer使用的方法是什么

Canalyzer是一个网络分析工具,用于捕获和分析网络流量。它提供了多种方法来使用:1. 捕获数据包:Canalyzer可以通过网络接口捕获数据包。用户可以选择特定的网络接口,并设置过滤器以仅捕获感兴趣的数据包。捕获的数据包可以保存到文件
2023-09-22

QuartusII使用的方法是什么

Quartus II是一种集成电路设计(IC)软件,用于设计和开发数字电路。以下是使用Quartus II的一些常见方法:1. 创建新项目:打开Quartus II软件,选择"File"菜单,然后选择"New Project Wizard"
2023-09-26

getjson的使用方法是什么

getjson()方法是jQuery中的一个方法,用于从服务器加载JSON格式的数据。它用于发送一个HTTP GET请求并从服务器获取JSON数据。使用该方法可以很方便地从服务器获取数据,然后在页面中使用这些数据进行展示或处理。使用get
getjson的使用方法是什么
2024-03-02

dw2xls的使用方法是什么

DW2XLS是一个将数据窗口(DataWindow)导出为Excel文件的工具。其使用方法如下:首先,确保已经安装了DW2XLS插件。该插件可以从Sybase官方网站上下载并安装。打开目标应用程序的数据窗口,选择要导出的数据窗口对象。在数据
2023-10-27

sqlfront的使用方法是什么

SQLFront 是一个 SQL Server 数据库管理工具,用于执行 SQL 查询和管理数据库。使用 SQLFront 的基本步骤如下:下载并安装 SQLFront。打开 SQLFront,并连接到您要管理的 SQL Server 数
sqlfront的使用方法是什么
2024-05-21

saltstack的使用方法是什么

SaltStack是一个基于Python的开源自动化和配置管理工具,它使用一个称为Salt的远程执行框架来执行命令和配置任务。要使用SaltStack,您需要在系统上安装Salt Master和Salt Minion。Master负责管理
saltstack的使用方法是什么
2024-03-06

tensorflow_hub的使用方法是什么

要使用TensorFlow Hub,您需要首先安装TensorFlow和TensorFlow Hub库。然后,您可以使用TensorFlow Hub库中提供的预训练模型和特征提取器来进行迁移学习或直接使用这些模型进行预测。以下是Tenso
tensorflow_hub的使用方法是什么
2024-04-03

location.href的使用方法是什么

location.href是一个属性,用于获取或设置当前页面的URL。通过设置location.href属性,可以实现页面的跳转功能。例如,可以通过设置location.href属性来实现页面的重定向,或者通过获取location.href
location.href的使用方法是什么
2024-03-08

FileOpenDlg使用的方法是什么

FileOpenDlg是一个函数,用于打开一个对话框,让用户选择一个文件。它是Windows操作系统提供的函数。使用方法如下:首先,需要包含Windows.h头文件。使用FileOpenDlg函数打开文件对话框,该函数有以下参数:HWND
2023-10-23

sphinx的使用方法是什么

Sphinx是一个用于生成文档的工具,特别适用于编写技术文档和API文档。以下是使用Sphinx的基本步骤:安装Sphinx:使用pip工具在命令行中运行以下命令进行安装:pip install -U Sphinx初始化Sphinx项目:
2023-10-24

kindeditor使用的方法是什么

KindEditor是一种基于web的所见即所得编辑器,可以用于在网页上进行富文本编辑。使用KindEditor进行编辑时,可以使用以下方法:1. 初始化编辑器:通过调用KindEditor的`KindEditor.create()`方法来
2023-08-21

window.location.hash的使用方法是什么

window.location.hash是用于获取或设置URL中的片段标识符(hash)部分的属性。片段标识符是URL中“#”符号后的部分,通常用于在页面内部进行导航或标识特定内容。要获取当前URL中的片段标识符,可以使用以下语法:va
window.location.hash的使用方法是什么
2024-03-08

ThreadLocal使用方法是什么

这篇“ThreadLocal使用方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ThreadLocal使用方法是什么
2023-06-29

jQuery cdn使用的方法是什么

使用jQuery的方法之一是通过引入CDN(内容分发网络)来加载jQuery库。以下是使用jQuery CDN的步骤:1. 打开你的HTML文件。2. 在``标签内添加以下代码,以引入jQuery的CDN链接:```html
2023-08-18

java callable使用的方法是什么

在Java中,`Callable`接口是用于创建可返回结果并可能抛出异常的任务的一种方式。要使用`Callable`接口,您需要遵循以下步骤:1. 创建一个实现`Callable`接口的类,并实现`call()`方法。`call()`方法是
2023-10-25

sql getdate()的使用方法是什么

在SQL语句中,GETDATE()函数用于获取当前系统日期和时间。使用方法如下:SELECT GETDATE();这将返回当前系统日期和时间,例如:2021-08-16 15:30:00.000。您还可以将GETDATE()函数与IN
sql getdate()的使用方法是什么
2024-03-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录