第十章MyBatis的参数

单个简单参数处理

MyBatis中的sql语句中的属性

  • id:为mapper接口的方法名
  • resultType:为返回参数的类型
  • parameterType:为传递过来的参数类型,MyBatis会自动推断一般不用填写

javaType表示说明这个字段的java类型

jdbcType表示说明这个字段在数据库中的类型

复制代码
<select>
	select * from car where name=#{name,javaType=String,jdbcType=VARCHAR}
</select>

javaType和jdbcType,parameterType这些MyBatis都会自动推断类型,一般不用写


Map参数处理

  • map数据类型,sql中的#{}为map类型的key
  • Map类型也可以被自动推断类型

Pojo参数处理

  • Pojo数据类型,sql中的#{}为属性名通过调用get方法获取值
  • Pojo类型也可以被自动推断类型,返回类型也会被自动推断

多个参数

  • 如果是多个参数不用写参数类型(parameterType)

  • MyBatis如果接受到的是多个参数,会自动创建一个map集合("arg0/param1","value")...存放

    // 获取方式一
    <select id="selectById" resultType="com.example.webapplication.pojo.Car">
    select
    *
    from car
    limit #{arg0},#{arg1};
    </select>

    // 获取方式二
    <select id="selectById" resultType="com.example.webapplication.pojo.Car">
    select
    *
    from car
    limit #{param1},#{param2};
    </select>
    ...

  • 通过在接口上@Param(value="参数名")来指定参数名,就不能用arg0但是param1可以使用

    List<Car> slect(@Param(value = "page") Integer page,@Param(value="limit") Integer limit);

相关推荐
weixin_30777913几秒前
Jenkins Branch API插件详解:多分支项目管理的核心引擎
java·运维·开发语言·架构·jenkins
@木辛梓4 分钟前
结构体 结构体c++
开发语言·c++
milanyangbo6 分钟前
从硬盘I/O到网络传输:Kafka与RocketMQ读写模型及零拷贝技术深度对比
java·网络·分布式·架构·kafka·rocketmq
小股虫6 分钟前
消息中间件关键技术、设计原理与实现架构总纲
java·开发语言·架构
风萧萧19997 分钟前
Java:PPT转图片
java·python·powerpoint
洲星河ZXH8 分钟前
Java,日期时间API
java·开发语言·python
前端老曹9 分钟前
Jspreadsheet CE V5 使用手册(保姆版) 二
开发语言·前端·vue.js·学习
秋邱11 分钟前
AR 定位技术深度解析:从 GPS 到视觉 SLAM 的轻量化实现
开发语言·前端·网络·人工智能·python·html·ar
Boop_wu12 分钟前
[Java EE] 多线程进阶(3) [线程安全集合类]
开发语言·windows·python
老华带你飞15 分钟前
动物救助|流浪狗救助|基于Springboot+vue的流浪狗救助平台设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·流浪动物救助平台