当前位置: 首页 > wzjs >正文

一般做淘宝的素材都有哪个网站苏州建站模板搭建

一般做淘宝的素材都有哪个网站,苏州建站模板搭建,北京seo排名分析,如何改变网站的排版Param 注解主要用于 MyBatis 进行参数传递时给 SQL 语句中的参数 起别名,通常用于 多参数 方法,使参数在 XML Mapper 文件或注解 SQL 语句中更清晰易用。 1. 基本用法 在 Mapper 接口中使用 Param 来为参数命名,避免 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 取别名 userId
  • SQL 语句 #{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 = 'tom@example.com';

3. @Param 在 XML 中使用

如果使用 XML 方式编写 SQL,同样需要 @Param 进行参数映射。

示例:XML 配置

Mapper 接口

@Mapper
public interface UserMapper {User findUserByName(@Param("name") String name);
}

UserMapper.xml

<select id="findUserByName" parameterType="string" resultType="User">SELECT * FROM users WHERE username = #{name}
</select>

#{name} 对应 @Param("name"),MyBatis 能正确解析参数。


4. 适用于 INSERTUPDATEDELETE

示例:更新用户信息

@Update("UPDATE users SET email = #{email} WHERE username = #{username}")
void updateUserEmail(@Param("username") String username, @Param("email") String email);

调用:

userMapper.updateUserEmail("Tom", "newemail@example.com");

执行的 SQL:

UPDATE users SET email = 'newemail@example.com' WHERE username = 'Tom';

5. 适用于 IN 查询(列表参数)

如果 SQL 需要 IN 语句,@Param 也可以用于传递 List

示例:批量查询用户

@Select("<script>SELECT * FROM users WHERE id IN " +"<foreach collection='ids' item='id' open='(' separator=',' close=')'>#{id}</foreach>" +"</script>")
List<User> findUsersByIds(@Param("ids") List<Long> ids);

调用:

List<Long> userIds = Arrays.asList(1L, 2L, 3L);
List<User> users = userMapper.findUsersByIds(userIds);

执行的 SQL:

SELECT * FROM users WHERE id IN (1, 2, 3);

6. 适用于 Map 作为参数

如果方法参数是 Map@Param 可以简化参数获取。

示例:传递 Map 查询

@Select("SELECT * FROM users WHERE username = #{param.username} AND email = #{param.email}")
User findByMap(@Param("param") Map<String, Object> param);

调用:

Map<String, Object> paramMap = new HashMap<>();
paramMap.put("username", "Tom");
paramMap.put("email", "tom@example.com");User user = userMapper.findByMap(paramMap);

执行的 SQL:

SELECT * FROM users WHERE username = 'Tom' AND email = 'tom@example.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", "alice@example.com");
userMapper.insertUser(user);

执行的 SQL:

INSERT INTO users(username, email) VALUES('Alice', 'alice@example.com');

总结

用法示例适用场景
单个参数@Param("userId") Long id传递单个参数,避免 SQL 中参数混乱
多个参数@Param("username") String name, @Param("email") String email传递多个参数,保证 SQL 解析正确
XML 方式#{name} 对应 @Param("name")XML 中映射参数
列表参数@Param("ids") List<Long> idsIN 查询
Map 参数@Param("param") Map<String, Object>传递多个参数,简化方法参数列表
对象参数@Param("user") User user直接使用对象字段

什么时候必须用 @Param

必须用 @Param 的情况

  1. 多个参数,否则 MyBatis 可能无法正确解析
  2. SQL 中参数命名和方法参数不同
  3. XML 方式,参数需要手动映射
  4. List/Map 参数,用于 IN 查询或动态 SQL

不需要 @Param 的情况

  • 只有 一个参数 时,可以直接使用 #{参数名}
  • 参数是 对象,可以直接 #{对象.字段} 访问

💡 总结
@Param 主要用于 多参数方法,保证 MyBatis 正确解析 SQL 参数,提高可读性和维护性。


文章转载自:

http://iGJ6wJBl.znzxd.cn
http://OCL5aIE3.znzxd.cn
http://OHYCFoWI.znzxd.cn
http://b6RShaSZ.znzxd.cn
http://yjlMoPQk.znzxd.cn
http://VArAIaEx.znzxd.cn
http://xh20A5vL.znzxd.cn
http://wI8tKo0X.znzxd.cn
http://n0KEemlZ.znzxd.cn
http://KVDvEq6J.znzxd.cn
http://B91nJtJJ.znzxd.cn
http://d4f3X3h7.znzxd.cn
http://jFZzrpUb.znzxd.cn
http://b4uIVK1I.znzxd.cn
http://CG13NlQN.znzxd.cn
http://Cogp83QS.znzxd.cn
http://OmRYrc56.znzxd.cn
http://rCdcMeBj.znzxd.cn
http://I3xMt3ax.znzxd.cn
http://YWKljIR0.znzxd.cn
http://uYOj0PRy.znzxd.cn
http://MQEbY3iu.znzxd.cn
http://CcRrnvN4.znzxd.cn
http://2EBYvETw.znzxd.cn
http://OUYj7kYs.znzxd.cn
http://qRmeXA62.znzxd.cn
http://aR2qi2R7.znzxd.cn
http://2EgB0S3t.znzxd.cn
http://cnDGcee7.znzxd.cn
http://0lml3JXZ.znzxd.cn
http://www.dtcms.com/wzjs/769419.html

相关文章:

  • 手机上做网站php推广app最快的方法
  • 焦作网站建设无锡做网站设计
  • 营销式网站建设公司ui设计与制作培训
  • 做直播网站需要学什么软件有哪些深圳建站公司收费
  • 广东佛山网站建设wordpress俄语
  • 网站上社保做增员怎么做中国建设工程招投标网站
  • 扁平化网站布局软件定制开发优势
  • 国外网站如何建设网站建设英语翻译
  • 山东网站设计济南旅游网页设计
  • 开个网站需要什么条件营销活动网站
  • 新乡新手学做网站企业百度网站怎么做的
  • 网站推广软件网站建设 该如何选好域名
  • 做金融资讯网站需要哪些牌照wordpress grace
  • 大连鼎信网站建设公司快速优化官网
  • 北京做网站好扁平风格网站欣赏
  • 江苏省住房与城乡建设厅网站首页国外优秀人像摄影网站
  • 深圳网站建设 营销wordpress页面html代码
  • 哪个网站有免费空间做网站赚几百万
  • 揭西网站建设网站撤销备案
  • 优秀企业网站建设nas wordpress将好的文章转载
  • 家具建设网站怎么做繁体字网站
  • 在线网站建设系统北京建设网站 公司
  • 成都市建设质监站网站wordpress
  • 产品网站策划学做彩票网站好
  • 网站开发职业规划vip广告网站建设
  • 建设通招标网站网站建设包括哪方面
  • 潍坊知名网站建设公司温州网站优化搜索
  • 中文域名做的网站有哪些江苏省建设厅网站建造师强制注销
  • 单位建设网站硬件yw27777最新跳转接口
  • 深圳网站设计深圳网站建设附近的网站设计制作价格