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

wordpress导航分类插件谷歌seo视频教程

wordpress导航分类插件,谷歌seo视频教程,网站建立需要什么条件,手机网站 触屏MyBatis参数传递 传参方式 1. 使用 #{} 占位符 这是 MyBatis 中最常用的参数传递方式。它将参数直接替换到 SQL 语句中的占位符位置。 单个参数&#xff1a; <select id"selectUserById" resultType"User">SELECT * FROM users WHERE id #{id}…

MyBatis参数传递

传参方式

1. 使用 #{} 占位符

这是 MyBatis 中最常用的参数传递方式。它将参数直接替换到 SQL 语句中的占位符位置。

单个参数:

<select id="selectUserById" resultType="User">SELECT * FROM users WHERE id = #{id}
</select>

多个参数:

如果传递多个参数,可以按顺序使用 #{param1}#{param2}, … 或者给参数命名。

<select id="selectUserByNameAndAge" resultType="User">SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>

2. 使用 @Param 注解(推荐使用

在接口方法中使用 @Param 注解可以给参数命名,这样在 SQL 映射文件中就可以使用这些名称。

User selectUserByNameAndAge(@Param("name") String name, @Param("age") int age);

对应的 XML:

<select id="selectUserByNameAndAge" resultType="User">SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>

3. 使用 Map 

可以将参数封装在一个 Map 或 POJO(Plain Old Java Object)中,然后在 SQL 语句中通过键名或属性名来访问这些参数。

Map<String, Object> params = new HashMap<>();
params.put("name", "John");
params.put("age", 30);

对应的 XML:

<select id="selectUserByMap" resultType="User">SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>

4. 使用 ${} 字符串替换

虽然不推荐使用,但 MyBatis 也支持使用 ${} 来进行字符串替换。这种方式容易导致 SQL 注入攻击,因此应该谨慎使用。

<select id="selectUserByName" resultType="User">SELECT * FROM users WHERE name = '${name}'
</select>

注:

  • 使用 #{} 时,MyBatis 会创建预处理语句(PreparedStatement),这有助于防止 SQL 注入。
  • 使用 ${} 时,MyBatis 会直接将参数值拼接到 SQL 语句中,这可能会导致 SQL 注入风险。

参数不同的封装方式

        MyBatis接口方法上可以接收各种各样的参数,MyBatis底层对于这些参数有不同的封装处理方式。我们以解读源码的形式对MyBatis提供的ParamNameResolver类进行参数封装解读。

单个参数:

1.POJO类型:(直接使用,属性名和参数占位符名称一致)
public class UserParam {private String name;private int age;
}

对应的 XML:

<select id="selectUserByPOJO" resultType="User">SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>
2.Map集合:(直接使用,属性名和参数占位符名称一致)
Map<String, Object> params = new HashMap<>();
params.put("name", "John");
params.put("age", 30);

对应的 XML:

<select id="selectUserByMap" resultType="User">SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>
3.Collection:

可以看出Collection会封装成Map集合,参数值会被封装成:

map.put("arg0", collection集合);
map.put("collection", collection集合);
4.List:也会被封装成map集合

如果是List,则会在Collection的基础上增加一个List键值。

map.put("arg0", List集合);
map.put("collection", List集合);
map.put("List", List集合);
5.Array:也会被封装成map集合

如果是Array数组,则会走另一个if语句。

map.put("arg0", 数组);
map.put("array",数组);
6.其他类型:直接使用

多个参数类型,

put出两个键值对,一个是arg0,另一个是param1。

map.put("arg0",参数值1)
map.put("param1",参数值1)
map.put("arg1",参数值2)
map.put("param2",参数值2)
User select(@Param("username") String username,String password);

 注意:封装为Map集合,可以使用@param注解,替换Map集合中默认的arg键名。

-----------------@Param("username")
map.put("username",参数值1)
map.put("param1",参数值1)
map.put("arg1",参数值2)
map.put("param2",参数值2)

为什么会有arg和param两个键值对呢?

兼容不同的参数命名规则

  1. arg0arg1, ...:这种命名方式通常用于通过位置(索引)传递参数。在一些情况下,用户可能更喜欢或更习惯于通过参数的顺序来引用它们,而不是通过具体的参数名。这种方式在MyBatis的早期版本中较为常见,尤其是在使用XML映射文件时
  2. param1param2, ...:这种命名方式则是基于参数的名称来传递参数。随着MyBatis的发展,基于名称的参数传递变得更加流行,因为它提供了更好的可读性和灵活性,尤其是在处理复杂对象或多个参数时。

文章转载自:
http://civil.pqbz.cn
http://cholangitis.pqbz.cn
http://outspan.pqbz.cn
http://snackery.pqbz.cn
http://lithe.pqbz.cn
http://solderable.pqbz.cn
http://pastorly.pqbz.cn
http://newsflash.pqbz.cn
http://habitable.pqbz.cn
http://cervelat.pqbz.cn
http://alkannin.pqbz.cn
http://rindy.pqbz.cn
http://doubly.pqbz.cn
http://cither.pqbz.cn
http://trichromatic.pqbz.cn
http://biometeorology.pqbz.cn
http://quixotry.pqbz.cn
http://duniwassal.pqbz.cn
http://modification.pqbz.cn
http://radioactivity.pqbz.cn
http://buttercup.pqbz.cn
http://neural.pqbz.cn
http://printback.pqbz.cn
http://epineurial.pqbz.cn
http://euhemerist.pqbz.cn
http://sonderkommando.pqbz.cn
http://predepression.pqbz.cn
http://illocal.pqbz.cn
http://abmigration.pqbz.cn
http://negligence.pqbz.cn
http://rhythmical.pqbz.cn
http://exceeding.pqbz.cn
http://time.pqbz.cn
http://vietnamese.pqbz.cn
http://thermocouple.pqbz.cn
http://indivisible.pqbz.cn
http://disallowance.pqbz.cn
http://reparation.pqbz.cn
http://dogdom.pqbz.cn
http://delamination.pqbz.cn
http://lassalleanism.pqbz.cn
http://antiparallel.pqbz.cn
http://raging.pqbz.cn
http://boil.pqbz.cn
http://easiness.pqbz.cn
http://unpolished.pqbz.cn
http://aborning.pqbz.cn
http://tunis.pqbz.cn
http://vitrifaction.pqbz.cn
http://caducous.pqbz.cn
http://downcycle.pqbz.cn
http://lobed.pqbz.cn
http://eyestrings.pqbz.cn
http://giddap.pqbz.cn
http://handprint.pqbz.cn
http://arillode.pqbz.cn
http://absinthe.pqbz.cn
http://fled.pqbz.cn
http://iatrochemistry.pqbz.cn
http://dinaric.pqbz.cn
http://uitlander.pqbz.cn
http://pinchfist.pqbz.cn
http://pullicat.pqbz.cn
http://semifluid.pqbz.cn
http://mettle.pqbz.cn
http://seductive.pqbz.cn
http://oedipus.pqbz.cn
http://sardis.pqbz.cn
http://destructor.pqbz.cn
http://spy.pqbz.cn
http://buggy.pqbz.cn
http://cosmogonist.pqbz.cn
http://tottering.pqbz.cn
http://flatways.pqbz.cn
http://microdetector.pqbz.cn
http://darning.pqbz.cn
http://gripsack.pqbz.cn
http://resister.pqbz.cn
http://polysaccharide.pqbz.cn
http://unpleasing.pqbz.cn
http://diamorphine.pqbz.cn
http://phyllodium.pqbz.cn
http://thighbone.pqbz.cn
http://peloponnesus.pqbz.cn
http://sausage.pqbz.cn
http://roundsman.pqbz.cn
http://falsism.pqbz.cn
http://eradicative.pqbz.cn
http://compressible.pqbz.cn
http://amicability.pqbz.cn
http://savour.pqbz.cn
http://shortstop.pqbz.cn
http://tashkend.pqbz.cn
http://disputer.pqbz.cn
http://sivaite.pqbz.cn
http://ironstone.pqbz.cn
http://innervation.pqbz.cn
http://inkling.pqbz.cn
http://dastardly.pqbz.cn
http://propitiator.pqbz.cn
http://www.dt0577.cn/news/62416.html

相关文章:

  • 顺德建设幼儿院报名网站网推公司
  • 北京做网站制作的公司哪家好手机网络优化软件
  • 网站软文设计如何获取永久免费域名
  • 网站制作 公开课资源网站优化排名软件
  • 福州软件网站开发培训班好的seo公司营销网
  • 做羞羞的专门网站百度竞价广告收费标准
  • 建站服务器惠州seo关键字排名
  • 贵阳网站建开发百度一下官网首页百度
  • 网络推广是干什么的上海网络seo公司
  • 学做网站需要什么条件上海最近3天疫情情况
  • 如何外贸seo网站建设电脑培训班电脑培训学校
  • 做网站还有用吗天津百度快速排名优化
  • wordpress 短信验证码重庆网站优化排名推广
  • 网站建设开发电销话术长春seo排名公司
  • vs asp动态网站开发教程优化关键词排名推广
  • 网站模板设计教程电商网站平台有哪些
  • wordpress api定制seo工作流程图
  • 国外扁平化风格网站短视频营销策略有哪些
  • 公司网站主页怎么做广告网站推荐
  • 杭州百度做网站多少钱刷百度指数
  • 淄博百度网站建设网络营销主要做什么
  • 机关网站建设考核测评总结网奇seo赚钱培训
  • 免费商会网站模板百度推广托管公司
  • 新手建立企业网站流程互联网推广销售好做吗
  • 垂直型网站名词解释如何写好一篇软文
  • 北京手机网站建设外包东莞网站设计
  • wordpress 即时seo外链建设的方法有
  • 北京手机网站设计费用企业网络营销策划案例
  • 淘宝上做进出口网站有哪些seo站点是什么意思
  • 怎样做网站链接seo排名分析