环境:
struts1,ibatis,mysql,采用jdbc直连
报错:
登录错误,无法根据用户名和密码查到相应的记录,但事实上该记录是存在的
分析:
连接数据库肯定是成功了,就是查不出来应该查出的结果。
我连本地库,发现OK,但是连测试库,就是出现上面的问题。jdbc配置除了ip地址,用户名和密码,都一样。为什么呢?
考虑到:
登录逻辑中,传给sql的两个参数,一个是用户名,一个是密码,其中用户名是中文的。
猜测:
连接字符串:?useUnicode=true&characterEncoding=UTF-8
连接字符串中存在&,是不是因为转义的问题,从而导致编码没有生效产生了乱码问题?
为什么会是这样的连接字符串:
在applicationContext.xml中,原来jdbc的配置是硬代码写在该文件中的,我将它们提取了出来,放到jdbc.properties中,然后再从applicationContext.xml中进行引用。
在applicationContext.xml中,&是需要用&来表达的,所以在构造jdbc.properties文件的时候直接把连接字符串copy了过去。
是这个问题么:
经过验证,将连接字符串修改为?useUnicode=true&characterEncoding=UTF-8
再连测试库,ok,果然是这个问题。
连接本地库,ok,没问题。
分析,为什么在本地库没有暴露问题:
因为本地库在mysql安装时进行了配置,设置默认字符集为utf-8。而测试库的默认字符集是未知的。
结论:
在xml文件中&是需要转义的。但如果将其移到properties文件中,记得此时&是不需要转义的。
分享到:
相关推荐
mysql中有种可以通过join相关操作进行表与表之间的方式查询不同结果集,但是在一对多的情况下,关键查询的结果是多条的.例如:班级和学习的关系,我想很直观的看到班级和学生的情况,列表显示出班级的信息和班级的男生...
通过上述方法,我们不仅能够有效地将MySQL查询结果导出到文件,还能够解决文件覆盖问题,并利用`cat`和`vim`等系统工具增强数据处理和分析的能力。这种另类方法不仅提高了数据操作的效率,还为数据库管理员提供了更...
### FineReport 数据集中 SQL 执行无结果问题分析与解决 #### 问题背景 在使用FineReport工具时,可能会遇到一种情况:在数据集中执行的SQL语句无法返回预期的结果,但同样的SQL语句直接在MySQL数据库中执行却能...
如果查询过程中没有出现任何问题,那么客户端将能够看到预期的查询结果。否则,如果出现了错误(比如权限不足),MySQL会返回相应的错误信息。 ### 总结 通过对MySQL查询流程的深入了解,我们可以更好地理解MySQL...
4. **结果集处理**:手册会解释如何获取查询结果,例如使用`mysql_fetch_array()`(C API)或`mysqli_fetch_assoc()`(PHP)遍历结果集,以及如何处理多结果集和字段信息。 5. **错误处理与调试**:手册将指导...
MySQL中的`mysql_fetch_array`函数是处理SQL查询结果的关键函数之一,它允许开发者从结果集中获取一行数据,并根据指定的模式将其转化为数组。这个函数在处理数据库查询时非常实用,尤其是当你需要遍历多行结果时。...
而MySQL则是一种流行的开源关系型数据库管理系统,它以其高效、稳定和易于扩展性而受到开发者喜爱。本资源针对的是在C#环境下进行MySQL数据库查询的基础教程,特别适合初学者学习。 首先,我们要理解C#与MySQL的...
这篇关于“shell简单处理mysql查询结果的方法”的文章旨在介绍如何在shell脚本中有效地处理MySQL查询返回的数据。 首先,我们需要理解shell脚本中的数组和字符串特性。在shell中,数组可以用来存储一组相关的值,...
因此,如果MySQL查询结果包含汉字且未正确设置字符编码,`json_encode`可能会导致乱码或无法解码的错误。为了解决这个问题,我们需要确保以下几个关键点: 1. **数据库编码**:确保MySQL数据库、数据表以及字段的...
查询都是必不可少的一个功能,而查询设计的好坏又影响到系统的响应时间和性能这两个关键指标,尤其是当数据量变得越来越大时,于是如何处理大数据量的查询成了每个系统架构设计时都必须面对的问题。本文将从数据及...
2. MySQL:MySQL是世界上最受欢迎的开源数据库之一,因其高效、可靠和易于使用而受到青睐。它支持SQL(Structured Query Language),用于创建、查询、更新和管理数据库。 在登录注册查询系统中,以下是一些关键...
MySQL是一种广泛使用的开源关系型数据库管理系统,其查询结果可以输出到文件中以便于进一步处理或存储。以下将详细讲解三种常见的MySQL查询结果输出到文件的方法。 ### 方法一:使用`INTO OUTFILE`命令 `INTO ...
在数据库管理领域,MySQL是一个广泛使用的开源关系型数据库系统,特别是在处理时间和日期数据时,其性能表现至关重要。本文主要探讨的是在MySQL 5.7版本中进行时间范围查询的性能测试,这对于数据库优化和应用程序的...
因此,“mysql2.e”可能包含了连接MySQL服务器、执行SQL查询、处理结果集等核心功能的代码。 “ceshi.sql”则是一个SQL脚本文件,通常用于测试数据库查询或数据导入。你可以在这个文件中看到一些SQL查询语句,例如...
本项目利用C++17的特性实现了MySQL查询,并且能够将查询结果自动序列化到预先定义的结构体,同时还支持JSON类型的数据处理。 首先,让我们深入理解C++与MySQL的交互。MySQL Connector/C++是MySQL官方提供的C++接口...
A003-innodb 锁问题监控处理 A004-MySQL binlog日志 A005-MySQL 基础 A006-SQL语法 A007-MySQL 修改密码 特点和功能: 开源性: MySQL是开源软件,可以免费获取和使用。它的开放性质使得它受到了广泛的...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),以其高效、稳定和易用性而受到开发者青睐。在本系统中,MySQL用于存储新闻的标题、内容、发布日期等信息。开发者可能创建了一个名为“News”的数据库表,...
总结来说,"mysql根据相关匹配度推荐结果"是一个涉及数据库查询优化、相似度计算以及用户行为分析的综合问题。在实际操作中,我们需要结合业务需求,利用MySQL提供的功能和适当的数据处理方法来构建高效且准确的推荐...
Apache一起使用 MySQL 18 问题和常见的错误 18.1 如果 MySQL总是崩溃怎么办 18.2 使用 MySQL 时一些常见错误 18.2.1 MySQL server has gone away错误 18.2.2 Can't connect to [local] MySQL ...