Java+Oracle应用开发的几个常见问题解答
问题一:如保加载JDBC驱动程序: 正常我们加载驱动程序有三个途径: 1)Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法 2)使用系
问题一:如保加载JDBC驱动程序:
正常我们加载驱动程序有三个途径:
1)Class.forName(String)这想当于classLoader一个String指定的类,在装载时把该驱动程序的静态内容都初始化,其实这时驱动程序类调用了DriverManager.registerDriver(driver)方法
2)使用系统属性:System.getProperty().load(new FileInputStream("属性文件"));
在属性文件中指定jdbc.driver=drivername 这样的好处是可以同时加载多个JDBC,换数据库时不用访问Java源代码,只是修改属性文件
3)直接registerDriver(driver)这种方法最可靠,可以在任何环境下使用。
1)方法简单,但MS的JVM不能正确初始化。比如使用IE时在APPLET中就不能使用,应该用3)的方法。但3)方法在灵活性方面不如2),可以根据环境综合考虑。
问题二:大对象存储
一般来说,大对象存储是把文件存到数据库中,当然也可以内存中的超大字符串。对于象图片这样的文件当然是用二进制存储,这里有很多误区,网络上的教程99%都是行不通的,连SUN自己的文档都一直错误,虽然错误很小。按说二进制文件应该存为BLOB类型,但JBDC2并不能直接对BLOB存入二进制文件,假如你这样做,会得到一个IO而不是SQL异常,为此花了我近两个小时才弄清楚。 假如要把一个二制文件存入Oracle,用标准的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存储,你就必须用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的对象再向里写: rs = stmt.executeQuery("select detail from tb_file where 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();
}
同样读取数据你并不能象LONG ROW那样 InputStream in = rs.getBinaryInputStream("detail");
而要 Blob blob = rs.getBlob("detail");
in = blob.getBinaryStream();
问题三:可滚动结果集
ORACLE 明确说明不支持结果集滚动,那么我们用JDBC得到一个可滚动的结果集就是同JDBC自己支持的,就是说结果集要在内存中高度缓存,很多很多的开发者都错误地认为是数据库支持的。只是他们没有真正查询大量行,,假如真的查询大量行的话肯定是死定了!!!!!!对于超大量行的数据,情愿返回到它的笨方法也不要使用可滚动结果集。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









雲深科技は10月9日、四足歩行ロボット「Jueying X30」を発表、産業用途向けの新世代の産業レベル製品として、発電所、工場、パイプギャラリー検査、緊急救助、火災調査、将来の科学研究などを対象としている。など。多分野のコア需要により、世界をリードする業界能力がもたらされます。独自の統合センシング機能、変化する環境下での迅速かつ安定した障害物の通過、中空の工業用階段の上り下り、全天候型自律検査日を実現するアジアをリードする独自の統合センシング機能夜間や夜間など、より多くのシーンの制約を打ち破り、予期せぬ作業にも迅速に対応し、アジアで初めて四足歩行ロボットの動作温度範囲を-20℃~55℃に拡張し、適用範囲を大幅に拡大し、独自のリアルタイム監視システムと緊急対応システムを備えており、よりスマートな運用を保証し、安全かつ効率的です。工業情報化省を含む17の部門は、「機械」を発行しました。

時代の発展に伴い、農業分野も現代の科学技術を活用して高度化・変革を始めており、時代の要請に応じたスマート農業が登場しています。 Java は、優れたパフォーマンスと強力な移植性を備えたコンピュータ プログラミング言語として高い人気と応用価値を持ち、スマート農業アプリケーション開発の重要なソリューションの 1 つとなっています。この記事は、Java 言語によるスマート農業アプリケーションの開発プロセス、アプリケーション シナリオ、利点を紹介することを目的としています。 1. Java 言語によるスマート農業アプリケーションの開発プロセス スマート農業アプリケーションの開発プロセスは、要件分析、

Java言語は現在最も人気のあるプログラミング言語の1つとして、さまざまなアプリケーション開発分野で広く使用されています。中でも音声認識アプリケーションは近年注目を集めている分野であり、特にスマートホーム、スマートカスタマーサービス、音声アシスタントなどの分野において、音声認識アプリケーションは欠かせないものとなっています。この記事では、Java 言語を使用して音声認識アプリケーションを開発する方法を読者に紹介します。 1. Java 音声認識技術の分類 Java 音声認識技術は、Java 言語でカプセル化された技術と Java 言語でカプセル化された技術の 2 種類に分けられます。

スマートシティは絶えず発展しており、都市建設の新たな方向性と目標となっています。スマートシティは、人工知能、モノのインターネット技術、その他の手段を使用して、都市の情報化、インテリジェンス、持続可能な開発を実現します。 Java 言語は、スマート シティ アプリケーション開発の主要ツールの 1 つです。 1. スマートシティアプリケーション開発における Java 言語の役割 Java 言語は、主流のプログラミング言語として、クロスプラットフォーム性と移植性に優れており、さまざまなオペレーティング システムやハードウェア プラットフォームに適用できます。 Java言語はオブジェクト指向プログラミングをサポートします

Java 言語によるビデオ処理アプリケーション開発入門 インターネットとデジタル技術の継続的な発展に伴い、ビデオは人々の生活に欠かせないものになりました。短いビデオ アプリケーションであれ、オンライン教育プラットフォームであれ、ビデオは重要な位置を占めています。中でも映像処理アプリケーションは注目のトピックの一つとなっている。この記事では、Java言語によるビデオ処理アプリケーションの開発について紹介します。 1. Java 言語のビデオ処理クラス ライブラリ: クロスプラットフォーム プログラミング言語としての Java 言語の威力は、次のような豊富なクラス ライブラリにあります。

Pandas は Python 用のデータ分析ツールであり、データのクリーニング、処理、分析に特に適しています。データ分析プロセスでは、Txt ファイルなどのさまざまな形式のデータ ファイルを読み取る必要があることがよくあります。ただし、特定の操作中にいくつかの問題が発生する場合があります。この記事では、pandas での txt ファイルの読み取りに関するよくある質問への回答と、対応するコード例を紹介します。質問 1: txt ファイルを読み取るにはどうすればよいですか? txt ファイルは、pandas の read_csv() 関数を使用して読み取ることができます。それの訳は

近年、PHP プログラミングのテンプレート エンジンは PHP 開発の重要な部分となっており、プログラマーによるページの開発と管理が容易になりました。この記事では、PHP プログラミングにおける一般的なテンプレート エンジンを紹介します。 SmartySmarty は一般的に使用される PHP テンプレート エンジンで、キャッシュされたテンプレート、プラグイン モジュール、カスタム関数などの一連の機能をサポートしています。 Smarty の構文は非常に柔軟で、PHP 変数と HTML タグを組み合わせる問題を解決できるため、PHP 言語はテンプレート化されたデザインにより適しています。しかも、Sさん

現在のクラウド コンピューティングと Web アプリケーションの時代では、軽量アプリケーションを完成させる必要がある企業がますます増えているため、Google Cloud Functions と PHP を使用して軽量アプリケーションの開発とデプロイメントを実現するのは非常に適しています。 Google Cloud Functions は、イベント トリガーとサーバーレス コンピューティングに基づいたメソッドであり、ユーザーはサービスの管理やサーバーの保守を必要とせず、これらのイベントを処理するためのコードを記述するだけで済みます。さらに、PHP は広く使用されている人気のあるプログラミング言語です。
