总结--Mybatis传递参数的几种方法

Mybatis 传递参数的几种方法 Mybatis 中传递参数有多种方法,以下是其中的四种: 1. 传递单个参数 在 Mybatis 中,传递单个参数非常简单。可以直接将参数写在方法中,参数类型可以是 String,也可以是基本类型,都可以自动识别。例如: ```java public String getZdxxId(String zdbh); ``` 对应的 XML 代码为: ```xml <select id="getZdxxId" parameterType="String" resultType="String"> select id from zdxx where zdbh = #{zdbh} </select> ``` 在上面的代码中,我们可以看到,方法 `getZdxxId` 接受一个 String 类型的参数 `zdbh`,然后在 XML 代码中使用 `#{zdbh}` 来获取该参数的值。 2. 传递单个参数,但参数类型是封装类 如果参数类型是封装类,例如 `TermHeart`,那么在 Java 中不需要增加什么,在 XML 中增加说明就行。例如: ```java public int heart(TermHeart th); ``` 对应的 XML 代码为: ```xml <update id="heart" parameterType="com.beiyang.sqjw.bean.TermHeart"> update zdxt set xtsj = #{th.xtsj}, zdbb = #{th.zdbb} where zdbh = #{th.zdbh} </update> ``` 在上面的代码中,我们可以看到,方法 `heart` 接受一个 `TermHeart` 类型的参数 `th`,然后在 XML 代码中使用 `#{th.xtsj}`、`#{th.zdbb}` 和 `#{th.zdbh}` 来获取该参数的各个字段的值。 3. 传递多个参数 在 Mybatis 中,传递多个参数的一种常用做法是把多个参数都放在 Map 中,然后传递这个 Map 作为参数。例如: ```java public void insertAreaDivInfor(HashMap map); ``` 对应的 XML 代码为: ```xml <insert id="insertAreaDivInfor" parameterType="HashMap" > insert into xzqh (id,mc,dm,bzm) values(#{eid},#{emc},#{edm},#{ebzm} ) </insert> ``` 这种方法的问题是没有参数检查,传输的参数名错了,没法给出提示,只能在调试过程中去找错误;另外,创建一个 Map 也比较麻烦。 4. 使用 @Param 标注传递参数 使用 @Param 标注可以传递多个参数,例如: ```java public int login(@Param("sfzh") String sfzh, @Param("kl") String kl); ``` 对应的 XML 代码为: ```xml <select id="login" parameterType="String" resultType="Integer"> select count(*) from yhgl where sfzh = #{sfzh} and kl = #{kl} and scbz = 0 </select> ``` 使用 @Param 标注可以给参数起名,例如 `sfzh` 和 `kl`,这样可以方便地在 XML 代码中使用这些参数。如果不使用 @Param 标注,那么参数将被自动命名为 `0`、`1` 等,例如: ```java public int login(String sfzh, String kl); ``` 对应的 XML 代码为: ```xml <select id="login" parameterType="String" resultType="Integer"> select count(*) from yhgl where sfzh = #{0} and kl = #{1} and scbz = 0 </select> ``` 这种方法的问题是代码不容易看懂,一旦参数调整了代码也要调整,非常不推荐。 Mybatis 传递参数有多种方法,每种方法都有其优缺,选择哪种方法取决于实际情况。

















- 哇塞小刘2016-08-08整理说明还蛮全的,谢谢分享
- 「已注销」2014-10-14还不错 对我有用
- lilco2014-10-31很给力呀,最给你的还是免积分的。感动呀

- 粉丝: 17
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于遗传算法的前后端分离在线测试练习系统——SpringBoot+Vue+MySQL+Redis实现自动组卷
- 新能源光伏并网逆变器电流环解耦控制及其MATLABSimulink仿真建模分析 光伏并网逆变器
- 永磁同步电机三矢量模型预测电流控制的深度解析与仿真研究 - PI控制器 精华版
- 新能源复杂环境下三相不平衡正负序分离锁相环(MATLAB仿真)及应用
- 永磁同步电机双矢量MPC模型预测电流控制技术及仿真研究
- 基于STM32F103和FPGA的高效伺服驱动器:电流环处理提升运行效率 - 数字信号处理 参考
- PSRR仿真教程:使用Cadence psspxf对分频器和环形压控振荡器电路进行PSRR仿真评估与优化
- 电机多目标优化与灵敏度分析:基于SALib和响应面模型的参数选择与优化
- 电力电子领域半桥LLC谐振变换器96V转14.4V高效软开关设计与仿真实现
- 带隙基准技术及其仿真的新手实践指南:涵盖温度特性、PSRR、稳定性和噪声仿真 - 带隙基准
- PFC2D软件中接触力组构图自动生成技术及其应用 - 离散元方法 资料
- 基于OpenCV部署yolov8检测人脸和关键点的完整源码含C++和Python两版本
- FLAC-PFC耦合模拟技术在霍普金森杆冲击试验中对SPHB材料动态响应的研究
- 多目标路径规划中蚁群算法的优化与改进策略研究及其实际应用
- C#实现快速傅里叶变换算法
- EtherCAT总线通信:基于STM32 MCU和AX58100 ESC的从站开发方案与实践


