求助,一个非常奇怪的问题,本地良好程序,部署后查询数据库出现问题

我的本地环境是windows10,mysql,java8,tomcat7。
生产坏境是ubuntu,mysql,java8,tomcat7(tomcat8)。

我写了一个查询公交车站的java web程序。用了spring mvc,mybatis。数据库用的是mysql,程序用到了2个表,一个bus_line,一个bus_station。

这个程序在我本地运行良好,但部署到线上后,程序对我2个表其中的一个,bus_station表,查询不到任何东西。而我查log,上面显示

18:26:52.473 [http-nio-8080-exec-7] DEBUG com.jiaotong114.jiaotong.mapper.LineMapper.selectSingleStationByNameAndCity - ==> Preparing: SELECT * FROM bus_station WHERE name = ? AND city = ?
18:26:52.473 [http-nio-8080-exec-7] DEBUG com.jiaotong114.jiaotong.mapper.LineMapper.selectSingleStationByNameAndCity - ==> Parameters: 烟草公司(String), 南通(String)
18:26:52.474 [http-nio-8080-exec-7] DEBUG com.jiaotong114.jiaotong.mapper.LineMapper.selectSingleStationByNameAndCity - <== Total: 0

我在线上数据库中,直接查询SELECT * FROM bus_station WHERE name = '烟草公司' AND city = '南通',可以查出一条数据。

也就是说,我在程序中用mybatis查不到信息,但直接在数据库中用同样的条件查却可以查出来。

而且这个问题在本地是没有的。

我相信是数据库,或者数据库与程序连接处出了什么问题,但不能确定是哪里出问题

请各位大虾指点一二。

临摹微笑
浏览 491回答 4
4回答

手掌心

确认参数,尤其是 xml 中制定的参数的写法,以及实参传参; 同一套code,部署至本地,启动本地环境,调试便知;

jeck猫

怀疑是编码问题,请全部使用UTF8编码再试。代码文件全部使用UTF8无BOM,unix换行符格式保存,数据库编码使用UTF8,再试一次

慕勒3428872

应该是编码的问题,你先试一下name和city参加是英文的是否能查询出结果。 如果能查询出结果,name和city参数是从界面输入的话,需要看一下前端jsp文件头声明的编码,最好在@page中声明成和数据库端一致的编码格式。

qq_遁去的一_1

上面大虾估计的对 你试试查查全英文的,如果条件允许 也可以开一下mysql.log看一下,mysql到底执行了什么查询
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java