Я собираюсь выполнить запрос и вернуть результат с помощью com.sun.rowset.CachedRowSetImpl пользователям (которые не находятся под моим контролем). Я хочу убедиться, что они не будут выполнять любую операцию обновления на этом объекте, которая может вносить изменения в базу данных. Одним из способов может быть:Как сделать CachedRowSetImpl readonly
- Продлить CachedRowSetImpl и переопределить SetReadOnly() метод так, чтобы ни один пользователь не может установить его в ложное.
Этого достаточно? Или есть другие способы, с помощью которых пользователи могут обновлять базу данных? Должен ли я также переопределить метод clone()?
Благодаря
за [JavaDoc] (http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#CONCUR_READ_ONLY) это поле является константой (статический окончательный int). Не могу это изменить :) – simpleDev
Я не хотел менять значение константы, которую вы numbnuts. Он используется в запросе для определения того, разрешает ли ResultSet обновления или нет. – Kayaman
Спасибо! не знал этого. Кроме того, если вы не укажете, результат Set «по-прежнему» по умолчанию [javadoc] (http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html#prepareStatement (java .lang.String)). Не понравилось, что вы используете слово «you numbnuts», несмотря на то, что я его :) Потому что я не знал, как это использовать. Теперь я использую как setReadOnly, так и CONCUR_READ_ONLY – simpleDev