- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Mybatis使用@param注解四种情况解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、方法有多个参数 。
例如:
接口方法:
1
2
3
4
|
@Mapper
public
interface
UserMapper {
Integer insert(
@Param
(
"username"
) String username,
@Param
(
"address"
) String address);
}
|
对应的xml:
1
2
3
|
<insert id=
"insert"
parameterType=
"org.javaboy.helloboot.bean.User"
>
insert into user (username,address) values (#{username},#{address});
</insert>
|
原因:当不使用 @Param 注解时,mybatis 是不认识哪个参数叫什么名字的,尽管在接口中定义了参数的名称,mybatis仍然不认识。这时mybatis将会以接口中参数定义的顺序和SQL语句中的表达式进行映射,这是默认的.
2、方法参数要取别名 。
例如 。
1
2
3
4
|
@Mapper
public
interface
UserMapper {
Integer insert(
@Param
(
"username"
) String username,
@Param
(
"address"
) String address);
}
|
对应的xml:
1
2
3
|
<
insert
id
=
"insert"
parameterType
=
"org.javaboy.helloboot.bean.User"
>
insert into user (username,address) values (#{username},#{address});
</
insert
>
|
3、XML 中的 SQL 使用了 $ 拼接sql 。
$ 会有注入的问题,但是有的时候不得不使用 $ 符号,例如要传入列名或者表名的时候,这个时候必须要添加 @Param 注解 。
例如:
1
2
3
4
|
@Mapper
public
interface
UserMapper {
List<User> getAllUsers(
@Param
(
"order_by"
)String order_by);
}
|
对应xml:
1
2
3
4
5
6
|
<
select
id
=
"getAllUsers"
resultType
=
"org.javaboy.helloboot.bean.User"
>
select * from user
<
if
test
=
"order_by!=null and order_by!=''"
>
order by ${order_by} desc
</
if
>
</
select
>
|
4、动态 SQL 中使用了参数作为变量 。
如果在动态 SQL 中使用参数作为变量,那么也需要 @Param 注解,即使你只有一个参数。例如如下方法:
1
2
3
4
|
@Mapper
public
interface
UserMapper {
List<User> getUserById(
@Param
(
"id"
)Integer id);
}
|
对应xml:
1
2
3
4
5
6
|
<
select
id
=
"getUserById"
resultType
=
"org.javaboy.helloboot.bean.User"
>
select * from user
<
if
test
=
"id!=null"
>
where id=#{id}
</
if
>
</
select
>
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/bear7/p/13572495.html 。
最后此篇关于Mybatis使用@param注解四种情况解析的文章就讲到这里了,如果你想了解更多关于Mybatis使用@param注解四种情况解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我经常看到这个,但我一直不明白。为什么这么多函数在函数定义中有这些嵌套的括号和奇怪的逗号? 有点像 function name(param, param param) 对我来说有意义,或者 funct
为什么参数输入有两种不同的格式?除了个人品味之外,还有其他好处吗? 例如,我正在使用它,因为那是我第一次阅读有关Powershell的文档时所看到的 function MyAwesomeFunctio
当我转到角色 Controller 时,显示操作,所有正常的 params[:id] 都是根据 REST 应该如何。 在显示 View 中,我渲染了部分。在该部分中,我有一个指向 vote_socio
我正在尝试在我的 Express 应用程序中使用 Sequelize 获取数据,并使用 MSSQL 获取数据库。这是我的代码: getInstitution: function (req, res)
从 ASP.NET 中的代码隐藏访问表单或查询字符串值时,使用的优缺点是什么,例如: // short way string p = Request["param"]; 代替: // long way
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is it called when you use object… as a parameter? 我在
在代码示例中,我看到了以下代码: SomeClass.Columns(columns => { columns.Add() .Text("Product")
我是 PySpark 的初学者。我在 PySpark 中使用 FPgrowth 计算关联。我按照以下步骤操作。 数据示例 from pyspark.sql.session import SparkSe
我想记录一个类,我在 PyCharm 中看到当自动添加文档字符串时它会添加 :param param_name1: :param param_name2: 不过,我看到有人用 @param param
我正在为一个网站设计 Android 客户端。所以我必须实现很多不同的网络操作。例如用户授权或在服务器上搜索。为此,我必须向 REST Web 服务器发送带有一些参数和 URL 的 JSON 请求。因
我对 Jersey 和 Grizzly 有疑问。这个问题可能非常基本,但我正在努力解决它。我的想法是,我正在创建一个需要存储书籍的练习应用程序。一切似乎都很好,但并没有按预期进行。这是源代码: @Pa
假设我有一个带有虚方法的接口(interface),但参数之一是: virtual void Delete(ParentClass *parentClass) = 0; 如果我稍后在子类中实现它 vo
需要一些 Python 语法方面的帮助 伪代码 if param is not None in params, param replace('xx', 'x') 我走到这一步了: param.repl
我刚开始使用 JSDocs,找不到这个问题的答案。 假设我想写这个简单的函数: function hasQ(array, item) {return array.includes(item);} 对于
我对doInBackground(Params...params)中的参数语法不熟悉 这种东西叫什么,我该如何使用它? 最佳答案 正如 devA 和 VVV 所说,这就是所谓的“可变参数”。实际上,以
我很难在两个 perl 模块之间做出选择——Params::Validate 和 Params::Check。 我正在编写一个应该易于分发的 Mojolicious 应用程序。 一般来说,我的意思是在
这个问题已经有答案了: What does [param: NotNull] mean in C#? (2 个回答) 已关闭 7 年前。 我发现了以下属性声明。 [param: Marsha
我正在阅读有关 $params 的 CakePHP 手册,并且想知道每个参数的适当用法是什么?我知道返回的数组略有不同(“url”实际上有一个名为“url”的数组键,它返回 Controller /操
我见过处理 *param1 和 ¶m2 的 C 函数调用 func1(*param1); func2(¶m2); 我知道 * 和 & 必须与指针相关。那么这两种不同的方式有
特别是,为什么对 *param 这样的参数的更改不会传播回函数的调用者,但对 **param 这样的参数的更改却会传播回来? 最佳答案 在这两种情况下,更改都会被传播,但这取决于调用函数。 请参阅下面
我是一名优秀的程序员,十分优秀!