Java通过MyBatis查询数据库问题

前端搜索框将一个变量传入后端,后端Java通过MyBatis查询MySQL数据库时,用这个变量对数据库内两个字段查询过滤,两个字段内任何一个字段符合这个变量都可以被查询出来,且当同一条数据两个字段值相同时,查询时不能重复出现两条数据

回答:这里需求说明的还是很详细的,直接采用Ajax传过来那个变量,应该是一个字符串,然后直接采用mybatis的Java代码进行QueryWrapper的条件过滤,等于第一个字段或者等于第二个字段,得到的是一个List,应该会自动把交集只取一次

img

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你看下这篇博客吧, 应该有用👉 :Java编程:MyBatis读取数据库数据
  • 除此之外, 这篇博客: Java MyBatis对查询数据库 条件查询(单条件查询&多条件查询)中的 2.编写sql语句:sql映射文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    参数占位符
        1.#{} 会将其转换成?,防止sql注入问题 和prepareStatement类似
        2.${} 拼sql,会存在sql注入问题
        3.使用时机:
            *参数传递的时候:#{}
            *表明或者列明不固定的情况下:${},但是也存在sql注入问题

    特殊字符的处理   例如:select * from  tb_brand where id<${id};是不可以的
        1.转义字符  小于号的转义字符  &lt;   select * from  tb_brand where id &lt; ${id};
        2.CDATA区  在中间加入大写的CD确定 就可以正常写入小于号了

    parameterType="integer"是参数类型,可以省略

     <select id="selectAllById" parameterType="integer" resultMap="brandResultMap">
            select * from  tb_brand where id = ${id};
        </select>

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^