对了,JDBC2.1,2.0,1.0的文档都可以主要是给数据库厂商制作JDBC驱动的那份规范
暂时不要3.0的急谢谢
暂时不要3.0的急谢谢
解决方案 »
- 在测试类中如何加载logback的配置文件logback.xml
- struts2有exceptionp-mapping映射,谁用过啊?
- 一句简单SQL的性能问题
- 还有一年不到,就毕业了,很纠结!!!!!!
- 为什么这样设计Dao?
- 关于STRUTS转向的问题?高手进!!
- <html:optionsCollection 怎么用字符数组?
- 如何用Eclips开发struts,具体怎么配置?
- 请filippo1980(管药师★吾辈岂是池中物,一遇风云便化龙)和keke1(龙)进来领分!谢谢你们的帮助,请再谈谈你们对XML的前景的看法!
- 能不能帮我看一下是什么错误?
- 做java webserver得朋友请留下qq,前10人每人送10分:)
- 我个人藏书,给大家看看,希望大家也给我介绍一些好书.
举例最好!
而其中每个statement都可以产生一个ResultSet,各个ResultSet相互不影响(false)那段英文的意思是:你用一个statement执行了一个query得到一个resultset,紧接着你又用这个statement执行了别的query或者update,那么最初的resultset就失效了。
其实是这一句不大明白从一个含有多个results的序列?
多个results?什么含义呢难道是说象楼上说的:你用一个statement执行了一个query得到一个resultset,
紧接着你又用这个statement执行了别的query?
感觉表达的不是这样的含义
而其中每个statement都可以产生一个ResultSet,各个ResultSet相互不影响(false)哪儿写的这个是false?
的意思是,一个statement执行出了多个resulteset,如果其中一个resulteset被调用了next(),其他的resultset就无效了.整段话的意思大致是一个statement同时只能care一个resultset.各个ResultSet相互不影响,我认为不对,原因就是那段英文啊
一个connection可以产生多个statement,而其中每个statement都可以产生一个ResultSet,各个ResultSet相互不影响
不管是对是错,我都需要SUN定义的JDBC标准来判断,
问题是我现在通过API的JAVADOC看到的文档:是以下三种情况会关闭ResultSet或使ResultSet失效
1.A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.
2.显式地掉用close();
3.垃圾回收jdbc接口规范规定了别的关闭ResultSet的方式吗?如果有,在哪儿写的?另外:
如果观点是:一个connection可以产生多个statement,而其中每个statement都可以产生一个ResultSet,各个ResultSet相互不影响
这个“各个ResultSet相互不影响”哪个文档有说明?我目前还没找到:(
的意思是,一个statement执行出了多个resulteset,如果其中一个resulteset被调用了next(),其他的resultset就无效了.整段话的意思大致是一个statement同时只能care一个resultset.你这个翻译还是有疑问吧?我理解地是:从一个包含多个result的序列中取得下一个resut或者从一系列result中取得一个result,
result不好理解,如果说result就是ResultSet,明显是不对的,一个Statement如何同时产生多个ResultSet而得到一系列的ResultSet呢不好意思,我要弄清楚used to retrieve the next result from a sequence of multiple results. 的真正含义。所以有点饶舌:(
一个connection可以产生多个statement,而其中每个statement都可以产生一个ResultSet,各个ResultSet相互不影响
getMoreResultspublic boolean getMoreResults()
throws SQLException
Moves to a Statement object's next result. It returns true if this result is a ResultSet object. This method also implicitly closes any current ResultSet object obtained with the method getResultSet. getResultSetpublic ResultSet getResultSet()
throws SQLException
Returns the current result as a ResultSet object. This method should be called only once per result.Returns:the current result as a ResultSet object; null if the result is an update count or there are no more results
重新从这个Statement 去取出其它的resultset 原来的resultset就自动关闭!
因为一个Statement 可以产生几个有顺序的resultset 但要一次只能获得一个resultset
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第二种情况:动态执行SQL谁能举个例子?
这是新的问题:)不过原来的问题:各个ResultSet相互不影响这个观点得不到支持
//这段英文来自http://java.sun.com/j2se/1.4/docs/guide/jdbc/getstart/statement.html#996886
Some DBMSs treat each statement in a stored procedure as a separate statement; others treat the entire procedure as one compound statement. This difference becomes important when auto-commit is enabled because it affects when the method commit is called. In the first case, each statement is individually committed; in the second, all are committed together. 我遇到一个实际问题是某数据库的JDBC执行:
Statement st1 = conn.createStatement);
Statement st2 = conn.createStatement();
ResultSet rs1 = st1.exeQuery(("select * from table1");
ResultSet rs2 = st2.exeQuery("select * from table2");
这个时候在执行了ResultSet rs2 = st2.exeQuery("select * from table2");后rs1居然被关闭了,他们说他们的JDBC驱动符合JDBC2。0
我现在要找文档证明他们不符合规范有点糊涂了,没找到JDBC文档说:各个ResultSet相互不影响