成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

關(guān)于在ORACLE下開發(fā)JAVA的幾個(gè)問題

瀏覽:2日期:2024-07-07 11:59:53
我本來(lái)不再想寫一些類似教程的文章,因?yàn)榧热唤薪坛叹鸵軞v經(jīng)歷史的考驗(yàn),而對(duì)于我這種菜鳥級(jí)的程序設(shè)計(jì)者來(lái)說(shuō)僅喜歡隨心所欲地交流一些自己的經(jīng)驗(yàn)。可以不成方法,無(wú)關(guān)條理地想到哪說(shuō)到哪。

但是有些問題我又不能不出來(lái)說(shuō)明白,因?yàn)槟壳熬W(wǎng)上的很多“教程”都在把初學(xué)者引向錯(cuò)誤,有些是作者個(gè)人理解的錯(cuò)誤,有些作者自己從來(lái)沒有做過開發(fā)卻能寫出一篇軟件開發(fā)的文章。他們只會(huì)做TRANSLATE,COPY,CUT這些操作,最簡(jiǎn)單的例子就是sun的JDK開發(fā)文檔中到目前為止介紹大對(duì)象(文件)存儲(chǔ)的方法都是錯(cuò)誤的,可是說(shuō)經(jīng)過N(N >100)次的重寫都沒有人糾正,因?yàn)楹髞?lái)的人都只是COPY了一下,根本沒有真的去做,只是把原作者換成自己的名字而已。

問題一:如保加載JDBC驅(qū)動(dòng)程序:

正常我們加載驅(qū)動(dòng)程序有三個(gè)途徑:

1)Class.forName(String)這相當(dāng)于classLoader一個(gè)String指定的類,在裝載時(shí)把該驅(qū)動(dòng)程序的靜態(tài)內(nèi)容都初始化,其實(shí)這時(shí)驅(qū)動(dòng)程序類調(diào)用了DriverManager.registerDriver(driver);方法

2)使用系統(tǒng)屬性:System.getProperty().load(new FileInputStream('屬性文件'));

在屬性文件中指定jdbc.driver=drivername 這樣的好處是可以同時(shí)加載多個(gè)JDBC,換數(shù)據(jù)庫(kù)時(shí)不用訪問JAVA源代碼,只是修改屬性文件

3)直接registerDriver(driver)這種方法最可靠,可以在任何環(huán)境下使用。

1)方法簡(jiǎn)單,但MS的JVM不能正確初始化。比如使用IE時(shí)在APPLET中就不能使用,應(yīng)該用3)的方法。但3)方法在靈活性方面不如2),可以根據(jù)環(huán)境綜合考慮。

問題二:大對(duì)象存儲(chǔ)

一般來(lái)說(shuō),大對(duì)象存儲(chǔ)是把文件存到數(shù)據(jù)庫(kù)中,當(dāng)然也可以內(nèi)存中的超大字符串。對(duì)于象圖片這樣的文件當(dāng)然是用二進(jìn)制存儲(chǔ),這里有很多誤區(qū),網(wǎng)絡(luò)上的教程99%都是行不通的,連SUN自己的文檔都一直錯(cuò)誤,雖然錯(cuò)誤很小。按說(shuō)二進(jìn)制文件應(yīng)該存為BLOB類型,但JBDC2并不能直接對(duì)BLOB存入二進(jìn)制文件,如果你這樣做,會(huì)得到一個(gè)IO而不是SQL異常,為此花了我近兩個(gè)小時(shí)才弄清楚。

如果要把一個(gè)二制文件存入ORACLE,用標(biāo)準(zhǔn)的JDBC你就要用LONG ROW類型:

create table tb_file(name varchar(20),detail long row);

然后

File file = new File('aaa.gif');int fileLength =(int) file.length();InputStream fin = new FileInputStream(file);PreparedStatement pstmt = con.prepareStatement('insert into tb_file values(′aaa.gif′,?)');pstmt.setBinaryStream (1, fin, fileLength);pstmt.executeUpdate();

如果你一定要用BLOB存儲(chǔ),你就必須用ORACLE自己的方法:

create table tb_file(name varchar(20),detail BLOB);con.setAutoCommit(false);stmt.executeUpdate('insert into tb_file values(′aaa.gif′,empty_blob())');

下面必須SELECT得到BLOB的對(duì)象再向里寫:

rs = stmt.executeQuery('select detail from tb_file where name=′aaa.gif′ for upfdate' );if(rs.next()){Blob blob = rs.getBlob(1);BinaryOutputStream out = ((oracle.sql.BLOB)blob).getBinaryOutputStream();byte[] b = new byte[((oracle.sql.BLOB)blob).getBufferSize];InputStream fin = new FileInputStream(file);int len = 0;while( (len = fin.read(b)) != -1)out.write(b,0,len);fin.close();out.close();con.commit();}

同樣讀取數(shù)據(jù)你并不能象LONG ROW那樣

InputStream in = rs.getBinaryInputStream('detail');

而要

Blob blob = rs.getBlob('detail');in = blob.getBinaryStream();

問題三:可滾動(dòng)結(jié)果集

ORACLE 明確說(shuō)明不支持結(jié)果集滾動(dòng),那么我們用JDBC2得到一個(gè)可滾動(dòng)的結(jié)果集就是同JDBC自己支持的,就是說(shuō)結(jié)果集要在內(nèi)在中高度緩存,很多很多的開發(fā)者都錯(cuò)誤地認(rèn)為是數(shù)據(jù)庫(kù)支持的。只是他們沒有真正查詢大量行,如果真的查詢大量行的話肯定是死定了!!!!!!對(duì)于超大量行的數(shù)據(jù),情愿返回到它的笨方法也不要使用可滾動(dòng)結(jié)果集。

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产美女精品人人做人人爽| 永久久久久久| 精品视频一区二区三区免费| 亚洲日本va午夜在线电影| 日韩三级在线观看| 精品久久久久香蕉网| 欧美性猛交xxxx乱大交退制版| 欧美日本在线| 精品福利视频一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲va欧美va天堂v国产综合| 欧美综合在线视频| 99精品久久久久久| 天天爽夜夜爽夜夜爽精品视频| 欧美精品一区二区蜜臀亚洲| 欧美日韩国产综合一区二区| 久久精品女人| 亚洲每日更新| 国产激情视频一区二区三区欧美| 久久久久久精| 一级中文字幕一区二区| 色欧美片视频在线观看在线视频| 久久99精品国产91久久来源| 欧美福利电影网| 国产精品亚洲视频| 日韩精品一区二区三区四区| 亚洲在线视频一区| 成人做爰69片免费看网站| 西西人体一区二区| 国产高清精品网站| 99久久精品国产网站| 欧美体内she精高潮| 美国十次综合导航| 一区二区三区欧美在线观看| 国产无遮挡一区二区三区毛片日本| 欧美日韩精品一区二区三区四区| 亚洲人www| 欧美/亚洲一区| 国产经典欧美精品| 麻豆成人在线观看| 亚洲午夜免费视频| 欧美日韩精品免费观看视频完整| 国产一区二区三区黄视频| 亚洲美女免费视频| 亚洲婷婷在线视频| 欧美三级第一页| 日韩美女一区二区三区四区| 欧美videos中文字幕| 久久国产主播| 狠狠色综合网| 99国产精品久久久久久久久久 | 一级中文字幕一区二区| 日韩女优电影在线观看| 欧美在线观看18| 色婷婷亚洲综合| 在线观看欧美日本| 久久成人一区| 亚洲人久久久| 精品999成人| 亚洲黄色影片| 精品999成人| 红桃视频国产精品| 亚洲人成高清| 亚洲综合精品四区| 在线视频精品一区| 99在线|亚洲一区二区| 国产精品婷婷| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲调教视频在线观看| 亚洲视频福利| 国产亚洲精品v| 免播放器亚洲| 欧美在线视频你懂得| 日本精品裸体写真集在线观看| 91黄色在线观看| 7777精品伊人久久久大香线蕉 | 日韩一区在线播放| 亚洲线精品一区二区三区 | 韩国v欧美v日本v亚洲v| 国内精品第一页| 国产一区中文字幕| www.成人在线| 国内精品视频在线播放| 亚洲国产午夜| 亚洲精品中文字幕在线| 色天使久久综合网天天| 欧美一卡二卡三卡四卡| 国产清纯白嫩初高生在线观看91| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲人成免费| 日本久久电影网| 91精品国产综合久久蜜臀| 精品国产免费一区二区三区香蕉| 国产精品电影院| 免费人成在线不卡| 成人av在线资源网| 欧美一区二区三区影视| 国模套图日韩精品一区二区 | 色系网站成人免费| 一区av在线播放| 欧美久久电影| 亚洲国产高清aⅴ视频| 91在线精品秘密一区二区| 日韩一区二区电影在线| 国产女同性恋一区二区| 亚洲午夜电影网| 欧美日韩少妇| 亚洲免费网址| 精品蜜桃在线看| 亚洲裸体在线观看| 国产一区二区在线电影| 激情欧美亚洲| 欧美高清一级片在线| 日本一区二区三区电影| 日本vs亚洲vs韩国一区三区| 91麻豆免费视频| 欧美午夜精品电影| 中文字幕综合网| 99久久免费精品高清特色大片| 91久久国产综合久久| 国产精品久久久久毛片软件| 国内欧美视频一区二区| 亚洲欧洲另类| 国产日韩成人精品| 国产一区二区91| 久久精品日韩欧美| 国产欧美视频一区二区| 国产福利一区二区三区视频在线| 亚洲精品久久| 久久综合色一综合色88| 奇米一区二区三区av| 99亚洲一区二区| 国产精品第五页| 91美女片黄在线| 欧美一区中文字幕| 久久99精品久久久久久国产越南 | 模特精品在线| 国产精品久久看| 色婷婷综合久久久久中文一区二区 | 精品在线免费观看| 在线综合+亚洲+欧美中文字幕| 97se亚洲国产综合自在线不卡| 亚洲欧美影音先锋| 欧美日韩在线播放三区四区| 成人av在线观| 欧美一区二区精品在线| 国产91精品入口| 欧美mv日韩mv国产网站| 成人av在线资源网站| 日韩一区二区免费在线观看| 日韩精品电影在线| 久久青青草原一区二区| 亚洲国产cao| 久久久久久久欧美精品| 日本欧美在线看| 欧美日韩一二三| 国产一区二区不卡老阿姨| 日韩一区二区三| 欧美一区影院| 亚洲三级免费电影| 亚洲国产日本| 日韩欧美亚洲国产另类| 成人免费毛片高清视频| 久久五月婷婷丁香社区| 99re成人在线| 国产欧美一区二区精品久导航| 国产精品啊啊啊| 亚洲一区免费视频| 欧美视频第二页| 福利电影一区二区| 中文字幕一区二区三中文字幕| 一本色道久久综合亚洲精品不 | 欧美日韩一卡二卡| 精品在线观看视频| 久久综合给合久久狠狠狠97色69| 国产真实久久| 石原莉奈在线亚洲二区| 欧美一区在线视频| 亚洲国内欧美| 精品一区二区三区日韩| 日本一区二区三区高清不卡| 7799精品视频| 日韩av电影天堂| 久久精品人人| 一本色道亚洲精品aⅴ| 精品一区二区三区免费播放| 一区二区三区免费| 久久久久久99久久久精品网站| 99国产精品久久久久久久成人热| 狠狠色2019综合网| 亚洲地区一二三色| 中文字幕va一区二区三区| 在线综合+亚洲+欧美中文字幕| 成人网在线免费视频| 欧美成人午夜电影| 成人av电影在线观看| 17c精品麻豆一区二区免费| 亚洲激情综合| 亚洲gay无套男同| 欧美一级夜夜爽|