java select from datasource

Teteshnik

поскольку я хороший программист, а в жаве просто атец, то возникло непонимание по незнанию.
итак. используем weblogic, eclipse, mysql, data source находятся на weblogic.
часть кода следующая (может кто опознает).
DataSource ds=(DataSource)ctx.lookup("mysql_test");
Connection con=ds.getConnection;
Statement stmt = null;
String query = "select * from tagan";
stmt = con.createStatement;
System.out.println("---" + stmt.execute(query; // выводится True
ResultSet rs = stmt.getResultSet; // а вот тут уже NULL
Значит как видите при попытке вывести данные возвращается NULL, хотя stmt.execute(query) возвращает TRUE. Более того update и insert работает. Помогите плиз вывести какой-нить результат.

pitrik2

javadoc говорит что такое возможно в двух случаях
Executes the given SQL statement, which may return multiple results.
In some (uncommon) situations, a single SQL statement may return
multiple result sets and/or update counts. Normally you can ignore
this unless you are (1) executing a stored procedure that you know may
return multiple results or (2) you are dynamically executing an
unknown SQL string.
The execute method executes an SQL statement and indicates the form of the first result. You must then use the methods getResultSet or getUpdateCount to retrieve the result, and getMoreResults to move to any subsequent result(s).
что у тебя возвращает getUpdateCount и getMoreResults ?

Teteshnik

-1 и false.
при выполнении stmt.execute(query); срабатывает exception (java.lang.NullPointerException но коннект с базой не пропадает потому что сразу же выполняется инсерт например.

pitrik2

при выполнении stmt.execute(query); срабатывает exception (java.lang.NullPointerException)
а что ж про это ни слова в изначальном посте? :)
в целом я бы предложил либо упорно гуглить, либо скачать сурцы мыскуля и подебажить
какой стектрейс у этого NPE? может там по названию методов чо понять можно?
*upd*
все таки скажу истину: дело не в джаве, класс Statement и класс ResultSet являются пустышками, вся реализация лежит в драйвере конкретной базы данных. тойсть компания Оракл (Сан) никакой ответственности за енто не несёт

Teteshnik

сам на тот момент только проверил. там действительно народ параметры запуска вебсервера пытается менять и т.д. в любом случае я понял, куда копать. и у меня есть условное подтверждение работоспособности функции, просто это бывает не всегда так.

marat7256

тойсть компания Оракл (Сан) никакой ответственности за енто не несёт
После некоторых приобретений Оракл как раз несет.
Оставить комментарий
Имя или ник:
Комментарий: