У меня есть веб-приложение, использующее Java / JSP, которое работало с базой данных MySQL, которую я сейчас переместил в Sybase.
Я изменил то, что, по моему мнению, являются соответствующими частями соединения (Sybase Connectorи соответствующий код)
Я использую PreparedStatements для своих запросов.То, что работало в MySQL, теперь больше не возвращает ничего (ошибки или результаты).
Первый простой запрос, который я тестировал, - это форма входа в систему, которая должна соответствовать значениям пользователя для имени и пароля в таблице."appuser".
Подготовленный оператор в предоставленном коде используется для работы, но больше не работает с Sybase.
Соответствующий код приведен ниже.Дайте мне знать, если что-то еще нужно.
public void connectDB() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException
{
/* String userName="****";
String password="******";
String url="jdbc:sybase:sybdev1dw/ETL_MON";
Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
conn=DriverManager.getConnection(url, userName, password); */
String driver = "com.sybase.jdbc2.jdbc.SybDriver";
String host = "********";
String dbName = "********";
String url = "jdbc:sybase:Tds:" + host + ":4110" +"?SERVICENAME=" + dbName;
String username = "*******";
String password = "*********";
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
System.out.println("Connection successful"+conn);
}
public Boolean loginAction(String name, String pass, String role,HttpServletRequest request) throws SQLException {
Boolean valid=false;
session=request.getSession();
PreparedStatement stmt=conn.prepareStatement("SELECT pass FROM appuser WHERE name=?");
stmt.setString(1, name);
results=stmt.executeQuery();
System.out.println("loginAction:"+results.getFetchSize());
while(results.next())
{
if(results.getString("pass").equals(pass))
{
valid=true;
session.setAttribute("name",name);
session.setAttribute("role",role);
}
else
{
valid=false;
}
}
System.out.println("loginAction:"+valid);
return valid;
}