在linux下使用MYSQL获取数据问题

时间:2010-03-21 12:56:42

标签: mysql linux jpa ubuntu

最近我开始使用Linux(Ubuntu 9.10)而不是Windows。我正在使用Spring,MYSQL和jpa的java Web应用程序。但是,在安装linux之前我从数据库中制作了一个备份文件,然后安装了linux,安装了MYSQL查询浏览器和管理员工具,并使用管理工具恢复了备份文件,然后得到了所有的表并从中做了一个简单的select语句其中一个表并且正常得到结果,一切似乎都运行得很好。

有一个USER表,并且有一个namedQuery被定义为通过userName获取用户,问题是当我传递一个正确的userName时我仍然什么都没得到!

我真的不知道是什么问题!该应用程序在Windows下完美运行!

拜托,有谁可以帮我解决这个问题?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

首先想到的是MySQL表名在Linux上区分大小写,但在Windows上不区分大小写。即这可能适用于Windows:

SELECT ... FROM User ...

但是在Linux上你需要为表名使用正确的大小写:

SELECT ... FROM USER ...

但没有更多信息,这真的很难说。

答案 1 :(得分:1)

在Windows和Linux下,某些设置具有不同的默认设置,表名称的区分大小写等是其中之一。可能是一个非指定的设置默认为Windows上的一个值,而另一个默认设置在linux下。

答案 2 :(得分:0)

你没事,对我而言,我发现为什么我无法登录传递userName! 问题是,当我从备份文件恢复模式时,所有表都是使用小写名称创建的,例如,USER表将是user,然后是.. 当我启动tomcat时,JPA自动创建所有@Entity,因此它为@Entity用户创建一个User表,结果是我有两个USER表,一个包含所有数据的用户表,以及一个空用户表,这是应用程序使用的那个!这就是为什么我无法检索任何数据,因为实际上没有数据要从表中检索。

解决此问题的解决方法我修改了备份文件,重命名JPA所期望的所有表,以避免在启动应用程序时再次创建它们。

我真的不知道是否有更好的解决方案,但它对我来说是这样的。

最后,非常感谢你的帮助。