MyBatis模糊查询时数据库有数据但查询结果为空的两种可能(java)

本文介绍了如何解决数据库连接字符编码错误和SQL语句拼接问题。当遇到数据库连接中文乱码时,可以在URL中添加UTF-8字符编码如`useUnicode=true&characterEncoding=UTF-8`。对于SQL查询错误,可以通过mybatis-config.xml设置日志输出实际执行的SQL,然后在Navicat中验证并修正SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据库连接的字符编码有误。

        可先在数据库里添一条全英文数据,进行查询,如果查出来了,就说明数据库编码有误,中文解析映射时出错。可在数据库连接地址后添加UTF-8字符编码,即:

useUnicode=true&characterEncoding=UTF-8

示例:修改mybatis-config.xml文件(在配置文件中&相当于&):

<dataSource type="POOLED">
<!--                数据库连接信息-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>

                <!--在url后添加指定的UTF-8字符编码-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>

2、本身的sql语句拼接有误。

        可在mybatis-config.xml文件的<settings>标签中添加配置文件,添加后运行,在控制台就能看到相应的实际执行的sql语句。将其中的?手动替换,得到的sql语句放入navicat中执行,看是否报错,若报错根据错误提示订正。

配置文件:

<settings>
        <setting name= "mapUnderscoreToCamelCase" value = "true"/>
        <setting name="logImpl" value="STDOUT_LOGGING" />
</settings>

sql示例:控制台得到这种信息,将?依次替换即可得到实际执行的sql语句。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值