关于Mybatis查询时能否自定义字段

开发中经常会遇到 根据 xxx 字段查询 xxx 字段,如果查询一个就要写一个 mapper就会显得很繁琐。
而在php中,我就可以轻松开愉快的把下面三个字段未知的参数,变成两个变量传进去。

SELECT filed ? WHRER xxx = xxx。

但是,我在使用Mybatis 的时候,就会出现,比如,filed 字段传进去的是一个 String,而最后生成的sql语句也会变成。。 这显然是一个不正确的sql。

SELECT "username" WHRER xxx = xxx。

所以,请问 Java 大佬们,有类似问题的解决办法吗

阅读 6.2k
4 个回答

SELECT filed ? WHRER xxx = #{xxx,jdbcType=VARCHAR}
这样就行了, 用#可以防止SQL注入,如果用#报错可以 改为使用$ 即 ${xxx,jdbcType=VARCHAR}
详细功能可以自己查一下。

是不是需要动态传入字段名称?
参数使用 ${xxx} 不要用 #{xxx}

有是有,使用${xxx},容易引发sql注入

除了blob字段,有必要单独搞出来吗?或者搞出来了不做resultMap影射就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏