塘厦网站建设公司,网站建设各语言优点,福州科技网站建设怎么做,自己的网站怎么做美工Param 注解主要用于 MyBatis 进行参数传递时给 SQL 语句中的参数 起别名#xff0c;通常用于 多参数 方法#xff0c;使参数在 XML Mapper 文件或注解 SQL 语句中更清晰易用。 1. 基本用法
在 Mapper 接口中使用 Param 来为参数命名#xff0c;避免 MyBatis 解析时出现参数…Param 注解主要用于 MyBatis 进行参数传递时给 SQL 语句中的参数 起别名通常用于 多参数 方法使参数在 XML Mapper 文件或注解 SQL 语句中更清晰易用。 1. 基本用法
在 Mapper 接口中使用 Param 来为参数命名避免 MyBatis 解析时出现参数名丢失的问题尤其是多个参数时。
示例查询用户
Mapper
public interface UserMapper {Select(SELECT * FROM users WHERE id #{userId})User findUserById(Param(userId) Long id);
}解释 Param(userId) 给方法参数 id 取别名 userIdSQL 语句 #{userId} 通过 MyBatis 解析参数值。 2. 多参数使用 Param
如果方法有 多个参数MyBatis 默认无法识别参数名必须使用 Param 指定。
示例根据用户名和邮箱查询用户
Mapper
public interface UserMapper {Select(SELECT * FROM users WHERE username #{username} AND email #{email})User findByUsernameAndEmail(Param(username) String username, Param(email) String email);
}相当于 SQL
SELECT * FROM users WHERE username Tom AND email tomexample.com;3. Param 在 XML 中使用
如果使用 XML 方式编写 SQL同样需要 Param 进行参数映射。
示例XML 配置
Mapper 接口
Mapper
public interface UserMapper {User findUserByName(Param(name) String name);
}UserMapper.xml
select idfindUserByName parameterTypestring resultTypeUserSELECT * FROM users WHERE username #{name}
/select#{name} 对应 Param(name)MyBatis 能正确解析参数。 4. 适用于 INSERT、UPDATE、DELETE
示例更新用户信息
Update(UPDATE users SET email #{email} WHERE username #{username})
void updateUserEmail(Param(username) String username, Param(email) String email);调用
userMapper.updateUserEmail(Tom, newemailexample.com);执行的 SQL
UPDATE users SET email newemailexample.com WHERE username Tom;5. 适用于 IN 查询列表参数
如果 SQL 需要 IN 语句Param 也可以用于传递 List。
示例批量查询用户
Select(scriptSELECT * FROM users WHERE id IN foreach collectionids itemid open( separator, close)#{id}/foreach /script)
ListUser findUsersByIds(Param(ids) ListLong ids);调用
ListLong userIds Arrays.asList(1L, 2L, 3L);
ListUser users userMapper.findUsersByIds(userIds);执行的 SQL
SELECT * FROM users WHERE id IN (1, 2, 3);6. 适用于 Map 作为参数
如果方法参数是 MapParam 可以简化参数获取。
示例传递 Map 查询
Select(SELECT * FROM users WHERE username #{param.username} AND email #{param.email})
User findByMap(Param(param) MapString, Object param);调用
MapString, Object paramMap new HashMap();
paramMap.put(username, Tom);
paramMap.put(email, tomexample.com);User user userMapper.findByMap(paramMap);执行的 SQL
SELECT * FROM users WHERE username Tom AND email tomexample.com;7. 适用于对象参数拆分对象字段
如果参数是对象可以直接使用 #{对象.字段} 访问属性但 Param 仍然可用于 明确参数名称。
示例传递 User 对象
Insert(INSERT INTO users(username, email) VALUES(#{user.username}, #{user.email}))
void insertUser(Param(user) User user);调用
User user new User(Alice, aliceexample.com);
userMapper.insertUser(user);执行的 SQL
INSERT INTO users(username, email) VALUES(Alice, aliceexample.com);总结
用法示例适用场景单个参数Param(userId) Long id传递单个参数避免 SQL 中参数混乱多个参数Param(username) String name, Param(email) String email传递多个参数保证 SQL 解析正确XML 方式#{name} 对应 Param(name)XML 中映射参数列表参数Param(ids) ListLong idsIN 查询Map 参数Param(param) MapString, Object传递多个参数简化方法参数列表对象参数Param(user) User user直接使用对象字段 什么时候必须用 Param
✅ 必须用 Param 的情况
多个参数否则 MyBatis 可能无法正确解析SQL 中参数命名和方法参数不同XML 方式参数需要手动映射List/Map 参数用于 IN 查询或动态 SQL
❌ 不需要 Param 的情况
只有 一个参数 时可以直接使用 #{参数名}参数是 对象可以直接 #{对象.字段} 访问 总结 Param 主要用于 多参数方法保证 MyBatis 正确解析 SQL 参数提高可读性和维护性。 文章转载自: http://www.morning.nptls.cn.gov.cn.nptls.cn http://www.morning.mdmxf.cn.gov.cn.mdmxf.cn http://www.morning.hypng.cn.gov.cn.hypng.cn http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn http://www.morning.paxkhqq.cn.gov.cn.paxkhqq.cn http://www.morning.hlnrj.cn.gov.cn.hlnrj.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.fbtgp.cn.gov.cn.fbtgp.cn http://www.morning.qnlbb.cn.gov.cn.qnlbb.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn http://www.morning.npqps.cn.gov.cn.npqps.cn http://www.morning.xltdh.cn.gov.cn.xltdh.cn http://www.morning.ngqdp.cn.gov.cn.ngqdp.cn http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.lbzgt.cn.gov.cn.lbzgt.cn http://www.morning.rnnwd.cn.gov.cn.rnnwd.cn http://www.morning.wbxrl.cn.gov.cn.wbxrl.cn http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn http://www.morning.wpcfm.cn.gov.cn.wpcfm.cn http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn http://www.morning.ttryd.cn.gov.cn.ttryd.cn http://www.morning.pmwhj.cn.gov.cn.pmwhj.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.jhfkr.cn.gov.cn.jhfkr.cn http://www.morning.xrmwc.cn.gov.cn.xrmwc.cn http://www.morning.pghry.cn.gov.cn.pghry.cn http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn http://www.morning.wnhml.cn.gov.cn.wnhml.cn http://www.morning.yubkwd.cn.gov.cn.yubkwd.cn http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn http://www.morning.lwcgh.cn.gov.cn.lwcgh.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn http://www.morning.zqdzg.cn.gov.cn.zqdzg.cn http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn http://www.morning.pctql.cn.gov.cn.pctql.cn http://www.morning.hsksm.cn.gov.cn.hsksm.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn http://www.morning.frfnb.cn.gov.cn.frfnb.cn http://www.morning.rjbb.cn.gov.cn.rjbb.cn http://www.morning.mkyny.cn.gov.cn.mkyny.cn http://www.morning.dtgjt.cn.gov.cn.dtgjt.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.rfpb.cn.gov.cn.rfpb.cn http://www.morning.tqjwx.cn.gov.cn.tqjwx.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn http://www.morning.fgxws.cn.gov.cn.fgxws.cn http://www.morning.nkpml.cn.gov.cn.nkpml.cn http://www.morning.wbqk.cn.gov.cn.wbqk.cn http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn http://www.morning.sphft.cn.gov.cn.sphft.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn http://www.morning.fhqsm.cn.gov.cn.fhqsm.cn http://www.morning.qlpyn.cn.gov.cn.qlpyn.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn