( Продолжение после http://www.sql.ru/forum/actualthread.aspx?tid=348905 - в этом топике писал про проблемы доступа к mysql из Java в L2 Fortress на своём сервере. )
Но кажется, лыжи совсем не едут. Решил, на всякий случай, сюда продублировать. Вдруг кто чего посоветует.
Так вот, дошли руки до теста в лоб. Взял совсем другую машину (другая БД, вовсе не l2j), другая версия mysql, и, вообще, amd64, в то время, как исходный сервер - на x86.
Слепил отдельный тестик.
В таком виде, независимо то того что пишем по setString (или setObject), т.е. указывать в качестве ключа можно любую абракадабру, находится одна строка (совершенно левая, но всегда одна и та же.)
Если setXXX не использовать - ругается, что не задан параметр.
Если setXXX не использовать, а значение ключа вписать вместо "?" в строке запроса - всё находится прекрасно.
Пробовал готовый бинарный mysql-connector-java-3.1.12-bin.jar, пробовал самосборный из сорцов jdbc-mysql-3.1.10, результат один и тот же...
Куда копать - непонятно. Народ с игрового сервера уже вторую неделю мучается :-/
Но кажется, лыжи совсем не едут. Решил, на всякий случай, сюда продублировать. Вдруг кто чего посоветует.
Так вот, дошли руки до теста в лоб. Взял совсем другую машину (другая БД, вовсе не l2j), другая версия mysql, и, вообще, amd64, в то время, как исходный сервер - на x86.
Слепил отдельный тестик.
String userName = "-----";
String password = "------";
String url = "jdbc:mysql://localhost/WWW";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password);
System.out.println ("Database connection established");
PreparedStatement s = conn.prepareStatement("SELECT id, value FROM hts_data_title WHERE id = ?");
s.setString(1, "тут-значение-ключа");
s.executeQuery();
ResultSet rs = s.getResultSet ();
int count = 0;
while (rs.next () && (count < 5))
{
String id = rs.getString ("id");
String val = rs.getString ("value");
System.out.println("id = " + id + ", value = " + val);
++count;
}
rs.close ();
s.close ();
System.out.println (count + " rows were retrieved");
В таком виде, независимо то того что пишем по setString (или setObject), т.е. указывать в качестве ключа можно любую абракадабру, находится одна строка (совершенно левая, но всегда одна и та же.)
Если setXXX не использовать - ругается, что не задан параметр.
Если setXXX не использовать, а значение ключа вписать вместо "?" в строке запроса - всё находится прекрасно.
Пробовал готовый бинарный mysql-connector-java-3.1.12-bin.jar, пробовал самосборный из сорцов jdbc-mysql-3.1.10, результат один и тот же...
Куда копать - непонятно. Народ с игрового сервера уже вторую неделю мучается :-/
