mybatis系列-tkmybatis-06-使用注解方式扩展接口,进行多表关联查询

tk.mybatis 2.1.15 如何将枚举类型在类中进行自动转换 tk.mybatis 如何自定义枚举类型转换 阅读详情

        前面介绍了使用xml方式扩展数据库操作接口,其实,mybatis 注解方式 和 XML配置方式两者的使用基本上相同,只有在构建 SQL 脚本有所区别,所以这里重点介绍两者之间的差异,还是以多表关联查询举个例子。

示例

    还是上一章的需求,相比于上一章,我们在UsersMapper中增加selectAllUsersOrdersByAnnotation方法,然后在该方法上增加@Select注解和用于将返回结果映射到pojo对象中的@Results注解(跟xml中的ResultMap类似)

package com.example.demotkmybatisgeneralsecond.mapper;

import com.example.demotkmybatisgeneralsecond.pojo.UserOrders;

import com.example.demotkmybatisgeneralsecond.pojo.Users;

import org.apache.ibatis.annotations.Result;

import org.apache.ibatis.annotations.Results;

import org.apache.ibatis.annotations.Select;

import org.apache.ibatis.type.JdbcType;

import tk.mybatis.mapper.common.Mapper;

import java.util.List;



public interface UsersMapper extends Mapper<Users> {

    /*xml方式扩展接口*/

    List<UserOrders> selectAllUsersOrders();

    List<UserOrders> selectUsersOrders(String userId);



    /*注解方式扩展接口*/

    @Select(

            {

                    "SELECT a.*, b.id as order_id, b.receiver_name , b.total_amount, b.real_pay_amount\n" +

                            "    FROM users a LEFT JOIN orders b on a.id = b.user_id\n" +

                            "    WHERE b.id is not NULL"

            }

    )

    @Results({

            @Result(column="id", jdbcType= JdbcType.VARCHAR, property="id",id=true),

            @Result(column="username",jdbcType=JdbcType.VARCHAR,property="username"),

            @Result(column="password",jdbcType=JdbcType.VARCHAR,property="password"),

            @Result(column="nickname",jdbcType=JdbcType.VARCHAR,property="nickname"),

            @Result(column="realname",jdbcType=JdbcType.VARCHAR,property="realname"),

            @Result(column="face",jdbcType=JdbcType.VARCHAR,property="face"),

            @Result(column="mobile",jdbcType=JdbcType.VARCHAR,property="mobile"),

            @Result(column="email",jdbcType=JdbcType.VARCHAR,property="email"),

            @Result(column="sex",jdbcType=JdbcType.INTEGER,property="sex"),

            @Result(column="birthday",jdbcType=JdbcType.DATE,property="birthday"),

            @Result(column="created_time",jdbcType=JdbcType.TIMESTAMP,property="createdTime"),

            @Result(column="updated_time",jdbcType=JdbcType.TIMESTAMP,property="updatedTime"),

            @Result(column="order_id",jdbcType=JdbcType.VARCHAR,property="orderId"),

            @Result(column="receiver_name",jdbcType=JdbcType.VARCHAR,property="receiverName"),

            @Result(column="total_amount",jdbcType=JdbcType.INTEGER,property="totalAmount"),

            @Result(column="real_pay_amount",jdbcType=JdbcType.INTEGER,property="realPayAmount")

    })

    List<UserOrders> selectAllUsersOrdersByAnnotation();

}

 

        按如上方式修改UserMapper后,重启服务,注入到Service层中的UserMapper就增加了自定义的联表查询方法。

 

主要注解介绍

mybatis 注解方式的最大特点就是取消了 Mapper 的 XML 配置,具体的 SQL 脚本直接写在 Mapper 类上动态生成 。

mybatis 提供的常用注解有: @Insert 、@Update 、@Select、 @Delete 等标签,这些注解其实就是 MyBatis 提供的来取代其 XML配置文件的。

1、@Select 注解

@Select,主要在查询的时候使用,查询类的注解,一般简单的查询可以使用这个注解。

@Select({

"select",

"id, company_id, username, password, nickname, age, sex, job, face_image, province, ",

"city, district, address, auth_salt, last_login_ip, last_login_time, is_delete, ",

"regist_time",

"from sys_user",

"where id = #{id,jdbcType=VARCHAR}"

})

@Results({

@Result(column="id", property="id", jdbcType=JdbcType.VARCHAR, id=true),

@Result(column="company_id", property="companyId", jdbcType=JdbcType.VARCHAR),

@Result(column="face_image", property="faceImage", jdbcType=JdbcType.VARCHAR),

@Result(column="auth_salt", property="authSalt", jdbcType=JdbcType.VARCHAR),

@Result(column="last_login_ip", property="lastLoginIp", jdbcType=JdbcType.VARCHAR),

@Result(column="last_login_time", property="lastLoginTime", jdbcType=JdbcType.TIMESTAMP),

@Result(column="is_delete", property="isDelete", jdbcType=JdbcType.INTEGER),

@Result(column="regist_time", property="registTime", jdbcType=JdbcType.TIMESTAMP)

})

User selectByPrimaryKey(String id);

注意:如果是多个参数,需要将 #后面的参数和传入的变量名保持一致。

 

2、@Insert 注解

@Insert,插入数据时使用,直接传入数据实体类,mybatis 会属性自动解析到对应的参数。所以需要将 #后面的参数和实体类属性保持一致。

 

@Insert({

"insert into sys_user (id, company_id, ",

"username, password, ",

"nickname, age, sex, ",

"job, face_image, ",

"province, city, ",

"district, address, ",

"auth_salt, last_login_ip, ",

"last_login_time, is_delete, ",

"regist_time)",

"values (#{id,jdbcType=VARCHAR}, #{companyId,jdbcType=VARCHAR}, ",

"#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, ",

"#{nickname,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{sex,jdbcType=INTEGER}, ",

"#{job,jdbcType=INTEGER}, #{faceImage,jdbcType=VARCHAR}, ",

"#{province,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, ",

"#{district,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, ",

"#{authSalt,jdbcType=VARCHAR}, #{lastLoginIp,jdbcType=VARCHAR}, ",

"#{lastLoginTime,jdbcType=TIMESTAMP}, #{isDelete,jdbcType=INTEGER}, ",

"#{registTime,jdbcType=TIMESTAMP})"

})

int insert(User record);

 

注意:需要将 #后面的参数和实体类属性保持一致。

 

3、@Update 注解

@Update,一般数据更新操作可以使用 @Update注解实现。

@Update({

"update sys_user",

"set company_id = #{companyId,jdbcType=VARCHAR},",

"username = #{username,jdbcType=VARCHAR},",

"password = #{password,jdbcType=VARCHAR},",

"nickname = #{nickname,jdbcType=VARCHAR},",

"age = #{age,jdbcType=INTEGER},",

"sex = #{sex,jdbcType=INTEGER},",

"job = #{job,jdbcType=INTEGER},",

"face_image = #{faceImage,jdbcType=VARCHAR},",

"province = #{province,jdbcType=VARCHAR},",

"city = #{city,jdbcType=VARCHAR},",

"district = #{district,jdbcType=VARCHAR},",

"address = #{address,jdbcType=VARCHAR},",

"auth_salt = #{authSalt,jdbcType=VARCHAR},",

"last_login_ip = #{lastLoginIp,jdbcType=VARCHAR},",

"last_login_time = #{lastLoginTime,jdbcType=TIMESTAMP},",

"is_delete = #{isDelete,jdbcType=INTEGER},",

"regist_time = #{registTime,jdbcType=TIMESTAMP}",

"where id = #{id,jdbcType=VARCHAR}"

})

int updateByPrimaryKey(User record);

4、@Delete 注解

@Delete 数据删除的注解

@Delete({

"delete from sys_user",

"where id = #{id,jdbcType=VARCHAR}"

})

int deleteByPrimaryKey(String id);

 

5、@Results 和 @Result 注解 

@Results 和 @Result 主要作用是,当有一些特殊的场景需要处理,查询的返回结果与期望的数据格式不一致时,可以将将数据库中查询到的数值自动转化为具体的属性或类型,,修饰返回的结果集。比如查询的对象返回值属性名和字段名不一致,或者对象的属性中使用了枚举等。如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。

 

@Select({

"select",

"id, company_id, username, password, nickname, age, sex, job, face_image, province, ",

"city, district, address, auth_salt, last_login_ip, last_login_time, is_delete, ",

"regist_time",

"from sys_user",

"where id = #{id,jdbcType=VARCHAR}"

})

@Results({

@Result(column="id", property="id", jdbcType=JdbcType.VARCHAR, id=true),

@Result(column="company_id", property="companyId", jdbcType=JdbcType.VARCHAR),

@Result(column="face_image", property="faceImage", jdbcType=JdbcType.VARCHAR),

@Result(column="auth_salt", property="authSalt", jdbcType=JdbcType.VARCHAR),

@Result(column="last_login_ip", property="lastLoginIp", jdbcType=JdbcType.VARCHAR),

@Result(column="last_login_time", property="lastLoginTime", jdbcType=JdbcType.TIMESTAMP),

@Result(column="is_delete", property="isDelete", jdbcType=JdbcType.INTEGER),

@Result(column="regist_time", property="registTime", jdbcType=JdbcType.TIMESTAMP)

})

User selectByPrimaryKey(String id);

 

上面的例子可以看到,数据库中的company_id 字段和实体类中定义的 companyId 属性的名称不一致,需要Result 转换。

 

以上就是项目中常用的增、删、改、查的操作, 当然这些在基本的方法不需要手动写,不管是tkMybatis还是Mybatis Spring默认都是支持的。讲这些主要是熟悉这些常用的注解。

传参方式

上面介绍了mybatis 常用的注解,如何实现增删改查的操作,相信很多人会有疑问了: mybatis 是如何将参数传递到 SQL 中的呢,都有哪几种传参方式呢? 下面就来一一介绍mybatis 注解版的传参方式。其实跟xml配置比较类似。

1、直接传参

对于单个参数的方法,可直接使用 #{id} 的方式接收同名的变量参数。

@Delete("delete from sys_user where id = #{id,jdbcType=VARCHAR}")

int deleteByPrimaryKey(String id);

 

2、使用 @Param 注解

@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 。如果你的方法有多个参数,@Param 注解 会在方法的参数上就能为它们取自定义名字,参数则先以 "param" 作前缀,再加上它们的参数位置作为参数别名。例如, #{param1}、 #{param2},这个是默认值。如果注解是 @Param("person"),那么参数就会被命名为 #{person}。

@Select("SELECT * FROM sys_user WHERE username = #{username} and password = #{password}")

List<User> getListByUserSex(@Param("username") String userName, @Param("password") String password);


// 不自定义param 时,默认使用 param + 参数序号 或者 0,1,值就是参数的值。

@Select("SELECT * FROM sys_user WHERE username = #{param1} and password = #{param2}")

List<User> getListByUserSex(String userName, String password);

 

3、Map 传值 

需要传送多个参数时,也可以考虑使用 Map的形式。

@Select("SELECT * FROM sys_user WHERE username=#{username} AND password = #{password}")

List<User> getListByNameAndSex(Map<String, Object> map);

//调用时将参数依次加入到 Map 中即可。

Map param= new HashMap();

param.put("username","admin");

param.put("password","123456");

List<User> users = userMapper.getListByNameAndSex(param)

 

4、使用pojo对象

使用pojo对象传参是比较常用的传参方式。像上面的insert、update 等方法。都是直接传入user对象。

@Update({

"update sys_user",

"set company_id = #{companyId,jdbcType=VARCHAR},",

"username = #{username,jdbcType=VARCHAR},",

"password = #{password,jdbcType=VARCHAR},",

"nickname = #{nickname,jdbcType=VARCHAR},",

"age = #{age,jdbcType=INTEGER},",

"sex = #{sex,jdbcType=INTEGER},",

"job = #{job,jdbcType=INTEGER},",

"face_image = #{faceImage,jdbcType=VARCHAR},",

"province = #{province,jdbcType=VARCHAR},",

"city = #{city,jdbcType=VARCHAR},",

"district = #{district,jdbcType=VARCHAR},",

"address = #{address,jdbcType=VARCHAR},",

"auth_salt = #{authSalt,jdbcType=VARCHAR},",

"last_login_ip = #{lastLoginIp,jdbcType=VARCHAR},",

"last_login_time = #{lastLoginTime,jdbcType=TIMESTAMP},",

"is_delete = #{isDelete,jdbcType=INTEGER},",

"regist_time = #{registTime,jdbcType=TIMESTAMP}",

"where id = #{id,jdbcType=VARCHAR}"

})

int updateByPrimaryKey(User record);

以上,就是Mybatis 传参的四种方式。根据方法的参数选择合适的传值方式。

 

Mybatis通用Join的实现 你是否还在为mybatis的多表关联查询而写xml烦恼,是否还在为动态组装查询条件烦恼,是否还在为此没有合适的解决方案烦恼? mybatis-extension插件,解决开发过程中需要多表关联时需手写xml的烦恼,同样支持通过传入sql返回结果集。 纯mybatis原生支持,轻量级无侵入,可用于辅助mybatis-plus、tk.mybatis或者mybatis-generator使用。 1.运行依赖: * mybatis>=3.5.2 * jdk>=1.8 2.特性: 2.1. 支持多表 阅读详情

相关推荐

Mybatis基于注解形式的sql语句生成实例代码

主要介绍了 Mybatis基于注解形式的sql语句生成实例代码,需要的朋友可以参考下

TkMyBatis插件&构造方法常用注解

TkMyButis插件&构造方法常用注解

北执南念的博客 705

从仿真到器件:铌酸锂电光调制器Comsol建模避坑指南

本文详细介绍了铌酸锂电光调制器在Comsol中的建模全流程,涵盖晶体切向选择、材料参数配置、多物理场耦合等关键技术。通过实战案例和调试技巧,帮助工程师避开常见建模陷阱,提升仿真精度与效率,特别适用于高速光通信系统的器件设计与优化。

m2n3b4v5c6的博客 420

mybatis注解方式扩展查询

在generater自动生成的代码基础上拓展复杂查询方法 一、使用@SelectProvider注解 //此查询结果是一对多的数据,通过自定resultMap进行一对多映射 @SelectProvider(type = BlessingCommentProvider.class, method = "queryBlessing") @ResultMap("resultMap...

yao_00的博客 701

C#实战:基于ONNX与SCRFD/ArcFace的高效人脸识别系统开发

本文详细介绍了如何在C#环境中,利用ONNX Runtime高效部署SCRFD人脸检测与ArcFace人脸识别模型,构建一个完整的、高性能的人脸识别系统。内容涵盖环境搭建、模型推理、人脸对齐、特征提取等核心模块,并提供了从Demo到生产系统的优化思路与实战代码,为.NET开发者提供了一套开箱即用的解决方案。

weixin_29061821的博客 488

Ubuntu升级遇到grub-efi-amd64-signed安装失败?3步搞定这个烦人错误

本文深度解析Ubuntu系统升级时grub-efi-amd64-signed安装失败并提示“cannot find EFI directory”错误的根本原因。该错误通常由EFI系统分区挂载异常、BIOS/UEFI引导模式不匹配或dpkg包状态死锁导致。文章提供了三步精准修复流程:首先检查并修复ESP分区挂载,其次处理dpkg依赖问题,最后针对传统BIOS系统提供适配方案,帮助用户安全彻底地解决这一常见升级难题。

r7s8t的博客 398

MyBatis增强注解

MyBatis提供了简单的Java注解,使得我们可以不配置XML格式的Mapper文件,方便的编写简单的数据库操作代码: public interface UserMapper { @Select("SELECT * FROM users WHERE id = #{userId}") User getUser(@Param("userId") String userId); } <configuration> <settings> <setti

qq_38229543的博客 329

2D激光slam四种算法建图效果对比

2d激光slam四种算法建图比较

m0_73791170的博客 8449

tkmybatis详细教程(一篇就明白)

tkmybatis 是对底层 sql 进行了抽象封装,不需要考虑 sql 怎么写,只需要按照逻辑思维,遵循 tkmybatis 的语法即可实现数据库操作。 本文适合对springboot项目结构有一定了解的读者。 本文的项目基础是一个demo项目(多模块的)。 1. 配置 1、添加 tkmybatis 的依赖 <dependency> <groupId>tk.mybatis</groupId>

dgh112233的博客 5万+

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一、简单介绍 二、Car Racing 2D (2D赛车) 游戏内容与操作 三、相关说明 四、游戏代码框架 五、知识点 六、游戏效果预览 七、实现步骤 八、工程源码地址 九、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便

仙魁XAN 7702

基于学术研究风云卫星数据下载教程

目录 一、相关网址 1.登录注册网址:国家卫星气象中心 2.风云数据服务客户端下载网址 3.风云卫星遥感数据服务网址 二、下载数据步骤 1.首先在注册登录网址,注册一个账户 2.待账户审核后,登录账户即可搜索并下载数据 三、相关工具下载 1.登录风云卫星遥感数据服务网址 2.NCSA HDFView软件 3.风云卫星数据(L1)处理软件包(FENGYUN Toolkit v1.1) 4.静止卫星云图分区图显示软件(SECView) 5.风云二号静止气象卫星数据及产品处理..

珞瑜的博客 1万+

mybatis 注解式 XML式 通用mapper(tk-mybatis)使用

原因:mybatis用的jdbc驱动版本mysql-connector-java-5.1.6.jar,mysql数据库版本为5.6.4,jdbc在连接数据库时候会发送测试语句SET OPTION SQL_SELECT_LIMIT=DEFAULT,这在mysql5.6以下版本是可以的 ,但是5.6不再支持SET,需要使用新的语句。、为了实现在maven默认环境下打包时,Mybatis的接口和mapper文件在同一包中,可以通过将接口文件放在src/main/java某个包中,而在。

qq_42152032的博客 1520

cesium 气象云(体积云)

本文介绍了基于Cesium的气象云渲染技术方案,其核心是通过GPU加速的光线投射算法实现气象云的三维可视化。方案采用分层架构设计:GPU计算层由顶点着色器和片段着色器组成,负责光线投射计算、3D纹理采样和颜色映射;CPU控制层处理数据预处理、纹理创建和参数配置。关键技术包括:顶点着色器计算相机位置和光线方向,片段着色器实现光线步进采样、颜色映射和半透明混合。该方案高效解决了气象数据与地理场景的融合问题,支持云图、温度场等复杂三维气象数据的实时渲染,具有高真实感和良好性能。

God's asylum的博客 1204

tk.mybatis 使用注解实现动态配置查询条件(一)

由于很多查询条件都有共性,而且都是重复的工作,所以自定义了注解,来实现动态查询的功能,这个是最简单的查询 ,后面有时间再扩展。主要用到以下的注解和相关的类(简单记录,后期再整理): 1、BaseQuery.class @Data public class BaseQuery { /** * 页码 */ private int pageNo =...

比嗨皮兔 5630

基于YOLOv26的护栏损坏检测系统原理讲解

本文介绍了一种基于YOLOv26深度学习的护栏损坏检测系统。该系统通过车载摄像头或固定监控采集道路护栏图像,利用改进的YOLOv26算法实现高效准确的损坏检测。系统采用分层架构设计,包含数据采集、检测处理、分析评估和应用服务四个层次,能够自动识别变形、断裂、缺失等五种常见损坏类型,并评估损坏严重程度。相比传统人工检测方法,该系统大幅提高了检测效率和准确性,降低了人工成本和安全风险。关键技术包括多尺度特征融合、注意力机制和自适应非极大值抑制等创新设计,使系统在复杂道路环境下仍能保持稳定的检测性能。

一键难忘的博客 328

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TKMybatis的介绍和使用详解

tk-mybatis

C18298182575的博客 1268

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

tk mybatis update 各种类型

1.updateByExample:根据给定的example更新所有属性,包括主键id,所有属性都需要有值 package com.bsx.test; public class Test { private int id; private String name; public int getId() { return id; } ...

彻底拆分,一切可控! 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基于tk.mybatis:mapper实现的通用多表查询,更新操作及上传jar到maven中心仓库(三)

一、重点网站    1.https://issues.sonatype.org     此网站的主要目的是检查你要上传的groupId是否是唯一的,且是否是你所有的    2.https://oss.sonatype.org         此网站的主要目的是发行你上传的jar    3.http://search.maven.org         发布jar后,此网站会最先获取到你上传的jar...

初学程序员 9281

tk mybatis join 方案 最小改动兼容之前的condition

import org.apache.commons.beanutils.BeanUtils; import tk.mybatis.mapper.entity.Condition; import tk.mybatis.mapper.entity.EntityColumn; import tk.mybatis.mapper.entity.Example; import tk.mybatis.map...

jy00885876的专栏 1508

让Mapper做更复杂的事情——GroupBy

此文之前先发一段鸡汤吧,至今我依然记着这么三段话: 1、 人类进步最大的动力是懒; 2、 能用机器完成的事情绝对不应该用人工来完成; 3、 让框架来适应业务,而不是业务适应框架。 1背景 之前完成了,让通用Mapper支持Join的功能,再查阅业务代码,另一个常出现的XML就是SUM,COUNT,MAX,MIN 的相关统计的功能。当然用其他方式也能实现统计,比如Spark,Flink等大数据实时计算框架,但是这在绝大部分中小公司来说性价比是非常低的,本文暂不讨论,实时数据的计算。 1.1 需要了解但是不介绍

aman801004的博客 6615

SpringBoot 集成 TkMybatis

本文由 简悦 SimpRead 转码, 原文地址 www.shuzhiduo.com 前提: 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。 在本篇总结教程,不在进行SpringBoot集成Mybatis的概述。 如有需要, 请查看我另一篇文章 SpringBoot 集成 MyBatis,这里不再赘述。 一. 实现步骤 1. 引入TkMybatis的Maven依赖 2. 实体类的相关配置,@Id,@Table 3. Mapper继.

占星安啦的博客 4729

MyBatis-Plus 还手写 Join 联表查询?一个依赖轻松搞定,真香!

众所周知,Mybatis Plus 封装的 mapper 不支持 join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表 join,要不然就没必要采用关系型数据库了。那么有没有一种不通过硬 SQL 的形式,通过框架提供 join 能力呢?答案是,可以有,今天专门拉出来再说一下,确实能提高不少的开发效率!

qq_45725597的博客 1338

mybatis多表关联查询(一对多)

一 概述 一个用户可以拥有多个订单,可以在用户pojo类中添加一个泛型为Orders的集合 方法: 1.映射文件中使用resultMap配置 2. 用户表中加List&lt; Orders &gt; orderList属性 二 案例代码 目标:查询指定用户的订单 1.写sql语句 SELECT u.id,u.username,o.id oid,o.number...

BlueSkyInMyMind的博客 1225

# Mybatis 高级用法和tk.mybatis使用

一样,都会作为表字段,表字段默认为Java对象的Field名字驼峰转下划线形式。进行指定,对不符合第一条默认规则的可以通过这种方式指定表名。表名默认使用类名,驼峰转下划线(只对大写字母进行处理),如。注解可以忽略字段,添加该注解的字段不会作为表字段使用。指定不符合第3条规则的字段名。注解作为主键的字段,可以有多个。注解的字段作为联合主键。

不积跬步,无以至千里;不积小流,无以成江海 1096

tkmybatis更新无效

项目中持久层引入了tkmybatis,在一个更新的操作中,遇到一个问题:根据主键更新数据,方法为: public interface UpdateByPrimaryKeySelectiveMapper<T> { /** * 根据主键更新属性不为null的值 * * @param record * @return */ ...

IT云清 3801

使用TkMybatis逆向生成带中文注释文件,并使用其常用的方法

首先说明,博主用的是springboot,如使用原生态的mybatis的一些配置文件请自行百度 贴上pom文件 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS...

beyond丿灬的博客 2074
上一篇: mybatis系列-tkmybatis-05-使用xml方式扩展接口,进行多表关联查询
下一篇: mybatis系列-tkmybatis-07-使用动态SQL方式扩展接口,进行多表关联查询
tinygodd
博客等级 码龄13年 28粉丝 24原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值