﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-氧气中毒 - J2EE-随笔分类-数据处理</title><link>http://www.blogjava.net/kobe09/category/12167.html</link><description>爪吐奕奕征途</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:17:38 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:17:38 GMT</pubDate><ttl>60</ttl><item><title>XML配置文件的读取处理 </title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52754.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52754.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52754.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52754.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52754.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java和XML是黄金组合,网上已经有很多文章介绍,XML作为电子商务中数据交换,已经有其不可替代的作用,但是在平时系统开发中,我们不一定都用到数据交换,是不是无法使用XML了? 当然不是,现在已经有一个新趋势,java程序的配置文件都开始使用XML格式,以前是使用类似windows的INI格式.(Java中也有Propertiesy这样的类专门处理这样的属性配置文件).使用XML作为Java的配...&nbsp;&nbsp;<a href='http://www.blogjava.net/kobe09/archive/2006/06/14/52754.html'>阅读全文</a><img src ="http://www.blogjava.net/kobe09/aggbug/52754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:17 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java连接Access数据库的代码 </title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52746.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52746.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52746.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52746.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52746.html</trackback:ping><description><![CDATA[
		<div>闲来无事，整理了一下java代码。算做个复习笔记了。</div>
		<div> </div>
		<div>
				<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
						<img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #0000ff">import</span>
						<span style="COLOR: #000000"> java.sql.</span>
						<span style="COLOR: #000000">*</span>
						<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_40_714_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_714_Open_Text.style.display='none'; Codehighlighter1_40_714_Closed_Image.style.display='inline'; Codehighlighter1_40_714_Closed_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_40_714_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_714_Closed_Text.style.display='none'; Codehighlighter1_40_714_Open_Image.style.display='inline'; Codehighlighter1_40_714_Open_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000"> dbaccess</span>
						<span id="Codehighlighter1_40_714_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.cnblogs.com/Images/dot.gif" />
						</span>
						<span id="Codehighlighter1_40_714_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_98_712_Open_Image" onclick="this.style.display='none'; Codehighlighter1_98_712_Open_Text.style.display='none'; Codehighlighter1_98_712_Closed_Image.style.display='inline'; Codehighlighter1_98_712_Closed_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_98_712_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_98_712_Closed_Text.style.display='none'; Codehighlighter1_98_712_Open_Image.style.display='inline'; Codehighlighter1_98_712_Open_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">static</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">void</span>
								<span style="COLOR: #000000"> main(String args[]) </span>
								<span style="COLOR: #0000ff">throws</span>
								<span style="COLOR: #000000"> Exception</span>
								<span id="Codehighlighter1_98_712_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.cnblogs.com/Images/dot.gif" />
								</span>
								<span id="Codehighlighter1_98_712_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  Class.forName(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">sun.jdbc.odbc.JdbcOdbcDriver</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  String dburl </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Mobile.mdb</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">;</span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">此为NO-DSN方式<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">String dburl ="jdbc:odbc:odbcName";</span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">此为ODBC连接方式</span>
										<span style="COLOR: #008000">
												<br />
												<img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">  Connection conn</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000">DriverManager.getConnection(dburl);<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  Statement stmt</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000">conn.createStatement();<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  ResultSet rs</span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000">stmt.executeQuery(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">select Top 20 * from MobileSection</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">号段\t地区\t类型\t省份\t区号</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img id="Codehighlighter1_531_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_531_663_Open_Text.style.display='none'; Codehighlighter1_531_663_Closed_Image.style.display='inline'; Codehighlighter1_531_663_Closed_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_531_663_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_531_663_Closed_Text.style.display='none'; Codehighlighter1_531_663_Open_Image.style.display='inline'; Codehighlighter1_531_663_Open_Text.style.display='inline';" src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
										<span style="COLOR: #0000ff">while</span>
										<span style="COLOR: #000000">(rs.next())</span>
										<span id="Codehighlighter1_531_663_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.cnblogs.com/Images/dot.gif" />
										</span>
										<span id="Codehighlighter1_531_663_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />   System.out.println(rs.getString(</span>
												<span style="COLOR: #000000">1</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">\t</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">rs.getString(</span>
												<span style="COLOR: #000000">2</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">\t</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">rs.getString(</span>
												<span style="COLOR: #000000">3</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">\t</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">rs.getString(</span>
												<span style="COLOR: #000000">4</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">\t</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">rs.getString(</span>
												<span style="COLOR: #000000">5</span>
												<span style="COLOR: #000000">));<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  rs.close();<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  stmt.close();<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />  conn.close();<br /><img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://kobe09.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
						</span>
				</div>
		</div>
		<div> </div>
		<div>运行结果：</div>
		<div>---------- Run Java ----------<br />号段 地区 类型 省份 区号<br />1300566 茂名 广东联通130卡 广东 0668<br />1300567 茂名 广东联通007卡 广东 0668<br />1300568 茂名 广东联通007卡 广东 0668<br />1300569 珠海 广东联通130卡 广东 0756<br />1300570 惠州 广东联通130卡 广东 0752<br />1300571 惠州 广东联通130卡 广东 0752<br />1300572 惠州 广东联通130卡 广东 0752<br />1300573 惠州 广东联通130卡 广东 0752<br />1300574 惠州 广东联通130卡 广东 0752<br />1300575 惠州 广东联通130卡 广东 0752<br />1300576 珠海 广东联通130卡 广东 0756<br />1300577 珠海 广东联通130卡 广东 0756<br />1300578 珠海 广东联通130卡 广东 0756<br />1300579 珠海 广东联通130卡 广东 0756</div>
<img src ="http://www.blogjava.net/kobe09/aggbug/52746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:10 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接数据库经验技巧集萃 </title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52744.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52744.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52744.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52744.html</trackback:ping><description><![CDATA[Java数据库连接（JDBC）由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API，使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同，所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。<br /><br />　　<b>一、连接各种数据库方式速查表</b><br /><br />　　下面罗列了各种数据库使用JDBC连接的方式，可以作为一个手册使用。 <br /><br />　　1、Oracle8/8i/9i数据库（thin模式） <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <br />String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID <br />String user="test"; <br />String password="test"; <br />Connection conn= DriverManager.getConnection(url,user,password); </td></tr></tbody></table><br />　　2、DB2数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); <br />String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 <br />String user="admin"; <br />String password=""; <br />Connection conn= DriverManager.getConnection(url,user,password); </td></tr></tbody></table><br />　　3、Sql Server7.0/2000数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); <br />String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; <br />//mydb为数据库 <br />String user="sa"; <br />String password=""; <br />Connection conn= DriverManager.getConnection(url,user,password); </td></tr></tbody></table><br />　　4、Sybase数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("com.sybase.jdbc.SybDriver").newInstance(); <br />String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名 <br />Properties sysProps = System.getProperties(); <br />SysProps.put("user","userid"); <br />SysProps.put("password","user_password"); <br />Connection conn= DriverManager.getConnection(url, SysProps); </td></tr></tbody></table><br />　　5、Informix数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("com.informix.jdbc.IfxDriver").newInstance(); <br />String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; <br />user=testuser;password=testpassword"; //myDB为数据库名 <br />Connection conn= DriverManager.getConnection(url); </td></tr></tbody></table><br />　　6、MySQL数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("org.gjt.mm.mysql.Driver").newInstance(); <br />String url ="jdbc:mysql://localhost/myDB?user=soft&amp;password=soft1234&amp;useUnicode=true&amp;characterEncoding=8859_1" <br />//myDB为数据库名 <br />Connection conn= DriverManager.getConnection(url); </td></tr></tbody></table><br />　　7、PostgreSQL数据库 <br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("org.postgresql.Driver").newInstance(); <br />String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 <br />String user="myuser"; <br />String password="mypassword"; <br />Connection conn= DriverManager.getConnection(url,user,password); </td></tr></tbody></table><br />　　8、access数据库直连用ODBC的<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;<br />String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");<br />Connection conn = DriverManager.getConnection(url,"","");<br />Statement stmtNew=conn.createStatement() ;</td></tr></tbody></table><br />　　<b>二、JDBC连接MySql方式</b><br /><br />　　下面是使用JDBC连接MySql的一个小的教程 <br /><br />　　1、查找驱动程序<br /><br />　　MySQL目前提供的java驱动程序为Connection/J，可以从MySQL官方网站下载，并找到mysql-connector-java-3.0.15-ga-bin.jar文件，此驱动程序为纯java驱动程序，不需做其他配置。<br /><br />　　2、动态指定classpath<br /><br />　　如果需要执行时动态指定classpath，就在执行时采用－cp方式。否则将上面的.jar文件加入到classpath环境变量中。<br /><br />　　3、加载驱动程序<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>try{<br />　Class.forName(com.mysql.jdbc.Driver);<br />　System.out.println(Success loading Mysql Driver!);<br />}catch(Exception e)<br />{<br />　System.out.println(Error loading Mysql Driver!);<br />　e.printStackTrace();<br />}</td></tr></tbody></table><br />　　4、设置连接的url<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>jdbc：mysql：//localhost/databasename[?pa=va][＆pa=va]</td></tr></tbody></table><br /><span class="f14">　　<b>三、以下列出了在使用JDBC来连接Oracle数据库时可以使用的一些技巧</b><br /><br />　　1、在客户端软件开发中使用Thin驱动程序<br /><br />　　在开发Java软件方面，Oracle的数据库提供了四种类型的驱动程序，二种用于应用软件、applets、servlets等客户端软件，另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中，我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。为了获得最高的性能，Oracle建议在客户端软件的开发中使用OCI驱动程序，这似乎是正确的。但我建议使用Thin驱动程序，因为通过多次测试发现，在通常情况下，Thin驱动程序的性能都超过了OCI驱动程序。<br /><br />　　2、关闭自动提交功能，提高系统性能<br /><br />　　在第一次建立与数据库的连接时，在缺省情况下，连接是在自动提交模式下的。为了获得更好的性能，可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能，如下所示：<br /><br />　　conn.setAutoCommit(false);<br /><br />　　值得注意的是，一旦关闭了自动提交功能，我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。<br /><br />　　3、在动态SQL或有时间限制的命令中使用Statement对象<br /><br />　　在执行SQL命令时，我们有二种选择：可以使用PreparedStatement对象，也可以使用Statement对象。无论多少次地使用同一个SQL命令，PreparedStatement都只对它解析和编译一次。当使用Statement对象时，每次执行一个SQL命令时，都会对它进行解析和编译。这可能会使你认为，使用PreparedStatement对象比使用Statement对象的速度更快。然而，我进行的测试表明，在客户端软件中，情况并非如此。因此，在有时间限制的SQL操作中，除非成批地处理SQL命令，我们应当考虑使用Statement对象。<br /><br />　　此外，使用Statement对象也使得编写动态SQL命令更加简单，因为我们可以将字符串连接在一起，建立一个有效的SQL命令。因此，我认为，Statement对象可以使动态SQL命令的创建和执行变得更加简单。<br /><br />　　4、利用helper函数对动态SQL命令进行格式化<br /><br />　　在创建使用Statement对象执行的动态SQL命令时，我们需要处理一些格式化方面的问题。例如，如果我们想创建一个将名字O'Reilly插入表中的SQL命令，则必须使用二个相连的“''”号替换O'Reilly中的“'”号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法，然后在连接字符串心服用公式表达一个SQL命令时，使用创建的helper方法。与此类似的是，我们可以让helper方法接受一个Date型的值，然后让它输出基于Oracle的to_date()函数的字符串表达式。<br /><br />　　5、利用PreparedStatement对象提高数据库的总体效率<br /><br />　　在使用PreparedStatement对象执行SQL命令时，命令被数据库进行解析和编译，然后被放到命令缓冲区。然后，每当执行同一个PreparedStatement对象时，它就会被再解析一次，但不会被再次编译。在缓冲区中可以发现预编译的命令，并且可以重新使用。在有大量用户的企业级应用软件中，经常会重复执行相同的SQL命令，使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务，我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。<br /><br />　　6、在成批处理重复的插入或更新操作中使用PreparedStatement对象<br /><br />　　如果成批地处理插入和更新操作，就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理，只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理，或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制，可以以如下所示的方式调用setExecuteBatch()：<br /><br /><table bordercolor="#ffcc66" width="90%" align="center" bgcolor="#dadacf" border="1"><tbody><tr><td>PreparedStatement pstmt3D null;<br />try {<br />　((OraclePreparedStatement)pstmt).setExecuteBatch(30);<br />　...<br />　pstmt.executeUpdate();<br />} </td></tr></tbody></table><br />　　调用setExecuteBatch()时指定的值是一个上限，当达到该值时，就会自动地引发SQL命令执行，标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。<br /><br />　　7、使用Oracle locator方法插入、更新大对象（LOB）<br /><br />　　Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理，尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值，也不支持利用setCharacterStream()方法设置CLOB的值。只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用PreparedStatement对象插入或更新LOB，但需要使用locator才能获取LOB的值。由于存在这二个问题，因此，我建议使用locator的方法来插入、更新或获取LOB的值。<br /><br />　　8、使用SQL92语法调用存储过程<br /><br />　　在调用存储过程时，我们可以使用SQL92或Oracle PL/SQL，由于使用Oracle PL/SQL并没有什么实际的好处，而且会给以后维护你的应用程序的开发人员带来麻烦，因此，我建议在调用存储过程时使用SQL92。<br /><br />　　9、使用Object SQL将对象模式转移到数据库中<br /><br />　　既然可以将Oracle的数据库作为一种面向对象的数据库来使用，就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象，将它们的属性映射到关系表中，然后在这些bean中添加方法。尽管这样作在Java中没有什么问题，但由于操作都是在数据库之外进行的，因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle的面向对象的技术，可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作，然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式，不但Java应用程序可以使用应用软件的对象模式，其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。<br /><br />　　10、利用SQL完成数据库内的操作<br /><br />　　我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求，而不是使用Java等过程化的编程语言。<br /><br />　　如果编程人员要在一个表中查找许多行，结果中的每个行都会查找其他表中的数据，最后，编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务，何必要让数据在网上流来流去的？我建议用户认真学习如何最大限度地发挥SQL的功能。</span><img src ="http://www.blogjava.net/kobe09/aggbug/52744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:08 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JAVA中连接Oracle数据库(例子) </title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52735.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52735.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52735.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52735.html</trackback:ping><description><![CDATA[
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_0_45_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_45_Open_Text.style.display='none'; Codehighlighter1_0_45_Closed_Image.style.display='inline'; Codehighlighter1_0_45_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_0_45_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_45_Closed_Text.style.display='none'; Codehighlighter1_0_45_Open_Image.style.display='inline'; Codehighlighter1_0_45_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span id="Codehighlighter1_0_45_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span>
				<span id="Codehighlighter1_0_45_Open_Text">
						<span style="COLOR: #008000">/*</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * 创建日期 2006-6-13<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> *<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * java连接oracle数据库<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">package</span>
				<span style="COLOR: #000000"> person.fane.test;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> java.sql.</span>
				<span style="COLOR: #000000">*</span>
				<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_93_188_Open_Image" onclick="this.style.display='none'; Codehighlighter1_93_188_Open_Text.style.display='none'; Codehighlighter1_93_188_Closed_Image.style.display='inline'; Codehighlighter1_93_188_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_93_188_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_93_188_Closed_Text.style.display='none'; Codehighlighter1_93_188_Open_Image.style.display='inline'; Codehighlighter1_93_188_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span id="Codehighlighter1_93_188_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
				<span id="Codehighlighter1_93_188_Open_Text">
						<span style="COLOR: #008000">/**</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * A JDBC test application for Oracle<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@author</span>
						<span style="COLOR: #008000"> Fane<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@version</span>
						<span style="COLOR: #008000"> 1.0.0<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span>
						<span style="COLOR: #808080">@since</span>
						<span style="COLOR: #008000"> JDK1.4<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span>
						<span style="COLOR: #008000">*/</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img id="Codehighlighter1_214_3147_Open_Image" onclick="this.style.display='none'; Codehighlighter1_214_3147_Open_Text.style.display='none'; Codehighlighter1_214_3147_Closed_Image.style.display='inline'; Codehighlighter1_214_3147_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
						<img id="Codehighlighter1_214_3147_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_214_3147_Closed_Text.style.display='none'; Codehighlighter1_214_3147_Open_Image.style.display='inline'; Codehighlighter1_214_3147_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				</span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> OracleTest </span>
				<span id="Codehighlighter1_214_3147_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_214_3147_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">final</span>
						<span style="COLOR: #000000"> String oracleDriverName </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">oracle.jdbc.driver.OracleDriver</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #008000">//</span>
						<span style="COLOR: #008000">以下使用的Test就是Oracle里的表空间</span>
						<span style="COLOR: #008000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: #000000">    </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">final</span>
						<span style="COLOR: #000000"> String oracleUrlToConnect </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">jdbc:oracle:thin:@192.168.0.36:1521:Test</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">; <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> Connection myConnection </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">null</span>
						<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_467_516_Open_Image" onclick="this.style.display='none'; Codehighlighter1_467_516_Open_Text.style.display='none'; Codehighlighter1_467_516_Closed_Image.style.display='inline'; Codehighlighter1_467_516_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_467_516_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_467_516_Closed_Text.style.display='none'; Codehighlighter1_467_516_Open_Image.style.display='inline'; Codehighlighter1_467_516_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_467_516_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_467_516_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * To load the jdbc driver<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> OracleTest()<br /><img id="Codehighlighter1_546_813_Open_Image" onclick="this.style.display='none'; Codehighlighter1_546_813_Open_Text.style.display='none'; Codehighlighter1_546_813_Closed_Image.style.display='inline'; Codehighlighter1_546_813_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_546_813_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_546_813_Closed_Text.style.display='none'; Codehighlighter1_546_813_Open_Image.style.display='inline'; Codehighlighter1_546_813_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_546_813_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_546_813_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">try</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_568_623_Open_Image" onclick="this.style.display='none'; Codehighlighter1_568_623_Open_Text.style.display='none'; Codehighlighter1_568_623_Closed_Image.style.display='inline'; Codehighlighter1_568_623_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_568_623_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_568_623_Closed_Text.style.display='none'; Codehighlighter1_568_623_Open_Image.style.display='inline'; Codehighlighter1_568_623_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_568_623_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_568_623_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            Class.forName(oracleDriverName);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #0000ff">catch</span>
								<span style="COLOR: #000000">(ClassNotFoundException ex)<br /><img id="Codehighlighter1_665_807_Open_Image" onclick="this.style.display='none'; Codehighlighter1_665_807_Open_Text.style.display='none'; Codehighlighter1_665_807_Closed_Image.style.display='inline'; Codehighlighter1_665_807_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_665_807_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_665_807_Closed_Text.style.display='none'; Codehighlighter1_665_807_Open_Image.style.display='inline'; Codehighlighter1_665_807_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_665_807_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_665_807_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(getErrorMessage(ex,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">The Driver loaded error,please contact to your Software Designer!</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">).toString());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> StringBuffer getErrorMessage(Exception ex,String alarmMessage)<br /><img id="Codehighlighter1_898_1098_Open_Image" onclick="this.style.display='none'; Codehighlighter1_898_1098_Open_Text.style.display='none'; Codehighlighter1_898_1098_Closed_Image.style.display='inline'; Codehighlighter1_898_1098_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_898_1098_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_898_1098_Closed_Text.style.display='none'; Codehighlighter1_898_1098_Open_Image.style.display='inline'; Codehighlighter1_898_1098_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_898_1098_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_898_1098_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        StringBuffer errorStringBuffer </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> StringBuffer();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        errorStringBuffer.append(alarmMessage);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        errorStringBuffer.append(ex.getMessage());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> errorStringBuffer;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_1109_1174_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1109_1174_Open_Text.style.display='none'; Codehighlighter1_1109_1174_Closed_Image.style.display='inline'; Codehighlighter1_1109_1174_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1109_1174_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1109_1174_Closed_Text.style.display='none'; Codehighlighter1_1109_1174_Open_Image.style.display='inline'; Codehighlighter1_1109_1174_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_1109_1174_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_1109_1174_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * getConnection method <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@return</span>
								<span style="COLOR: #008000"> Connection<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> Connection getConnection()<br /><img id="Codehighlighter1_1218_1585_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1218_1585_Open_Text.style.display='none'; Codehighlighter1_1218_1585_Closed_Image.style.display='inline'; Codehighlighter1_1218_1585_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1218_1585_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1218_1585_Closed_Text.style.display='none'; Codehighlighter1_1218_1585_Open_Image.style.display='inline'; Codehighlighter1_1218_1585_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_1218_1585_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_1218_1585_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">try</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_1240_1357_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1240_1357_Open_Text.style.display='none'; Codehighlighter1_1240_1357_Closed_Image.style.display='inline'; Codehighlighter1_1240_1357_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1240_1357_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1240_1357_Closed_Text.style.display='none'; Codehighlighter1_1240_1357_Open_Image.style.display='inline'; Codehighlighter1_1240_1357_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_1240_1357_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1240_1357_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">this</span>
										<span style="COLOR: #000000">.myConnection </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> DriverManager.getConnection(oracleUrlToConnect,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Fane</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">201</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #0000ff">catch</span>
								<span style="COLOR: #000000">(Exception ex)<br /><img id="Codehighlighter1_1386_1527_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1386_1527_Open_Text.style.display='none'; Codehighlighter1_1386_1527_Closed_Image.style.display='inline'; Codehighlighter1_1386_1527_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1386_1527_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1386_1527_Closed_Text.style.display='none'; Codehighlighter1_1386_1527_Open_Image.style.display='inline'; Codehighlighter1_1386_1527_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_1386_1527_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1386_1527_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(getErrorMessage(ex,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Can not get connection,please contact to your Software Designer!</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">).toString());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.myConnection;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_1596_1625_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1596_1625_Open_Text.style.display='none'; Codehighlighter1_1596_1625_Closed_Image.style.display='inline'; Codehighlighter1_1596_1625_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1596_1625_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1596_1625_Closed_Text.style.display='none'; Codehighlighter1_1596_1625_Open_Image.style.display='inline'; Codehighlighter1_1596_1625_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_1596_1625_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_1596_1625_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: #808080">@param</span>
								<span style="COLOR: #008000"> args<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_1670_3144_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1670_3144_Open_Text.style.display='none'; Codehighlighter1_1670_3144_Closed_Image.style.display='inline'; Codehighlighter1_1670_3144_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1670_3144_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1670_3144_Closed_Text.style.display='none'; Codehighlighter1_1670_3144_Open_Image.style.display='inline'; Codehighlighter1_1670_3144_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> main(String[] args) </span>
						<span id="Codehighlighter1_1670_3144_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_1670_3144_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        OracleTest myOracleTest </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> OracleTest();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">try</span>
								<span style="COLOR: #000000">
										<br />
										<img id="Codehighlighter1_1744_2959_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1744_2959_Open_Text.style.display='none'; Codehighlighter1_1744_2959_Closed_Image.style.display='inline'; Codehighlighter1_1744_2959_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1744_2959_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1744_2959_Closed_Text.style.display='none'; Codehighlighter1_1744_2959_Open_Image.style.display='inline'; Codehighlighter1_1744_2959_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_1744_2959_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1744_2959_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            Connection myConnection </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> myOracleTest.getConnection();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Now begin to excute<img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" /><img src="http://www.blogjava.net/images/dot.gif" />.</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            PreparedStatement myPreparedStatement </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> myConnection.prepareStatement(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">select area_id, area_name,ip_address,tel,area_type,pc_id from c_area_info</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">myPreparedStatement.setInt(1,2);</span>
										<span style="COLOR: #008000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										</span>
										<span style="COLOR: #000000">            ResultSet myResultSet </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> myPreparedStatement.executeQuery();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            StringBuffer myStringBuffer </span>
										<span style="COLOR: #000000">=</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">new</span>
										<span style="COLOR: #000000"> StringBuffer();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">while</span>
										<span style="COLOR: #000000">(myResultSet.next())<br /><img id="Codehighlighter1_2296_2788_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2296_2788_Open_Text.style.display='none'; Codehighlighter1_2296_2788_Closed_Image.style.display='inline'; Codehighlighter1_2296_2788_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2296_2788_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2296_2788_Closed_Text.style.display='none'; Codehighlighter1_2296_2788_Open_Image.style.display='inline'; Codehighlighter1_2296_2788_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span id="Codehighlighter1_2296_2788_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_2296_2788_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getInt(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">area_id</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">  </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getString(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">area_name</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">  </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getString(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">ip_address</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">  </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getString(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">tel</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">  </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getInt(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">area_type</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">  </span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                myStringBuffer.append(myResultSet.getInt(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">pc_id</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">)</span>
												<span style="COLOR: #000000">+</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">\n</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(myStringBuffer.toString());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #008000">//</span>
										<span style="COLOR: #008000">System.out.println(new String(myStringBuffer.toString().getBytes("ISO-8859-1"),"GBK"));</span>
										<span style="COLOR: #008000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />
										</span>
										<span style="COLOR: #000000">        }</span>
								</span>
								<span style="COLOR: #0000ff">catch</span>
								<span style="COLOR: #000000">(Exception ex)<br /><img id="Codehighlighter1_2988_3137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2988_3137_Open_Text.style.display='none'; Codehighlighter1_2988_3137_Closed_Image.style.display='inline'; Codehighlighter1_2988_3137_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2988_3137_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2988_3137_Closed_Text.style.display='none'; Codehighlighter1_2988_3137_Open_Image.style.display='inline'; Codehighlighter1_2988_3137_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_2988_3137_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_2988_3137_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(myOracleTest.getErrorMessage(ex,</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Application error,please contact to your Software Designer!</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">).toString());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/kobe09/aggbug/52735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:03 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用SQL语句创建存储过程</title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52734.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52734.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52734.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52734.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52734.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52734.html</trackback:ping><description><![CDATA[本节例示一个不带参数的简单存储过程。多数存储过程的功能比本例复杂多了，但这里主要说明存储过程的一些基本要点。如前面所述，不同DBMS定义存储过程的语法是不同的。例如，有些DBMS使用begin . . . end或其他关键字指明存储过程定义的开始和结束。在有些DBMS中，下面的SQL语句可创建一个存储过程： 
<p></p><blockquote><pre>create procedure SHOW_SUPPLIERS
as
select SUPPLIERS.SUP_NAME, COFFEES.COF_NAME
from SUPPLIERS, COFFEES
where SUPPLIERS.SUP_ID = COFFEES.SUP_ID
order by SUP_NAME
</pre></blockquote><p class="Body"><a name="pgfId=1001774"></a>下面的代码将SQL语句放到一个字符串中，然后赋给变量createProcedure以备后用：</p><blockquote><pre>String createProcedure = "create procedure SHOW_SUPPLIERS " +
			 "as " +
			 "select SUPPLIERS.SUP_NAME, COFFEES.COF_NAME " +
			 "from SUPPLIERS, COFFEES " +
			 "where SUPPLIERS.SUP_ID = COFFEES.SUP_ID " +
			 "order by SUP_NAME";
</pre></blockquote><p class="Body"><a name="pgfId=1005758"></a>下面的代码段使用Connection对象con来创建Statement对象，用于把创建存储过程的SQL语句发送给数据库：</p><blockquote><pre>Statement stmt = con.createStatement();
stmt.executeUpdate(createProcedure);
</pre></blockquote><p class="Body"><a name="pgfId=1005756"></a>存储过程SHOW_SUPPLIERS将作为一个可调用的数据库对象在数据库中编译并存储，调用时就像调用其他方法一样。 </p><p><a name="pgfId=1001702"></a><b>从JDBC调用存储过程</b></p><p class="Body"><a name="pgfId=1005412"></a>JDBC允许在用Java编写的程序中调用存储过程。第一步是创建一个CallableStatement对象。就像Statement和PreparedStatement对象一样，利用一个打开的Connection对象即可完成创建。CallableStatement对象包含了存储过程的一个调用；但它不包含存储过程本身。下面的第一行代码使用连接con创建了存储过程SHOW_SUPPLIERS的一个调用。花括号内的那部分就是存储过程的转义语法。当驱动程序碰到“{call SHOW_SUPPLIERS}”时，它将把这个转义语法转换成数据库使用的本地SQL，以调用名为SHOW_SUPPLIERS的存储过程。 </p><blockquote><pre class="Code"><a name="pgfId=1001817"><font face="Helvetica"></font></a>
CallableStatement cs = con.prepareCall("{call SHOW_SUPPLIERS}");
ResultSet rs = cs.executeQuery();
</pre></blockquote><p class="Body"><a name="pgfId=1011565"></a>执行后结果集rs的内容如下：</p><blockquote><pre>SUP_NAME			COF_NAME
----------------		-----------------------
Acme, Inc.			Colombian
Acme, Inc.			Colombian_Decaf
Superior Coffee			French_Roast
Superior Coffee			French_Roast_Decaf
The High Ground			Espresso
</pre></blockquote><p class="Body"><a name="pgfId=1003273"></a>注意，用于执行cs的方法是executeQuery，因为cs调用的存储过程包含一个查询，执行后产生一个结果集。如果存储过程包含一条更新或一条DLL语句，那就要使用executeUpdate方法。但有时一个存储过程包含多条SQL语句，因而它产生的不只是一个结果集、不只是一个更新计数或产生一些结果集和更新计数的组合。这样就有多个结果集，这时就应该使用execute方法来执行CallableStatement。 </p><p class="Body"><a name="pgfId=1005963"></a>CallableStatement类是PreparedStatement的子类，因此CallableStatement对象可与PreparedStatement对象一样带有输入参数。此外，CallableStatement对象还可带输出参数或输入/输出参数。INOUT参数和execute方法很少使用。要获取更详细信息，请参考“使用Java进行JDBC数据库访问”。</p><img src ="http://www.blogjava.net/kobe09/aggbug/52734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:01 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过JDBC连接Oracle数据库的十大技巧</title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52731.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52731.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52731.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52731.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52731.html</trackback:ping><description><![CDATA[Java数据库连接（JDBC）API是一系列能够让Java编程人员访问数据库的接口，各个开发商的接口并不完全相同。在使用多年的Oracle公司的JDBC后，我积累了许多技巧，这些技巧能够使我们更好地发挥系统的性能和<span id="tech_art_center"><!-- Copyright 1999-2000 ThruPort Technologies http://www.thruport.com --><!-- end dynamic banner insert --></span>实现更多的功能。<br /><br />1、在客户端软件开发中使用Thin驱动程序<br /><br />在开发Java软件方面，Oracle的数据库提供了四种类型的驱动程序，二种用于应用软件、applets、servlets等客户端软件，另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中，我们可以选择OCI驱动程序或Thin驱动程序。<br /><br />OCI驱动程序利用Java本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。为了获得最高的性能，Oracle建议在客户端软件的开发中使用OCI驱动程序，这似乎是正确的。<br /><br />但我建议使用Thin驱动程序，因为通过多次测试发现，在通常情况下，Thin驱动程序的性能都超过了OCI驱动程序。<br /><br />2、关闭自动提交功能，提高系统性能<br /><br />在第一次建立与数据库的连接时，在缺省情况下，连接是在自动提交模式下的。为了获得更好的性能，可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能，如下所示：<br /><br /><center><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code>conn.setAutoCommit(false);</ccid_code></pre></td></tr></tbody></table></ccid_nobr></center><br /><br />值得注意的是，一旦关闭了自动提交功能，我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。 3、在动态SQL或有时间限制的命令中使用Statement对象 在执行SQL命令时，我们有二种选择：可以使用PreparedStatement对象，也可以使用Statement对象。无论多少次地使用同一个SQL命令，PreparedStatement都只对它解析和编译一次。当使用Statement对象时，每次执行一个SQL命令时，都会对它进行解析和编译。 <br /><br />这可能会使你认为，使用PreparedStatement对象比使用Statement对象的速度更快。然而，我进行的测试表明，在客户端软件中，情况并非如此。因此，在有时间限制的SQL操作中，除非成批地处理SQL命令，我们应当考虑使用Statement对象。 此外，使用Statement对象也使得编写动态SQL命令更加简单，因为我们可以将字符串连接在一起，建立一个有效的SQL命令。因此，我认为，Statement对象可以使动态SQL命令的创建和执行变得更加简单。 <br /><br />4、利用helper函数对动态SQL命令进行格式化 在创建使用Statement对象执行的动态SQL命令时，我们需要处理一些格式化方面的问题。例如，如果我们想创建一个将名字O'Reilly插入表中的SQL命令，则必须使用二个相连的“''”号替换O'Reilly中的“'”号。 <br /><br />完成这些工作的最好的方法是创建一个完成替换操作的helper方法，然后在连接字符串心服用公式表达一个SQL命令时，使用创建的helper方法。与此类似的是，我们可以让helper方法接受一个Date型的值，然后让它输出基于Oracle的to_date()函数的字符串表达式。 5、利用PreparedStatement对象提高数据库的总体效率 在使用PreparedStatement对象执行SQL命令时，命令被数据库进行解析和编译，然后被放到命令缓冲区。然后，每当执行同一个PreparedStatement对象时，它就会被再解析一次，但不会被再次编译。 <br /><br />在缓冲区中可以发现预编译的命令，并且可以重新使用。在有大量用户的企业级应用软件中，经常会重复执行相同的SQL命令，使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。 <br /><br />如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务，我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。 <br /><br />6、在成批处理重复的插入或更新操作中使用PreparedStatement对象 如果成批地处理插入和更新操作，就能够显著地减少它们所需要的时间。Oracle提供的Statement和CallableStatement并不真正地支持批处理，只有PreparedStatement对象才真正地支持批处理。 <br /><br />我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理，或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。 <br /><br />要使用Oracle专有的批处理机制，可以以如下所示的方式调用setExecuteBatch()： <br /><br /><center><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"><pre><ccid_code>PreparedStatement pstmt3D null;
try 
{
((OraclePreparedStatement)
pstmt).setExecuteBatch(30);
... pstmt.executeUpdate();
}</ccid_code></pre></td></tr></tbody></table></ccid_nobr></center><br /><br />调用setExecuteBatch()时指定的值是一个上限，当达到该值时，就会自动地引发SQL命令执行，标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。 <br /><br />7、使用Oracle locator方法插入、更新大对象（LOB） Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理，尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值，也不支持利用setCharacterStream()方法设置CLOB的值。 <br /><br />只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用PreparedStatement对象插入或更新LOB，但需要使用locator才能获取LOB的值。由于存在这二个问题，因此，我建议使用locator的方法来插入、更新或获取LOB的值。 8、使用SQL92语法调用存储过程 <br /><br />在调用存储过程时，我们可以使用SQL92或Oracle PL/SQL，由于使用Oracle PL/SQL并没有什么实际的好处，而且会给以后维护你的应用程序的开发人员带来麻烦，因此，我建议在调用存储过程时使用SQL92。 <br /><br />9、使用Object SQL将对象模式转移到数据库中 既然可以将Oracle的数据库作为一种面向对象的数据库来使用，就可以考虑将应用程序中的面向对象模式转到数据库中。 <br /><br />目前的方法是创建Java bean作为伪装的数据库对象，将它们的属性映射到关系表中，然后在这些bean中添加方法。尽管这样作在Java中没有什么问题，但由于操作都是在数据库之外进行的，因此其他访问数据库的应用软件无法利用对象模式。 <br /><br />如果利用Oracle的面向对象的技术，可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作，然后使用JPublisher等工具生成自己的Java bean类。 <br /><br />如果使用这种方式，不但Java应用程序可以使用应用软件的对象模式，其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。 10、利用SQL完成数据库内的操作 我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求，而不是使用Java等过程化的编程语言。 如果编程人员要在一个表中查找许多行，结果中的每个行都会查找其他表中的数据，最后，编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。 <br /><br />当能够在单一的SQL命令中完成任务，何必要让数据在网上流来流去的？我建议用户认真学习如何最大限度地发挥SQL的功能。<img src ="http://www.blogjava.net/kobe09/aggbug/52731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:00 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Java编写oracle存储过程</title><link>http://www.blogjava.net/kobe09/archive/2006/06/14/52732.html</link><dc:creator>氧气中毒</dc:creator><author>氧气中毒</author><pubDate>Wed, 14 Jun 2006 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/kobe09/archive/2006/06/14/52732.html</guid><wfw:comment>http://www.blogjava.net/kobe09/comments/52732.html</wfw:comment><comments>http://www.blogjava.net/kobe09/archive/2006/06/14/52732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kobe09/comments/commentRss/52732.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kobe09/services/trackbacks/52732.html</trackback:ping><description><![CDATA[通常我们都使用pl/sql为oracle编写存储过程，从oracle 8开始我们可以有另一种选择：Java。8.0开始，oracle自带一个jvm，内置对java的支持，任何java能做的事情你都可以放到oracle里面来做，你甚至可以在里面操作db2。这让oracle具备了极其巨大的扩展能力，只要你愿意，完全可以开发一个trigger，让它在适当的时候给管理员的msn发送一条即时消息。<br /><br />    好消息说完了，现在是坏消息：由于pl/sql是过程化的语言，它基本上不具备多态的概念，供oracle使用的java方法必须申明为static，所以在oracle中你无法使用java的动态特性，比如接口、反射等。不过这并不妨碍你用java做爱做的事。<br /><br />    我们以一个简单的hello world为例，我想任何一个有经验的java程序员都能够通过这个例子，派生出其他希奇古怪的应用，有好的创意记得要与我共享，我的msn是<a href="mailto:chenzhihuang@yahoo.com.cn">c<font color="#000000">henzhihuang</font>@yahoo.com.cn</a><br /><br />    首先是创建一个java类，你可以用jbuilder/eclipse来编写，也可以直接在oracle的控制台里面创建。前者不多说，看看后一种方式。<br /><br />    启动sql plus，执行如下命令：<br /><br /><div class="codeStyle"><ol><li></li><li>create or replace and compile java source named <font color="#ff33ff">"hello_sp"</font> as 
</li><li><i><font color="#339900">/**</font></i></li><li><i><font color="#339900"> *创建oracle存储过程的java类</font></i></li><li><i><font color="#339900"> *@author zhchen</font></i></li><li><i><font color="#339900">**/</font></i></li><li><b><font color="#0000ff">package</font></b> org.bromon.oracle; 
</li><li><b><font color="#0000ff">public</font></b> <b><font color="#0000ff">class</font></b> Hello 
</li><li>{ 
</li><li>  <b><font color="#0000ff">public</font></b> <b><font color="#0000ff">static</font></b> <b><font class="classLink"><u>String</u></font></b> say(<b><font class="classLink"><u>String</u></font></b> name) 
</li><li>  { 
</li><li>    <b><font color="#0000ff">return</font></b> <font color="#ff33ff">"你好,"</font>+name; 
</li><li>  } 
</li><li>} </li></ol></div><br />Java以创建。<br /><br />然后在oracle中把这个类导入成为一个函数，执行命令：<br /><div class="codeStyle"><ol><li></li><li>create or replace function hello_sp(name varchar2) <b><font color="#0000ff">return</font></b> varchar2 
</li><li>as language java name  
</li><li>'org.bromon.oracle.Hello.say(java.lang.<b><font class="classLink"><u>String</u></font></b>) <b><font color="#0000ff">return</font></b> java.lang.<b><font class="classLink"><u>String</u></font></b>'; </li></ol></div><br /><br />函数已创建<br /><br />现在可以调用该函数，执行：<br /><div class="codeStyle"><ol><li>select hello('zhchen') from dual; </li></ol></div><br /><br />返回结果：你好,zhchen<br /><br />有一个需要注意的问题是，假如我们的java方法是没有参数的，比如：<br /><div class="codeStyle"><ol><li></li><li><b><font color="#0000ff">public</font></b> <b><font color="#0000ff">static</font></b> <b><font class="classLink"><u>String</u></font></b> say() 
</li><li>  { 
</li><li>    <b><font color="#0000ff">return</font></b> <font color="#ff33ff">"你好”;</font></li><li>  } </li></ol></div><br />那么在创建函数的时候，函数名不应该有扩号：hello_sp<br />否则会报告函数有编译错误。<br /><br />如果你的java类是在IDE里面编写的，那么只需要在oracle中加载编译过的class文件即可，方法是：<br /><br />启动enterprise manage console，在“方案”下找到“源类型”，右击”java类”，选择”加载java“，选择对应的class文件即可。<br /><img src ="http://www.blogjava.net/kobe09/aggbug/52732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kobe09/" target="_blank">氧气中毒</a> 2006-06-14 15:00 <a href="http://www.blogjava.net/kobe09/archive/2006/06/14/52732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>