亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
1234下一頁
最近訪問板塊 發(fā)新帖
查看: 5025 | 回復(fù): 37
打印 上一主題 下一主題

jdbc問題,請多幫忙 [復(fù)制鏈接]

論壇徽章:
4
2015年亞洲杯之阿聯(lián)酋
日期:2015-03-10 10:32:022015年亞洲杯之阿曼
日期:2015-03-10 14:53:222015亞冠之水原三星
日期:2015-07-18 15:40:262015亞冠之塔什干棉農(nóng)
日期:2015-07-27 20:52:05
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2005-12-01 16:46 |只看該作者 |倒序?yàn)g覽
請問
Statement stmt
stmt.addBatch("xxx");
stmt.executeBatch();

PreparedStatemt stmt
stmt.setXXX(x,x)
...
stmt.addBatch()
stmt.executeBatch()
有什么區(qū)別呢?
可以從任何方面來說,多謝

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2005-12-01 20:14 |只看該作者
原帖由 1017of 于 2005-12-1 16:46 發(fā)表
請問
Statement stmt
stmt.addBatch("xxx");
stmt.executeBatch();

PreparedStatemt stmt
stmt.setXXX(x,x)
...
stmt.addBatch()
stmt.executeBatch()
有什么區(qū)別呢?
可以從任何方面來說 ...

還沒有怎么用過 jdbc
呵呵

我感覺到的一點(diǎn),就是 preparedStatement 比 statement 靈活點(diǎn),比如,你code的時(shí)候只清楚sql的大致語句,但是不知道具體的參數(shù)值,可以使用preparedstatement ,然后使用 set 方法傳遞值會方便些,當(dāng)然,使用 Statement也是行的

其他的我就不知道了

[ 本帖最后由 白色烏鴉 于 2005-12-1 20:16 編輯 ]

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2005-12-01 20:19 |只看該作者
上面的我可能說的不對

這個(gè)是jdk文檔中關(guān)于類 PreparedStatement 的說明,希望對你有幫助

  1. An object that represents a precompiled SQL statement.

  2. A SQL statement is precompiled and stored in a PreparedStatement object. [color=Red]This object can then be used to efficiently execute this statement multiple times. [/color]

  3. Note: The setter methods (setShort, setString, and so on) for setting IN parameter values must specify types that are compatible with the defined SQL type of the input parameter. For instance, if the IN parameter has SQL type INTEGER, then the method setInt should be used.

  4. If arbitrary parameter type conversions are required, the method setObject should be used with a target SQL type.

  5. In the following example of setting a parameter, con represents an active connection:

  6.    PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
  7.                                      SET SALARY = ? WHERE ID = ?");
  8.    pstmt.setBigDecimal(1, 153833.00)
  9.    pstmt.setInt(2, 110592)

復(fù)制代碼

[ 本帖最后由 白色烏鴉 于 2005-12-1 20:21 編輯 ]
redappleboy 該用戶已被刪除
4 [報(bào)告]
發(fā)表于 2005-12-02 08:53 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
4
2015年亞洲杯之阿聯(lián)酋
日期:2015-03-10 10:32:022015年亞洲杯之阿曼
日期:2015-03-10 14:53:222015亞冠之水原三星
日期:2015-07-18 15:40:262015亞冠之塔什干棉農(nóng)
日期:2015-07-27 20:52:05
5 [報(bào)告]
發(fā)表于 2005-12-02 13:50 |只看該作者
烏鴉猛啊,偶感興趣的是兩者在系統(tǒng)處理與執(zhí)行效率的差別
A SQL statement is precompiled and stored in a PreparedStatement object.
precompiled sql statement是存儲在客戶端的java pool或者stack中?還是會存儲在database中的某種cache中?
This object can then be used to efficiently execute this statement multiple times.
如果多次setXXX()和addBatch(),而后executeBatch(),object需要被多次precompile嗎?
另statement、preparedstatement和動(dòng)態(tài)sql有什么關(guān)系呢?statement、preparedstatement在處理batch時(shí),又有什么區(qū)別呢?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2005-12-02 14:03 |只看該作者
大家思考一下可行性
addBatch() 你存放的是不同的 SQL ,那還怎么提前編譯之說。磕莻(gè)只是為了批處理




PreparedStatemt stmt
stmt.setXXX(x,x)

這種方式,同一個(gè)SQL,不同值而已,有預(yù)編譯的可能


但 addBatch 也有可能是同一語句只編譯一次:發(fā)現(xiàn)同一個(gè)SQL語句,而且里面還得同一個(gè)賦值時(shí),做 hash 處理
不過可能性相當(dāng)相當(dāng)小,因?yàn)檫不如直接執(zhí)行了

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2005-12-02 14:52 |只看該作者
原帖由 1017of 于 2005-12-2 13:50 發(fā)表
烏鴉猛啊,偶感興趣的是兩者在系統(tǒng)處理與執(zhí)行效率的差別
A SQL statement is precompiled and stored in a PreparedStatement object.
precompiled sql statement是存儲在客戶端的java pool或者stack中?還是會存儲在database中的某種cache中?
This object can then be used to efficiently execute this statement multiple times.
如果多次setXXX()和addBatch(),而后executeBatch(),object需要被多次precompile嗎?
另statement、preparedstatement和動(dòng)態(tài)sql有什么關(guān)系呢?statement、preparedstatement在處理batch時(shí),又有什么區(qū)別呢?


問題好多哦,我一個(gè)一個(gè)地來,由于我用這個(gè)用得不多,我就只能談點(diǎn)自己想法。

第一句
A SQL statement is precompiled and stored in a PreparedStatement object.

這句說 那個(gè)冬冬是保存在 PreparedStatement  對象中,因而,也就是保存在了客戶端 java 虛擬機(jī)內(nèi)的堆中(應(yīng)該就是你說的stack中)

[ 本帖最后由 白色烏鴉 于 2005-12-2 14:54 編輯 ]

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2005-12-02 15:16 |只看該作者
關(guān)于第二個(gè)問題:

這個(gè)是我從網(wǎng)絡(luò)上找的,不知道對你有沒有幫助

利用PreparedStatement對象提高數(shù)據(jù)庫的總體效率

  在使用PreparedStatement對象執(zhí)行SQL命令時(shí),命令被數(shù)據(jù)庫進(jìn)行解析和編譯,然后被放到命令緩沖區(qū)。然后,每當(dāng)執(zhí)行同一個(gè)PreparedStatement對象時(shí),它就會被再解析一次,但不會被再次編譯。在緩沖區(qū)中可以發(fā)現(xiàn)預(yù)編譯的命令,并且可以重新使用。在有大量用戶的企業(yè)級應(yīng)用軟件中,經(jīng)常會重復(fù)執(zhí)行相同的SQL命令,使用PreparedStatement對象帶來的編譯次數(shù)的減少能夠提高數(shù)據(jù)庫的總體性能。如果不是在客戶端創(chuàng)建、預(yù)備、執(zhí)行PreparedStatement任務(wù)需要的時(shí)間長于Statement任務(wù),我會建議在除動(dòng)態(tài)SQL命令之外的所有情況下使用PreparedStatement對象。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2005-12-02 15:48 |只看該作者
我在一個(gè)帖子上猛灌,是不是不太好呀,

呵呵

PreparedStatemt 是接口類型的,記得我們語句是這樣寫的

Connection conn;
................

PreparedStatement pstmt = conn.prepareStatement(........);


所以,我去看了一下 Connection 中的prepareStatement()方法,其中有這樣的一個(gè) NOTE:

This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method prepareStatement will send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until the PreparedStatement object is executed. This has no direct effect on users; however, it does affect which methods throw certain SQLExceptions.

論壇徽章:
4
2015年亞洲杯之阿聯(lián)酋
日期:2015-03-10 10:32:022015年亞洲杯之阿曼
日期:2015-03-10 14:53:222015亞冠之水原三星
日期:2015-07-18 15:40:262015亞冠之塔什干棉農(nóng)
日期:2015-07-27 20:52:05
10 [報(bào)告]
發(fā)表于 2005-12-02 16:37 |只看該作者
烏鴉,你應(yīng)該叫白色牛人啊,嘿嘿
第一:堆是不是應(yīng)該為heap啊,堆棧好象是stack,不過我不知道這倆有什么區(qū)別;
第二:從7樓和8樓的內(nèi)容是否sql是在database端被precompile的呢?那么所謂的命令緩沖區(qū)是屬于誰的呢?OS或者database?解析和編譯有什么不同呢?解析需要額外命令緩沖區(qū)空間或者其他存儲空間嗎?
第三:如果僅僅是動(dòng)態(tài)sql的參數(shù)不同,addBatch與executeBatch符合preparedstatement的減少編譯的條件嗎?或者與數(shù)據(jù)庫或jdbc驅(qū)動(dòng)有關(guān)?
第四:9樓的it does affect which methods throw certain SQLExceptions,可能會出現(xiàn)什么現(xiàn)象呢?
找了好久,一點(diǎn)有價(jià)值的都沒找到,你是在哪里找到這些的?share一下吧,嘿
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP