美文网首页
关于MyBatis传参2019-05-17

关于MyBatis传参2019-05-17

作者: 琴匣自鸣 | 来源:发表于2019-06-14 16:23 被阅读0次

1.#{name} and ${name} 不一样 #表名直接转化为字符串,$表示单纯的String替换常用语order by ${},例如 name=测试 则在sql语句里#{name}='测试',${name}=测试 ${}的形式常用语 order by之后 即 在用字段或关键词的地方用,但是由于${}容易被sql注入因此不推荐,尽量用#{}写法

2.parameterType 参数类型如果是int String这种常用变量则不需要写上,如果是自定义Class或Map这种才需要,如果是自定义Class那么直接写#/${字段名},如果是Map则 #/${key值}

3.@Param(value="xxx")  xxx即为在mapper里用的名字#/${xxx},使用注解写的名字必须严格按照名字来

4.传递参数的解决方案(能传递多个就能传递单个)

    1).单参数 public void find(String name) ------xml文件 #/${xxx} xxx随便写都好用不必须是name

    2).多参数 public void find(String name,int id) #{0} #{1} 依照顺序用下标取值,注意这种方法必须用#{index}否则 ${1}会被识别为 1

    3). pubilc void find(@Param(value="name") String name,Param(value="id") int id) 注意这种方式无论是传1个或多个参数都必须用value="xxxx" 的值

    4). public void find(User user);---xml文件 parameterType="user" 这里xml文件用的user是映射名,然后#/${xxxx}属性名取值,注意属性名要和数据库字段名一致

    5). public void find(Map map);---xml文件 parameterType="Map" #/${key值}

相关文章

网友评论

      本文标题:关于MyBatis传参2019-05-17

      本文链接:https://www.haomeiwen.com/subject/hnlnaqtx.html