我开发了一个jsp (web应用程序),其中有一个包含以下类Db的类包,jsp文件使用返回连接对象的方法connect()和返回整数值的year()方法。
方法connect()在两种情况下(在远程服务器或本地主机)都运行良好,但是year()方法在本地主机上运行良好,但在远程服务器(Openshift)中不能工作。
文件Db.java
package vdb;
import java.sql.*;
public class Db {
public static synchronized Connection connect()
{
Connection con=null;
try{
String url = "jdbc:mysql://1xx.x.xx.x:xx06/";
String db = "mydb";
String driver = "com.mysql.jdbc.Driver";
String user = "adminaz";
String pass = "mypassword";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db,user,pass);
}
catch(Exception e)
{
}
return con;
}
public static int year()
{
int y=0;
ResultSet rs=null;
try
{
Connection con=connect();
Statement st=con.createStatement();
rs=st.executeQuery("SELECT MAX(START) FROM SESSION");
rs.next();
y=rs.getInt(1);
}
catch (Exception e)
{
System.out.println(e);
}
return y;
}
}文件index.jsp
<%@page import="java.sql.*;"pageEncoding="UTF-8"%>
<% int y= vdb.Db.year();%>
<%out.println(" CURRENT YEAR "+y);%>这个或error.How需要克服的问题是什么?
发布于 2015-03-23 14:51:31
代码没有问题。问题在于所使用的表名的情况。本地主机在WINDOW上,而远程web服务器(OPENSHIFT)是基于Linux的,而在Linux操作系统中,mysql表名中的大小写敏感,这是由于大小写不匹配引起的异常。
默认情况下,在linux中,mysql查询区分大小写,但在窗口中则不是。
https://stackoverflow.com/questions/29154609
复制相似问题