类的方法在远程Web服务器中不起作用,但在本地工作

时间:2015-03-19 20:41:52

标签: java class jsp webserver server

我开发了一个jsp(web应用程序),其中有一个包含类Db的类包vdb,其源代码位于下方,而jsp文件正在使用返回Connection对象的方法connect()year()返回一个整数值。

方法connect()在两种情况下都很好(在远程服务器或localhost中),但方法year()在本地主机的情况下运行良好,但在远程服务器(openshift)中它不起作用。

FILE 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);%>

这个或错误有什么问题。如何克服。

1 个答案:

答案 0 :(得分:0)

代码没有问题。 问题在于使用了表名的情况。 本地主机在WINDOW OS上,而远程Web服务器(OPENSHIFT)是基于Linux的,在Linux OS中,默认情况下mysql表名是区分大小写的, 由于案例不匹配导致的例外情况。

在linux中默认情况下,mysql查询区分大小写,但在窗口中则不是。