Mybatis传递参数的三种方式
第一种:
Dao层使用@Param注解的方法
VersionBox getVersionByVersionNumAndVersionType(@Param("versionNum") String versionNum, @Param("versionType") String versionType);
对应的Mapper.xml
<sql id="Base_Column_List" > UUID, VERSION_NUM, VERSION_TYPE, VARSION_DESC, CREATE_TIME, CREATE_BY, UPDATE_TIME, UPDATE_BY </sql> <select id="getVersionByVersionNumAndVersionType" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from VERSION_BOX where VERSION_NUM = #{versionNum,jdbcType=VARCHAR} and VERSION_TYPE = #{versionType,jdbcType=VARCHAR} </select>
第二种:
Dao层采用Map传多参数的方法
int selectBeaconTotalCount(Map paramMap);
对应的Mapper.xml
<resultMap id="BaseResultMap" type="com.joysuch.facade.device.Ibeacon" >
<id column="UUID" property="uuid" jdbcType="VARCHAR" />
<result column="USER_ID" property="userId" jdbcType="VARCHAR" />
<result column="DEVICE_MAC" property="deviceMac" jdbcType="VARCHAR" />
<result column="DEVICE_ID" property="deviceId" jdbcType="VARCHAR" />
<result column="DEVICE_UUID" property="deviceUuid" jdbcType="VARCHAR" />
<result column="DEVICE_TYPE" property="deviceType" jdbcType="VARCHAR" />
<result column="MAJOR" property="major" jdbcType="INTEGER" />
<result column="MINOR" property="minor" jdbcType="INTEGER" />
...
<result column="NEAR_RSSI" property="nearRssi" jdbcType="INTEGER" />
</resultMap>
<select id="selectBeaconTotalCount" resultType="int" parameterType="java.util.Map" > select COUNT(UUID) from IBEACON where BUILDING_ID = #{buildingId,jdbcType=VARCHAR} and DEVICE_TYPE = 'ibeacon' <if test="deviceMac != null and deviceMac != ''" > and DEVICE_MAC = #{deviceMac,jdbcType=VARCHAR} </if> <if test="major != null" > and MAJOR = #{major,jdbcType=INTEGER} </if> <if test="minor != null" > and MINOR = #{minor,jdbcType=INTEGER} </if> </select>
第三种:
Dao层根据参数位置下标的方法
1 | VersionBox getVersionByVersionNumAndVersionType(String versionNum, String versionType); |
对应的Mapper.xml
<select id="getVersionByVersionNumAndVersionType" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from VERSION_BOX where VERSION_NUM = #{0} and VERSION_TYPE = #{1} </select>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?