﻿<?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-edog-随笔分类-数据库</title><link>http://www.blogjava.net/edog/category/32528.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 25 Jun 2008 02:53:40 GMT</lastBuildDate><pubDate>Wed, 25 Jun 2008 02:53:40 GMT</pubDate><ttl>60</ttl><item><title>使用 JDBC 驱动程序连接SQL Server</title><link>http://www.blogjava.net/edog/archive/2008/06/25/210423.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Tue, 24 Jun 2008 16:05:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/25/210423.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210423.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/25/210423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210423.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210423.html</trackback:ping><description><![CDATA[<br />
编译环境：<br />
NetBeans IDE 6.1; JDK 6 (JDK 1.6.0_06)<br />
<br />
1、安装Microsoft SQL Server 2000，据说要企业版才行。<br />
2、下载Microsoft SQL Server 2000 Service Pack 4，并安装更新。安装完毕版本显示如下：<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&amp;DisplayLang=zh-cn">下载：http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&amp;DisplayLang=zh-cn</a><br />
<div align="center" twffan="done"><img alt="" src="http://www.blogjava.net/images/blogjava_net/edog/32535/o_sql.jpg" border="0" twffan="done" /></div>
<br />
<br />
3、下载Microsoft SQL Server 2005 JDBC 驱动程序，并解压，得到一个sqljdbc.jar文件。<br />
<a href="/Files/edog/sqljdbc.rar">本地下载</a>&nbsp;(下载后把.rar改为.jar)<br />
<br />
4、新建一个JAVA项目，并把sqljdbc.jar加到项目库中：<br />
选中项目--&gt;右键--&gt;属性--&gt;类别--&gt;库--&gt;运行--&gt;添加JAR/文件夹<br />
<div align="center" twffan="done"><img alt="" src="http://www.blogjava.net/images/blogjava_net/edog/32535/o_lib.jpg" border="0" twffan="done" /></div>
<br />
或者直接把sqljdbc.jar复制到类似如下的目录中：D:\Program Files\Java\jdk1.6.0_06\jre\lib\ext<br />
<br />
5、编写程序，如下，查询Northwind中Employees表中的员工姓名：<br />
&nbsp;
<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" twffan="done"><span style="color: #0000ff" twffan="done">package</span><span style="color: #000000" twffan="done">&nbsp;db4mssql;<br />
</span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;java.sql.</span><span style="color: #000000" twffan="done">*</span><span style="color: #000000" twffan="done">;<br />
</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">class</span><span style="color: #000000" twffan="done">&nbsp;Main&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">static</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">void</span><span style="color: #000000" twffan="done">&nbsp;main(String&nbsp;args[])<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;sql;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">声明Statement对象</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">&nbsp;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">com.microsoft.sqlserver.jdbc.SQLServerDriver</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">(ClassNotFoundException&nbsp;e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000" twffan="done">""</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">return</span><span style="color: #000000" twffan="done">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">jdbc:sqlserver://localhost;database=Northwind;user=sa;password=sa</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;DriverManager.getConnection(url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">con.createStatement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">sql.executeQuery(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Select&nbsp;FirstName,&nbsp;LastName&nbsp;FROM&nbsp;Employees</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">int</span><span style="color: #000000" twffan="done">&nbsp;i</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">1</span><span style="color: #000000" twffan="done">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">while</span><span style="color: #000000" twffan="done">(rs.next())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(i</span><span style="color: #000000" twffan="done">++</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">:&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;rs.getString(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">FirstName</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">)&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;rs.getString(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">LastName</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">));&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">输出信息</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">(SQLException&nbsp;el)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000" twffan="done">""</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">el);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
程序运行结果如下：<br />
1: Nancy Davolio<br />
2: Andrew Fuller<br />
3: Janet Leverling<br />
4: Margaret Peacock<br />
5: Steven Buchanan<br />
6: Michael Suyama<br />
7: Robert King<br />
8: Laura Callahan<br />
9: Anne Dodsworth 
<img src ="http://www.blogjava.net/edog/aggbug/210423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-25 00:05 <a href="http://www.blogjava.net/edog/archive/2008/06/25/210423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NetBeans 多语言界面</title><link>http://www.blogjava.net/edog/archive/2008/06/24/210239.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Tue, 24 Jun 2008 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/24/210239.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210239.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/24/210239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210239.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210239.html</trackback:ping><description><![CDATA[<p><font style="background-color: #f4f4f4">安装好 NetBeans 多国语言版本之后，表面上看起来似乎只有简体中文，但其实只要稍加改动快捷方式的启动参数，不用额外安装任何文件，就可以轻松切换到英文、日文等界面。</font></p>
<p><font style="background-color: #f4f4f4">英文：<br />
"C:\Program Files\NetBeans 6.1\bin\netbeans.exe" --locale en:US</font></p>
<p><font style="background-color: #f4f4f4">日文：<br />
"C:\Program Files\NetBeans 6.1\bin\netbeans.exe" --locale ja:JA</font></p>
<img src ="http://www.blogjava.net/edog/aggbug/210239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-24 10:15 <a href="http://www.blogjava.net/edog/archive/2008/06/24/210239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用ODBC连接SQL Server</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210175.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210175.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210175.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210175.html</trackback:ping><description><![CDATA[<br />
本程序需要建立一个ODBC，名为&#8220;Northwind&#8221;的系统DSN，连接到SQL Server的Northwind数据库，<br />
并查询Employees表中所有员工的姓名，程序如下：<br />
<br />
<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" twffan="done"><span style="color: #0000ff" twffan="done">package</span><span style="color: #000000" twffan="done">&nbsp;db2mssql;<br />
</span><span style="color: #0000ff" twffan="done">import</span><span style="color: #000000" twffan="done">&nbsp;java.sql.</span><span style="color: #000000" twffan="done">*</span><span style="color: #000000" twffan="done">;<br />
</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">class</span><span style="color: #000000" twffan="done">&nbsp;Main&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">public</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">static</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #0000ff" twffan="done">void</span><span style="color: #000000" twffan="done">&nbsp;main(String&nbsp;args[])<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;sql;&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">声明Statement对象</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">sun.jdbc.odbc.JdbcOdbcDriver</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">(ClassNotFoundException&nbsp;e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000" twffan="done">""</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">try</span><span style="color: #000000" twffan="done"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">DriverManager.getConnection(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">jdbc:odbc:Northwind</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">,</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">sa</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">,</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">sa</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">con.createStatement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">sql.executeQuery(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Select&nbsp;FirstName,&nbsp;LastName&nbsp;FROM&nbsp;Employees</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">int</span><span style="color: #000000" twffan="done">&nbsp;i</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">0</span><span style="color: #000000" twffan="done">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">while</span><span style="color: #000000" twffan="done">(rs.next())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;FirstName</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">rs.getString(</span><span style="color: #000000" twffan="done">1</span><span style="color: #000000" twffan="done">);&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">获得数据库第一列</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;LastName</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">rs.getString(</span><span style="color: #000000" twffan="done">2</span><span style="color: #000000" twffan="done">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">Name</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;i</span><span style="color: #000000" twffan="done">++</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">:&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;FirstName&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">&nbsp;LastName);&nbsp;</span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">输出信息</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #000000" twffan="done">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">catch</span><span style="color: #000000" twffan="done">(SQLException&nbsp;el){}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
 <img src ="http://www.blogjava.net/edog/aggbug/210175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:36 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一个JDBC程序</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210172.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:26:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210172.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210172.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210172.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210172.html</trackback:ping><description><![CDATA[&nbsp;
<p>转自：<a href="http://www.javaresearch.org/article/9581.htm">http://www.javaresearch.org/article/9581.htm</a> </p>
<p style="margin-bottom: 12pt"><span style="font-family: 宋体">本篇通过一个简单的数据库应用的例子告诉你如何编写你的第一个</span>JDBC<span style="font-family: 宋体">程序。</span></p>
<h3>一、JDBC简介</h3>
<p style="margin-bottom: 12pt"><br />
<span style="font-family: 宋体">　　相信在微软平台上开发过应用程序的朋友一定对</span>ODBC<span style="font-family: 宋体">不会陌生，</span>ODBC<span style="font-family: 宋体">是一种用</span>C<span style="font-family: 宋体">语言开发的</span>API<span style="font-family: 宋体">，通过它，你可以访问不同数据库平台上的数据</span>,<span style="font-family: 宋体">目前</span>ODBC<span style="font-family: 宋体">已经成为</span>Windows<span style="font-family: 宋体">环境下访问数据库的事实上的标准，也是一种基本方法。但是，由于</span>ODBC<span style="font-family: 宋体">的设计过于复杂，造成它很难对外扩展。</span>JDBC<span style="font-family: 宋体">是</span>SUN<span style="font-family: 宋体">开发的一种用来进行数据库访问的</span>API<span style="font-family: 宋体">，它借鉴了</span>ODBC<span style="font-family: 宋体">的的某些特点而没有它的复杂性，给数据库开发带来了极大的便利性。同时，</span>JDBC<span style="font-family: 宋体">还提供了对现存数据库</span>API<span style="font-family: 宋体">（比如</span>ODBC<span style="font-family: 宋体">）的调用，使得</span>Java<span style="font-family: 宋体">应用程序可以访问任何支持</span>ODBC<span style="font-family: 宋体">的数据库管理系统。</span></p>
<h3>二、开始</h3>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">下面这个简单的程序演示了如何在</span>java<span style="font-family: 宋体">中连接、打开和查询一个数据库。本例中以</span>mysql<span style="font-family: 宋体">为数据库平台。</span><br />
<br />
<br />
</p>
<ol type="1">
    <li style="tab-stops: list 36.0pt"><strong><span style="color: blue">import</span></strong>&nbsp;java.sql.*;&nbsp;;&nbsp; </li>
    <li style="tab-stops: list 36.0pt">&nbsp;</li>
    <li style="tab-stops: list 36.0pt"><strong><span style="color: blue">public</span></strong>&nbsp;<strong><span style="color: blue">class</strong>&nbsp;JDBCDemo{&nbsp; </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">public</strong>&nbsp;<strong><span style="color: blue">static</span></strong>&nbsp;<strong><span style="color: blue">void</span></strong>&nbsp;main(<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target="_blank">String</a></strong>[]&nbsp;args)&nbsp;{&nbsp; </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target="_blank">String</a></strong>&nbsp;driver=<span style="color: #ff33ff">"com.mysql.jdbc.Driver";&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//</span></em></span><em><span style="color: #339900; font-family: 宋体">驱动程序</span></em></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/String.java.html" target="_blank">String</a></strong>&nbsp;url=<span style="color: #ff33ff">"localhost/jive";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//</span></em></span><em><span style="color: #339900; font-family: 宋体">数据库服务器地址及数据库名</span></em></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/sql/Connection.java.html" target="_blank">Connection</a></strong>&nbsp;con=<strong><span style="color: blue">null</strong>; </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/sql/Statement.java.html" target="_blank">Statement</a></strong>&nbsp;st; </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/sql/ResultSet.java.html" target="_blank">ResultSet</a></strong>&nbsp;rs; </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">try</strong>&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//(1)</span></em> </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/Class.java.html" target="_blank">Class</a></strong>.forName(driver).newInstance();&nbsp; </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<strong><span style="color: blue">catch</strong>&nbsp;(<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/Exception.java.html" target="_blank">Exception</a></strong>&nbsp;ex)&nbsp;{&nbsp; </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//&nbsp;</em></span><em><span style="color: #339900; font-family: 宋体">在这进行错误处理</span></em></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">try</strong>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//(2)</span></em> </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con=<strong><a href="http://www.javaresearch.org/source/jdk142/java/sql/DriverManager.java.html" target="_blank">DriverManager</a></strong>.getConnection(url,<span style="color: #ff33ff">"test",<span style="color: #ff33ff">"test"</span>); </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st=con.createStatement(); </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs=st.executeQuery(<span style="color: #ff33ff">"Select&nbsp;*&nbsp;from&nbsp;jiveForums"); </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">while</strong>(rs.next()){&nbsp;<em><span style="color: #339900">//</span></em></span><em><span style="color: #339900; font-family: 宋体">查询结果处理</span></em></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target="_blank">System</a></strong>.out.println(<span style="color: #ff33ff">"ID="+rs.getString(1)); </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/System.java.html" target="_blank">System</a></strong>.out.println(<span style="color: #ff33ff">"Name="+rs.getString(2)); </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<strong><span style="color: blue">catch</strong>(<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/Exception.java.html" target="_blank">Exception</a></strong>&nbsp;e){ </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<strong><span style="color: blue">finally</strong>{ </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">if</strong>(con==<strong><span style="color: blue">null</span></strong>)<strong><span style="color: blue">return</span></strong>; </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: blue">try</strong>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em><span style="color: #339900">//(3)</span></em> </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.close(); </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<strong><span style="color: blue">catch</strong>(<strong><a href="http://www.javaresearch.org/source/jdk142/java/lang/Exception.java.html" target="_blank">Exception</a></strong>&nbsp;e){ </span></li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;} </li>
    <li style="tab-stops: list 36.0pt">&nbsp;&nbsp;&nbsp;&nbsp;} </li>
    <li style="tab-stops: list 36.0pt">} </li>
</ol>
<p style="margin-bottom: 12pt"><br />
<span style="font-family: 宋体">程序的第一句导入我们需要用到的</span>JDBC&nbsp;API<span style="font-family: 宋体">，为了方便，我以</span>*<span style="font-family: 宋体">来导入在</span>sql<span style="font-family: 宋体">中定义的所有包，你也可以只指定你用到的包，比如：</span>java.sql.Connection<span style="font-family: 宋体">等。</span><br />
<span style="font-family: 宋体">在主函数中定义的两个字符串分别是驱动程序名和数据库服务器地址及数据库名。我在这里使用的是</span>mysql<span style="font-family: 宋体">数据库，所以我用的是</span>mysql<span style="font-family: 宋体">驱动程序</span>,<span style="font-family: 宋体">不同的数据库用不同的驱动程序，如果你用的不是</span>mysql<span style="font-family: 宋体">，请替换此行。</span><br />
<span style="font-family: 宋体">服务器地址是你安装数据库的主机的</span>IP<span style="font-family: 宋体">，如果在本机，你也可以用</span>"localhost"<span style="font-family: 宋体">来连接。数据库名是你已经在数据库系统中建立过的，这里是</span>test.<span style="font-family: 宋体">接着在标识为</span>(1)<span style="font-family: 宋体">的</span>try<span style="font-family: 宋体">块中装载驱动程序。这一步是为驱动程序来装载自己，然后让驱动程序管理器来进行管理，在</span>(2)<span style="font-family: 宋体">的</span>try<span style="font-family: 宋体">块中，从驱动程序管理器中取得一个连接，第一个引数已经说过，第二个引数是数据库中的用户名，最后一个是口令。接着创建一个</span>Statement<span style="font-family: 宋体">对象来执行查询，查询结果将返回一个记录集，在这里就是</span>rs<span style="font-family: 宋体">。在接下来的</span>while<span style="font-family: 宋体">循环中来处理查询结果，在这只是简单的打印出来。</span><br />
<span style="font-family: 宋体">在</span>finally<span style="font-family: 宋体">块中，将执行连接的关闭，如果在前面没有正确得到一个连接，将直接返回。</span><br />
<span style="font-family: 宋体">好了，修改这个程序以适应你的平台，然后执行。怎么样连接数据库就这么简单。</span></p>
<h3>三、注意事项</h3>
<p><br />
&nbsp;&nbsp;&nbsp;1&nbsp;<span style="font-family: 宋体">在上面这个程序中，请注意不要写错驱动程序名，如果出现找不到驱动程序的错误，请检查你的驱动程序是否在类搜索路径即</span>CLASSPATH<span style="font-family: 宋体">中，</span><br />
<span style="font-family: 宋体">一般你下载的驱动程序可能是以</span>.jar<span style="font-family: 宋体">为扩展名，那么你要把此文件包含在</span>CLASSPATH<span style="font-family: 宋体">中，比如我用的</span>mysql.jar<span style="font-family: 宋体">，那么在</span>claspath<span style="font-family: 宋体">中有：</span>c:"driver"mysql.jar<span style="font-family: 宋体">。</span><br />
&nbsp;&nbsp;&nbsp;2&nbsp;<span style="font-family: 宋体">数据库服务器</span>IP<span style="font-family: 宋体">要填准确，如果在本机，请直接使用</span>localhost<span style="font-family: 宋体">，用户名和口令是你用来操作数据库的用户和口令，不要认为是操作系统的用户名和口令。</span><br />
&nbsp;&nbsp;&nbsp;3&nbsp;<span style="font-family: 宋体">最后要注意，用完一个连接后要及时关闭，养成好的习惯。</span></p>
<img src ="http://www.blogjava.net/edog/aggbug/210172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:26 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>漫谈Java数据库存取技术（转）</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210171.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:25:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210171.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210171.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210171.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210171.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210171.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;
<p>&nbsp;IT<span style="font-family: 宋体">技术日新月异，新技术的出现令人目不暇接，似乎每一天都在产生着新名词。不过归根结底</span>IT<span style="font-family: 宋体">所要实现的价值不外乎数据收集，然后再以客户希望的形式展示给客户而已。因此数据存取技术也就成了一个永恒的话题。而在</span>Java<span style="font-family: 宋体">这个开放的世界里，数据库存取技术是五花八门，种类繁多。我们也来侃侃</span>Java<span style="font-family: 宋体">世界里主流的数据库存取技术。</span><br />
<br />
<span style="font-family: 宋体">首先列出英雄榜</span><br />
<br />
1<span style="font-family: 宋体">．</span>&nbsp;&nbsp;&nbsp;&nbsp;JDBC<span style="font-family: 宋体">直接访问数据库</span><br />
2<span style="font-family: 宋体">．</span>&nbsp;&nbsp;&nbsp;&nbsp;EJB&nbsp;&nbsp;entity&nbsp;bean.<br />
3<span style="font-family: 宋体">．</span>&nbsp;&nbsp;&nbsp;&nbsp;JDO<span style="font-family: 宋体">技术。</span><br />
4<span style="font-family: 宋体">．</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">第三方</span>O/R<span style="font-family: 宋体">工具，如目前大红大紫的</span>Hibernate,&nbsp;<span style="font-family: 宋体">其它如</span>Castor,&nbsp;Toplink.<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">先说说这个历史最为悠久的</span>JDBC<span style="font-family: 宋体">吧。从</span>Java<span style="font-family: 宋体">诞生的那天起，这位仁兄就开始登上历史舞台了。</span>Java<span style="font-family: 宋体">能有今天这么风光，</span>JDBC<span style="font-family: 宋体">可以说是功不可末。一路走来，如今已是</span>JDBC3.0<span style="font-family: 宋体">了。在没有</span>JDBC<span style="font-family: 宋体">的时候，访问数据库那是八仙过海，各显神通，各家数据库厂商都有自己的一套</span>API,&nbsp;<span style="font-family: 宋体">苦就苦了开发人员了。换了个数据库，那个程序要改是面目全非。</span>JDBC<span style="font-family: 宋体">规范的出台，向世界宣告从此有了访问关系数据库的标准通用接口了。</span>JDBC<span style="font-family: 宋体">标准获得了几乎所有数据库厂商的支持，好像还真难找到这么一个数据库，它是没有</span>JDBC&nbsp;<span style="font-family: 宋体">支持的。</span>JDBC<span style="font-family: 宋体">规范一经发布，获得了空前成功，很快成为</span>java<span style="font-family: 宋体">访问数据库的标准。</span>JDBC<span style="font-family: 宋体">的成功在于它的规范统一标准的接口，只需要掌握标准的</span>SQL<span style="font-family: 宋体">语言就可以访问各种不同的数据库了。这种数据库间的可移植性和</span>Java<span style="font-family: 宋体">一直高喊的口号</span>Compile&nbsp;&nbsp;Once,&nbsp;Run&nbsp;everywhere<span style="font-family: 宋体">遥相呼应。</span>JDBC<span style="font-family: 宋体">今天还是</span>java<span style="font-family: 宋体">访问数据库的基石，</span>CMP,&nbsp;JDO,&nbsp;Hibernate&nbsp;<span style="font-family: 宋体">说到底只是更好的封装了</span>JDBC,&nbsp;<span style="font-family: 宋体">提供了更为上层的更为强大的接口而已。然后说说</span>JDBC<span style="font-family: 宋体">直接访问数据库的方式来实现</span>java&nbsp;<span style="font-family: 宋体">持久性。</span><br />
<span style="font-family: 宋体">这种方式相对于</span>CMP<span style="font-family: 宋体">来说比较简单直接，特别是对于小型应用十分方便。比如，我要写一个简单的留言版程序，就没有必要</span>session&nbsp;bean&nbsp;,entity&nbsp;bean&nbsp;<span style="font-family: 宋体">，又是</span>home<span style="font-family: 宋体">接口又是远程接口，一层层调了吧。直接</span>JDBC,<span style="font-family: 宋体">写</span>SQL<span style="font-family: 宋体">语句了事。和其它持久化技术相比，</span>JDBC<span style="font-family: 宋体">直接访问数据库的方式需要程序员操心的事情多了一些，你得自己关心</span>transaction,&nbsp;<span style="font-family: 宋体">自己关心连接池，你得写大量的</span>get&nbsp;set<span style="font-family: 宋体">方法，把</span>SQL&nbsp;select<span style="font-family: 宋体">出来的值一个一个塞到你的</span>java&nbsp;object<span style="font-family: 宋体">中，或者把</span>java&nbsp;object<span style="font-family: 宋体">的值一个一个给取出来，用</span>SQL&nbsp;insert&nbsp;<span style="font-family: 宋体">到数据库，完全手动进行</span>O/R&nbsp;mapping<span style="font-family: 宋体">。为了克服这些缺点，</span>CMP,&nbsp;JDO<span style="font-family: 宋体">等等开始陆续登上历史舞台。</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">下面</span>EJB<span style="font-family: 宋体">登场，</span>EJB<span style="font-family: 宋体">作为</span>Sun&nbsp;J2EE<span style="font-family: 宋体">体系的核心部分，是</span>Sun&nbsp;<span style="font-family: 宋体">所力推的企业级开发的首选，而</span>EJB&nbsp;entity&nbsp;<span style="font-family: 宋体">目前仍然是</span>Sun&nbsp;j2EE<span style="font-family: 宋体">白皮书所最为推荐的</span>java&nbsp;<span style="font-family: 宋体">持久化技术。</span>Entity&nbsp;Bean<span style="font-family: 宋体">作为</span>EJB<span style="font-family: 宋体">规范的一部分，也是</span>EJB<span style="font-family: 宋体">规范里面最备受争议的一种技术，它伴随着</span>EJB<span style="font-family: 宋体">规范走过了风风雨雨几个春秋。目前</span>EJB3.0<span style="font-family: 宋体">规范草案已经出台，</span><a href="http://jcp.org/en/jsr/detail?id=220">http://jcp.org/en/jsr/detail?id=220</a><span style="font-family: 宋体">。</span><br />
&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">从家庭出生来看，</span>EJB<span style="font-family: 宋体">可谓是根正苗红，规范处于</span>&nbsp;JCP<span style="font-family: 宋体">管理之下，拥有超级豪华的专家组成员，</span>&nbsp;Sun,&nbsp;IBM,&nbsp;Oracle,&nbsp;Borland,&nbsp;Bea,&nbsp;SAP,&nbsp;&nbsp;Jboss,&nbsp;&nbsp;Apache<span style="font-family: 宋体">软件基金组织等等。单从这一点来看，选它作为企业级开发，技术支持应该就无需担心了。当然向</span>IBM,&nbsp;Bea<span style="font-family: 宋体">等寻求项目咨询价格当然也不菲。从提供功能上来看，</span>EJB&nbsp;entity<span style="font-family: 宋体">经历了</span>EJB1.0,&nbsp;EJB1.1,&nbsp;EJB2.0,&nbsp;<span style="font-family: 宋体">功能也越来越完善了。包括了完善的事务支持，</span>EJBQL<span style="font-family: 宋体">查询语言，透明的分布式访问等等。不过作为一个重量级技术，</span>entity&nbsp;bean<span style="font-family: 宋体">的性能不太尽人意，这成为它备受争议的一个焦点，不知在</span>3.0<span style="font-family: 宋体">以后这个状况会不会有所改进。再有一个，它功能虽然强大，可是对于易用性来说，实在不敢恭维，写一个最简单的</span>bean<span style="font-family: 宋体">，</span>&nbsp;<span style="font-family: 宋体">也非得</span>home<span style="font-family: 宋体">接口，远程接口，要再加上</span>2.0<span style="font-family: 宋体">以后加入的本地接口，这么林林总总一大堆，足以让</span>Java<span style="font-family: 宋体">初学者望而却步了。但是这一点在一段时间内竟然也成了</span>EJB&nbsp;<span style="font-family: 宋体">功能强大，技术高深的</span>&#8220;<span style="font-family: 宋体">佐证</span>&#8221;<span style="font-family: 宋体">。记得多年以前刚毕业那阵，</span>EJB<span style="font-family: 宋体">应用在国内还比较少，公司里也没有人研究</span>Why&nbsp;EJB<span style="font-family: 宋体">这个问题，反正凡是用</span>EJB<span style="font-family: 宋体">的项目就是牛项目，用</span>EJB<span style="font-family: 宋体">的人就是牛人，分到</span>EJB<span style="font-family: 宋体">项目组的兄弟们走路都是抬头挺胸的，说话都比我等还在</span>JDBC,&nbsp;SQL<span style="font-family: 宋体">的人要高两嗓门。</span>EJB&nbsp;<span style="font-family: 宋体">技术目前盘踞着企业级应用的大部分江山，老大地位短时间内很难捍动。</span><br />
<br />
&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">下面新生代代表</span>JDO<span style="font-family: 宋体">隆重登场，</span>JDO<span style="font-family: 宋体">绝对属于超年轻选手，</span>&nbsp;JDO1.0<span style="font-family: 宋体">也不过是</span>2002<span style="font-family: 宋体">四月份才发布。</span>2003<span style="font-family: 宋体">五月份出台</span>1.0.1,&nbsp;<span style="font-family: 宋体">目前最新</span>2.0<span style="font-family: 宋体">草案已经发布，</span><a href="http://www.jcp.org/en/jsr/detail?id=243">http://www.jcp.org/en/jsr/detail?id=243</a><span style="font-family: 宋体">。就为这</span>2.0<span style="font-family: 宋体">，江湖上展开的讨论可以说是</span>&#8220;<span style="font-family: 宋体">血雨腥风</span>&#8221;<span style="font-family: 宋体">，</span>&nbsp;<span style="font-family: 宋体">两大兵团，</span>&nbsp;JDO<span style="font-family: 宋体">兵团和</span>EJB<span style="font-family: 宋体">兵团争得是不可开交。有兴趣的不妨到这里瞧瞧，</span><a href="http://theserverside.com/news/thread.tss?thread_id=25695">http://theserverside.com/news/thread.tss?thread_id=25695</a><span style="font-family: 宋体">，里面也不乏重量级人物。单从这一点来看，它能对</span>EJB<span style="font-family: 宋体">产生这么大的冲击，足以说明了这个初生牛犊确有过人之处。</span>JDO<span style="font-family: 宋体">的诞生给</span>java<span style="font-family: 宋体">数据持久性带来很多新特性，特别是它弥补了</span>EJB<span style="font-family: 宋体">对</span>OO<span style="font-family: 宋体">编程的先天不足，</span>JDO<span style="font-family: 宋体">提供了完全的</span>OO<span style="font-family: 宋体">支持，继承，多态。</span>JDO<span style="font-family: 宋体">和</span>&nbsp;EJB<span style="font-family: 宋体">比属于轻量级工具，无需容器支持。不像</span>EJB,&nbsp;<span style="font-family: 宋体">要用你就非得整一个</span>Weblogic,&nbsp;webSphere<span style="font-family: 宋体">之类的。</span><br />
JDO<span style="font-family: 宋体">的简单易用是最为人们所称道的，不需要你写大量无用的接口，不需要你继承什么特殊的类，唯一所要做的就是对你的</span>class<span style="font-family: 宋体">文件做一下</span>enhance<span style="font-family: 宋体">。用了</span>JDO,<span style="font-family: 宋体">可以说我们的</span>java<span style="font-family: 宋体">程序这下真正</span>OO<span style="font-family: 宋体">了，我们无需再理会数据库里面有啥表格了，存取都是以</span>java&nbsp;object<span style="font-family: 宋体">为对象了，所有数据库表格都是自动生成的。这一点可以说也是一个革命了。在此之前，项目设计阶段，</span>Database&nbsp;Schema<span style="font-family: 宋体">设计可以说是个重头戏。而现在用</span>JDO<span style="font-family: 宋体">开发，完全不需要数据库设计了。那你的</span>Database&nbsp;Schema<span style="font-family: 宋体">呢？</span>&nbsp;<span style="font-family: 宋体">就是你的</span>Class&nbsp;<span style="font-family: 宋体">啊，</span>JDO<span style="font-family: 宋体">会根据你的</span>Class<span style="font-family: 宋体">自动生成相应的数据库表格。</span>&nbsp;<span style="font-family: 宋体">一个字</span>&nbsp;<span style="font-family: 宋体">，</span>&nbsp;<span style="font-family: 宋体">爽！从数据库可移植性来看，</span>JDO<span style="font-family: 宋体">也是优势明显，就我使用过的</span>Kodo&nbsp;<span style="font-family: 宋体">和</span>&nbsp;Genie<span style="font-family: 宋体">来看，几个简单应用程序换数据库时候除了换一个</span>JDBC&nbsp;driver,&nbsp;<span style="font-family: 宋体">换一下数据库</span>URL,<span style="font-family: 宋体">无需对程序做任何改动。</span>&nbsp;<span style="font-family: 宋体">这一点对</span>EJB&nbsp;<span style="font-family: 宋体">来说又是处于劣势。从家庭出身来看，</span>JDO<span style="font-family: 宋体">也是出生名门，从一开始就处于</span>JCP<span style="font-family: 宋体">管理之下。从企业级支持来看，它可以很好的和</span>Session&nbsp;bean<span style="font-family: 宋体">协同工作，对于企业级开发，</span>&nbsp;Session&nbsp;bean&nbsp;+&nbsp;JDO<span style="font-family: 宋体">的方式是</span>Session&nbsp;bean&nbsp;+&nbsp;entity<span style="font-family: 宋体">方式的一个强有力竞争对手。虽然有这么多优点，不过它的发展之路也非一帆风顺，这不，今年五月份</span>JDO2.0<span style="font-family: 宋体">的投票，</span>IBM,&nbsp;Oracle,&nbsp;Bea&nbsp;<span style="font-family: 宋体">三大巨头同时投了反对票。不过稍微一想，就可以理解，这并不是</span>JDO<span style="font-family: 宋体">本身技术有什么重大缺陷，而是</span>JDO<span style="font-family: 宋体">动到这些巨头们的奶酪了。</span>Bea,&nbsp;IBM<span style="font-family: 宋体">做着业界最为著名应用服务器，</span>weblogic<span style="font-family: 宋体">和</span>WebSphere,<span style="font-family: 宋体">在</span>EJB<span style="font-family: 宋体">上面是投下了血本了，他们不能眼睁睁看着</span>JDO<span style="font-family: 宋体">来蚕食</span>EJB<span style="font-family: 宋体">市场。而</span>Oracle,&nbsp;<span style="font-family: 宋体">还在卖着它自己的</span>O/R<span style="font-family: 宋体">工具</span>Toplink,&nbsp;<span style="font-family: 宋体">看着</span>JDO<span style="font-family: 宋体">日渐强大，他能不着急么。不过呢，公司再牛，他也挡不住历史前进的车轮吧，最终</span>JDO2.0<span style="font-family: 宋体">的投票还是以绝对的票数（</span>12<span style="font-family: 宋体">：</span>3<span style="font-family: 宋体">）通过了。</span><br />
<br />
&nbsp;&nbsp;<span style="font-family: 宋体">还有其它散落江湖的</span>Java<span style="font-family: 宋体">持久化技术，如</span>Hibernate,&nbsp;Castor,&nbsp;Toplink,&nbsp;<span style="font-family: 宋体">他们虽然没有皇家血统，不过实力也是不容小视。就拿</span>Hibernate<span style="font-family: 宋体">来说，是</span>javaworld<span style="font-family: 宋体">评选出来的</span>2003<span style="font-family: 宋体">年度最佳</span>java<span style="font-family: 宋体">数据存取工具，目前可以说是大红大紫。而</span>Castor<span style="font-family: 宋体">和</span>Toplink<span style="font-family: 宋体">也算是历史悠久了，在</span>JDO<span style="font-family: 宋体">没有出世之前，它们就在江湖上混着了。目前也占据着一定的市场。这些第三方的工具从功能上来说很类似于</span>JDO,&nbsp;<span style="font-family: 宋体">只是各自的</span>API<span style="font-family: 宋体">互不相同。这也是后来</span>JDO<span style="font-family: 宋体">规范的呼声越来越高的一个原因吧。这些第三方</span>O/R&nbsp;mapping<span style="font-family: 宋体">工具能在江湖上立足，也确实都有各自过人之处。如</span>Hibernate<span style="font-family: 宋体">金字招牌就是</span>Open&nbsp;Source<span style="font-family: 宋体">，支持几乎世面上所能看到得绝大部分数据库，并且文档也非常齐全。</span>Toplink<span style="font-family: 宋体">么，可谓历史悠久，又榜着</span>Oracle<span style="font-family: 宋体">这棵大树。目前来看，这些工具也占据着</span>java<span style="font-family: 宋体">数据库存取的不小市场。个人觉得，随着</span>JDO<span style="font-family: 宋体">规范的不段完善，</span>JDO<span style="font-family: 宋体">产品的普及，这一部分人员可能会在以后渐渐退出历史舞台。不过从</span>Hibernate<span style="font-family: 宋体">目前如日中天的气势来看，好像说这句话还为时过早。</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 宋体">关于这些技术优劣之争从它们刚刚出生那天起从来就没有停止过，而各家各派也从来没有能够说服过对方。对于我们应用开发者而言，撇开应用纯粹来争论技术优劣并没有多大意义。还是俗话说的好，没有最好的，只有最合适的。我们能够在做开发的时候能够选择一个最合适于自己应用的技术，那就足够了。总的来说，</span>JDBC<span style="font-family: 宋体">面向</span>RDBMS,<span style="font-family: 宋体">比较适合关系数据库模式驱动的应用，例如统计表格数据，生成报表之类的应用。</span>EJB&nbsp;<span style="font-family: 宋体">技术以</span>J2EE<span style="font-family: 宋体">应用服务器为中心，如果你的应用确实需要灵活的可声明的事务边界，需要支持大容量的访问和不间断的服务，需要应用服务器的集群，那么选</span>EJB<span style="font-family: 宋体">吧。</span>JDO<span style="font-family: 宋体">则面向对象，对于以域对象为中心的应用，包含图，树模型的应用，</span>JDO<span style="font-family: 宋体">是首选。</span><br />
<br />
<span style="font-family: 宋体">后记，今天得闲，偶尔发现自己这篇三年多前的的小文章还在，感叹一下光阴似箭，逝者如斯夫。三年过去了，</span>JDO<span style="font-family: 宋体">并非像当年想象那样能一统江湖，</span>Hibernate<span style="font-family: 宋体">俨然已成王者。看来</span>JDO&nbsp;<span style="font-family: 宋体">只能像当年周郎发出无奈的感慨，既生瑜，何生亮</span>........<br />
caowei&nbsp;(cn.caowei@gmail.com)&nbsp;<span style="font-family: 宋体">于</span>14.Dec.2007.</p>
<img src ="http://www.blogjava.net/edog/aggbug/210171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:25 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java连接access数据库</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210167.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210167.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210167.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210167.html</trackback:ping><description><![CDATA[转自：<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><a href="http://blog.csdn.net/guofangsky/archive/2006/11/30/1422038.aspx">http://blog.csdn.net/guofangsky/archive/2006/11/30/1422038.aspx</a></span><br />
<br />
&nbsp;
<div style="border-right: #cccccc 0.75pt solid; padding-right: 0cm; border-top: #cccccc 0.75pt solid; padding-left: 0cm; padding-bottom: 0cm; border-left: #cccccc 0.75pt solid; padding-top: 0cm; border-bottom: #cccccc 0.75pt solid">
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">(Java DataBase Connectivity)</span><span style="font-size: 9pt; color: black">是</span><span style="font-size: 9pt; color: black; font-family: Verdana">Java</span><span style="font-size: 9pt; color: black">数据库连接</span><span style="font-size: 9pt; color: black; font-family: Verdana">API</span><span style="font-size: 9pt; color: black">。</span><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC</span><span style="font-size: 9pt; color: black">能完成与一个数据库建立连接，然后向数据库发送</span><span style="font-size: 9pt; color: black; font-family: Verdana">SQL</span><span style="font-size: 9pt; color: black">语句，再处理数据库返回的结果。</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC</span></strong><span style="font-size: 9pt; color: black">在设计上和</span><strong><span style="font-size: 9pt; color: black; font-family: Verdana">ODBC</span></strong><span style="font-size: 9pt; color: black">相似。</span><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC</span><span style="font-size: 9pt; color: black">和数据库建立连接的一种方式是首先建立起一个</span><strong><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC-ODBC</span></strong><strong><span style="font-size: 9pt; color: black">桥接器</span></strong><span style="font-size: 9pt; color: black">。</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">首先安装</span><span style="font-size: 9pt; color: black; font-family: Verdana">office2000,</span><span style="font-size: 9pt; color: black">就有了</span><span style="font-size: 9pt; color: black; font-family: Verdana">Access2000,</span><span style="font-size: 9pt; color: black">启动</span><span style="font-size: 9pt; color: black; font-family: Verdana">Access,</span><span style="font-size: 9pt; color: black">建立新数据库</span><strong><span style="font-size: 9pt; color: #f70938; font-family: Verdana">mess.mdb</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">建立包含两个文本型字段</span><strong><span style="font-size: 9pt; color: black; font-family: Verdana">name</span></strong><span style="font-size: 9pt; color: black">和</span><strong><span style="font-size: 9pt; color: black; font-family: Verdana">sex</span></strong><span style="font-size: 9pt; color: black">的表</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">表名为</span><strong><span style="font-size: 9pt; color: #ff0066; font-family: Verdana">member</span></strong><span style="font-size: 9pt; color: black">，随便录入一些字符串到</span><span style="font-size: 9pt; color: black; font-family: Verdana">member</span><span style="font-size: 9pt; color: black">表中，保存在任意目录下，比如说</span><span style="font-size: 9pt; color: black; font-family: Verdana">C</span><span style="font-size: 9pt; color: black">盘下。然后打开<strong>控制面板</strong></span><span style="font-size: 9pt; color: black; font-family: Verdana"> -&gt; </span><strong><span style="font-size: 9pt; color: black">管理工具</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana"> -&gt; </span><strong><span style="font-size: 9pt; color: black">数据源</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana"> (ODBC)</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">选择</span><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><strong><span style="font-size: 9pt; color: black">系统</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">DSN</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">",</span><span style="font-size: 9pt; color: black">也可以选择</span><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><span style="font-size: 9pt; color: black">用户</span><span style="font-size: 9pt; color: black; font-family: Verdana">DSN"</span><span style="font-size: 9pt; color: black">选项卡</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">系统的</span><span style="font-size: 9pt; color: black; font-family: Verdana">DSN</span><span style="font-size: 9pt; color: black">对每个用户都适用可避免调试时出现的权限问题，单击&#8220;<strong>添加</strong>&#8221;，选择如下图的项目</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">点击</span><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><span style="font-size: 9pt; color: black">完成</span><span style="font-size: 9pt; color: black; font-family: Verdana">",</span><span style="font-size: 9pt; color: black">弹出的对话框里将</span><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><strong><span style="font-size: 9pt; color: black">数据源名</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><span style="font-size: 9pt; color: black">一项设为你喜欢的名字</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">比如</span><strong><span style="font-size: 9pt; color: black; font-family: Verdana">redsun</span></strong><span style="font-size: 9pt; color: black">。点</span><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><strong><span style="font-size: 9pt; color: black">选择</span></strong><span style="font-size: 9pt; color: black; font-family: Verdana">"</span><span style="font-size: 9pt; color: black">，找到</span><span style="font-size: 9pt; color: black; font-family: Verdana">"C:"mess.mdb"</span><span style="font-size: 9pt; color: black">文件，如此一个</span><span style="font-size: 9pt; color: black; font-family: Verdana">ODBC</span><span style="font-size: 9pt; color: black">数据源就配置好了。</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">要连接该数据源</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">也就是连接数据库，首先要建立一个</span><span style="font-size: 9pt; color: black; font-family: Verdana">JDBC-ODBC</span><span style="font-size: 9pt; color: black">桥接器，上面已经说过了，其方法是</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; background: black; color: #eeeeee; font-family: Verdana">Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</span></strong></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black; font-family: Verdana">Class </span><span style="font-size: 9pt; color: black">是</span><span style="font-size: 9pt; color: black; font-family: Verdana">Java.lang</span><span style="font-size: 9pt; color: black">包中的一个类，通过调用它的静态方法</span><span style="font-size: 9pt; color: black; font-family: Verdana">forName</span><span style="font-size: 9pt; color: black">就可以建立桥接器。但建立桥接器时可能发生异常，这是我们所不想见到的，因此要捕获这个异常</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">try{</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana"><br />
<strong>&nbsp;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</strong><br />
<strong>&nbsp;}</strong><br />
<strong>catch(ClassNotFoundException e){</strong></span></strong><strong><span style="font-size: 9pt; color: black">异常捕获</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">}</span></strong></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">然后就是连接数据库了</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">这里要用到</span><span style="font-size: 9pt; color: black; font-family: Verdana">java.sql</span><span style="font-size: 9pt; color: black">包中的</span><span style="font-size: 9pt; color: black; font-family: Verdana">Connection</span><span style="font-size: 9pt; color: black">类声明一个对象，再用类</span><span style="font-size: 9pt; color: black; font-family: Verdana">DriverManager</span><span style="font-size: 9pt; color: black">调用它的静态方法</span><span style="font-size: 9pt; color: black; font-family: Verdana">getConnection</span><span style="font-size: 9pt; color: black">创建这个连接。</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">Connection con=DriverManager.getConnection("jdbc:odbc:</span></strong><strong><span style="font-size: 9pt; color: black">数据源名字</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">","</span></strong><strong><span style="font-size: 9pt; color: black">数据源用户名</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">","</span></strong><strong><span style="font-size: 9pt; color: black">数据源密码</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">");</span></strong></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">为防止连接出现异常，这里也要有个异常的处理，具体看代码</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black; font-family: Verdana">=========access.java============</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black; font-family: 宋体">程序代码</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black; font-family: Verdana">import java.sql.*;<br />
public class access{<br />
public static void main(String args[]){<br />
&nbsp;Connection con;<br />
&nbsp;Statement sql; //</span><span style="font-size: 9pt; color: black">声明</span><span style="font-size: 9pt; color: black; font-family: Verdana">Statement</span><span style="font-size: 9pt; color: black">对象</span><span style="font-size: 9pt; color: black; font-family: Verdana"><br />
&nbsp;ResultSet rs;<br />
try{<br />
&nbsp;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />
&nbsp;}<br />
catch(ClassNotFoundException e){<br />
System.out.println(""+e);<br />
}<br />
try{<br />
&nbsp;con=DriverManager.getConnection("jdbc:odbc:redsun","","");<br />
sql=con.createStatement();<br />
rs=sql.executeQuery("Select * FROM member");<br />
while(rs.next()){<br />
&nbsp;String name=rs.getString(1); //</span><span style="font-size: 9pt; color: black">获得数据库第一列</span><span style="font-size: 9pt; color: black; font-family: Verdana"><br />
&nbsp;String sex=rs.getString(2); <br />
System.out.println("</span><span style="font-size: 9pt; color: black">姓名</span><span style="font-size: 9pt; color: black; font-family: Verdana">:"+name); //</span><span style="font-size: 9pt; color: black">输出信息</span><span style="font-size: 9pt; color: black; font-family: Verdana"><br />
System.out.println("</span><span style="font-size: 9pt; color: black">性别</span><span style="font-size: 9pt; color: black; font-family: Verdana">:"+sex);<br />
&nbsp;&nbsp; }<br />
con.close();<br />
}<br />
catch(SQLException el){}<br />
&nbsp;}<br />
}</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">编绎</span><span style="font-size: 9pt; color: black; font-family: Verdana">access.java, </span><span style="font-size: 9pt; color: black">然后在命令提示符中先切换到编绎后的</span><span style="font-size: 9pt; color: black; font-family: Verdana">access.class</span><span style="font-size: 9pt; color: black">的目录</span><span style="font-size: 9pt; color: black; font-family: Verdana">,</span><span style="font-size: 9pt; color: black">执行</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">java access</span></strong><span style="font-size: 9pt; color: black">回车</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">结果如图显示</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><span style="font-size: 9pt; color: black">以上这个例子只是简单的连接数据库，并静态游标方式显示数据，更新、删除和添加数据库以前学过</span><span style="font-size: 9pt; color: black; font-family: Verdana">sql</span><span style="font-size: 9pt; color: black">的很容易理解，语法为</span><span style="font-size: 9pt; color: black; font-family: Verdana">:</span></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">String xx="sql</span></strong><strong><span style="font-size: 9pt; color: black">语句</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">";</span></strong></p>
<p style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; word-break: break-all; line-height: 150%; padding-top: 0cm; border-bottom: medium none"><strong><span style="font-size: 9pt; color: black; font-family: Verdana">Statement</span></strong><strong><span style="font-size: 9pt; color: black">对象</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana">.executeUpdate(xx);</span></strong></p>
</div>
<img src ="http://www.blogjava.net/edog/aggbug/210167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:21 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC来连接Oracle数据库时的一些技巧</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210165.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:17:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210165.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210165.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210165.html</trackback:ping><description><![CDATA[&nbsp;
<p><span lang="EN-US">1、在客户端软件开发中使用Thin驱动程序</span></p>
<p>　　在开发<strong><span lang="EN-US" style="background: #ffff66; color: black">Java</span></strong>软件方面，<span lang="EN-US">Oracle的数据库提供了四种类型的驱动程序，二种用于应用软件、applets、servlets等客户端软件，另外二种用于数据库中的<strong><span style="background: #ffff66; color: black">Java</span></strong>存储过程等服务器端软件。在客户机端软件的开发中，我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用<strong><span style="background: #ffff66; color: black">Java</span></strong>本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。为了获得最高的性能，Oracle建议在客户端软件的开发中使用OCI驱动程序，这似乎是正确的。但我建议使用Thin驱动程序，因为通过多次测试发现，在通常情况下，Thin驱动程序的性能都超过了OCI驱动程序。</span></p>
<p>　　<span lang="EN-US">2、关闭自动提交功能，提高系统性能</span></p>
<p>　　在第一次建立与数据库的连接时，在缺省情况下，连接是在自动提交模式下的。为了获得更好的性能，可以通过调用带布尔值<span lang="EN-US">false参数的Connection类的setAutoCommit()方法关闭自动提交功能，如下所示：</span></p>
<p>　　<span lang="EN-US">conn.setAutoCommit(false);</span></p>
<p>　　值得注意的是，一旦关闭了自动提交功能，我们就需要通过调用<span lang="EN-US">Connection类的commit()和rollback()方法来人工的方式对事务进行管理。</span></p>
<p>　　<span lang="EN-US">3、在动态SQL或有时间限制的命令中使用Statement对象</span></p>
<p>　　在执行<span lang="EN-US">SQL命令时，我们有二种选择：可以使用PreparedStatement对象，也可以使用Statement对象。无论多少次地使用同一个SQL命令，PreparedStatement都只对它解析和编译一次。当使用Statement对象时，每次执行一个SQL命令时，都会对它进行解析和编译。这可能会使你认为，使用PreparedStatement对象比使用Statement对象的速度更快。然而，我进行<br />
的测试表明，在客户端软件中，情况并非如此。因此，在有时间限制的SQL操作中，除非成批地处理SQL命令，我们应当考虑使用Statement对象。</span></p>
<p>　　此外，使用<span lang="EN-US">Statement对象也使得编写动态SQL命令更加简单，因为我们可以将字符串连接在一起，建立一个有效的SQL命令。因此，我认为，Statement对象可以使动态SQL命令的创建和执行变得更加简单。</span></p>
<p>　　<span lang="EN-US">4、利用helper函数对动态SQL命令进行格式化</span></p>
<p>　　在创建使用<span lang="EN-US">Statement对象执行的动态SQL命令时，我们需要处理一些格式化方面的问题。例如，如果我们想创建一个将名字O'Reilly插入表中的SQL命令，则必须使用二个相连的&#8220;''&#8221;号替换O'Reilly中的&#8220;'&#8221;号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法，然后在连接字符串心服用公式表达一个SQL命令时，使用创建的helper方法。与此类似的是，我们可以让helper方法接受一个Date型的值，然后让它输出基于Oracle的to_date()函数的字符串表达式。</span></p>
<p>　　<span lang="EN-US">5、利用PreparedStatement对象提高数据库的总体效率</span></p>
<p>　　在使用<span lang="EN-US">PreparedStatement对象执行SQL命令时，命令被数据库进行解析和编译，然后被放到命令缓冲区。然后，每当执行同一个PreparedStatement对象时，它就会被再解析一次，但不会被再次编译。在缓冲区中可以发现预编译的命令，并且可以重新使用。在有大量用户的企业级应用软件中，经常会重复执行相同的SQL命令，使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务，我会建议在除动态SQL命令之外的所有情况下<br />
使用PreparedStatement对象。</span></p>
<p>　　<span lang="EN-US">6、在成批处理重复的插入或更新操作中使用PreparedStatement对象</span></p>
<p>　　如果成批地处理插入和更新操作，就能够显著地减少它们所需要的时间。<span lang="EN-US">Oracle提供的Statement和 CallableStatement并不真正地支持批处理，只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理，或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制，可以以如下所示的<br />
方式调用setExecuteBatch()：&nbsp;</span></p>
<p><span lang="EN-US">PreparedStatement pstmt3D null;<br />
try {<br />
　((OraclePreparedStatement)pstmt).setExecuteBatch(30);<br />
　...<br />
　pstmt.executeUpdate();<br />
}&nbsp; </span></p>
<p>　　调用<span lang="EN-US">setExecuteBatch()时指定的值是一个上限，当达到该值时，就会自动地引发SQL命令执行，标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。</span></p>
<p>　　<span lang="EN-US">7、使用Oracle locator方法插入、更新大对象（LOB）</span></p>
<p>　　<span lang="EN-US">Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理，尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值，也不支持利用setCharacterStream()方法设置CLOB的值。只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用PreparedStatement对象插入或更新LOB，但需要使用locator才能获取LOB的值。由于存在这二个问题，因此，我建议使用locator的方法来插入、更新或获取LOB的值。</span></p>
<p>　　<span lang="EN-US">8、使用SQL92语法调用存储过程</span></p>
<p>　　在调用存储过程时，我们可以使用<span lang="EN-US">SQL92或Oracle PL/SQL，由于使用Oracle PL/SQL并没有什么实际的好处，而且会给以后维护你的应用程序的开发人员带来麻烦，因此，我建议在调用存储过程时使用SQL92。</span></p>
<p>　　<span lang="EN-US">9、使用Object SQL将对象模式转移到数据库中</span></p>
<p>　　既然可以将<span lang="EN-US">Oracle的数据库作为一种面向对象的数据库来使用，就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建<strong><span style="background: #ffff66; color: black">Java</span></strong> bean作为伪装的数据库对象，将它们的属性映射到关系表中，然后在这些bean中添加方法。尽管这样作在<strong><span style="background: #ffff66; color: black">Java</span></strong>中没有什么问题，但由于操作都是在数据库之外进行的，因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle的面向对象的技术，可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作，然后使用JPublisher等工具生成自己的<strong><span style="background: #ffff66; color: black">Java</span></strong> bean类。如果使用这种方式，不但<strong><span style="background: #ffff66; color: black">Java</span></strong>应用程序可以使用应用软件的对象模式，其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。</span></p>
<p>　　<span lang="EN-US">10、利用SQL完成数据库内的操作</span></p>
<p>　　我要向大家介绍的最重要的经验是充分利用<span lang="EN-US">SQL的面向集合的方法来解决数据库处理需求，而不是使用<strong><span style="background: #ffff66; color: black">Java</span></strong>等过程化的编程语言。</span></p>
<p>　　如果编程人员要在一个表中查找许多行，结果中的每个行都会查找其他表中的数据，最后，编程人员创建了独立的<span lang="EN-US">UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务，何必要让数据在网上流来流去的？我建议用户认真学习如何最大限度地发挥SQL的功能。</span></p>
<img src ="http://www.blogjava.net/edog/aggbug/210165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:17 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC连接MySql方式</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210163.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210163.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210163.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210163.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210163.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210163.html</trackback:ping><description><![CDATA[&nbsp;
<p>下面是使用<span lang="EN-US">JDBC连接MySql的一个小的教程 </span></p>
<p><span lang="EN-US">1、查找驱动程序</span></p>
<p>　　<span lang="EN-US">MySQL目前提供的<strong><span style="background: #ffff66; color: black">java</span></strong>驱动程序为Connection/J，可以从MySQL官方网站下载，并找到mysql-connector-<strong><span style="background: #ffff66; color: black">java</span></strong>-3.0.15-ga-bin.jar文件，此驱动程序为纯<strong><span style="background: #ffff66; color: black">java</span></strong>驱动程序，不需做其他配置。</span></p>
<p>　　<span lang="EN-US">2、动态指定classpath</span></p>
<p>　　如果需要执行时动态指定<span lang="EN-US">classpath，就在执行时采用－cp方式。否则将上面的.jar文件加入到classpath环境变量中。</span></p>
<p>　　<span lang="EN-US">3、加载驱动程序</span></p>
<p><span lang="EN-US">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 />
} </span></p>
<p>　　<span lang="EN-US">4、设置连接的url</span></p>
<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">jdbc</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">mysql</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">//localhost/databasename[?pa=va][</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">＆</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">pa=va]</span>
<img src ="http://www.blogjava.net/edog/aggbug/210163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:16 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库连接字串</title><link>http://www.blogjava.net/edog/archive/2008/06/23/210162.html</link><dc:creator>edog</dc:creator><author>edog</author><pubDate>Mon, 23 Jun 2008 14:15:00 GMT</pubDate><guid>http://www.blogjava.net/edog/archive/2008/06/23/210162.html</guid><wfw:comment>http://www.blogjava.net/edog/comments/210162.html</wfw:comment><comments>http://www.blogjava.net/edog/archive/2008/06/23/210162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/edog/comments/commentRss/210162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/edog/services/trackbacks/210162.html</trackback:ping><description><![CDATA[&nbsp;
<p><strong><span lang="EN-US" style="color: black">Java</span></strong>数据库连接（<span lang="EN-US">JDBC）由一组用 <strong><span style="color: black">Java</span></strong> 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API，使他们能够用纯<strong><span style="color: black">Java</span></strong> API 来编写数据库应用程序。然而各个开发商的接口并不完全相同，所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。</span></p>
<p><strong><span style="font-size: 15pt; mso-bidi-font-size: 12.0pt">一、连接各种数据库方式速查表<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p>下面罗列了各种数据库使用<span lang="EN-US">JDBC连接的方式，可以作为一个手册使用。 </span></p>
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">1</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Oracle8/8i/9i</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库（</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">thin</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式）</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">oracle.jdbc.driver.OracleDriver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:oracle:thin:@localhost:1521:orcl</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">orcl为数据库的SID&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">String&nbsp;user</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;password</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">test</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,user,password);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">2</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">DB2</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">com.ibm.db2.jdbc.app.DB2Driver&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:db2://localhost:5000/sample</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">sample为你的数据库名&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">String&nbsp;user</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">admin</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;password</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,user,password);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">3</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Sql Server7.0/2000</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">com.microsoft.jdbc.sqlserver.SQLServerDriver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">mydb为数据库&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">String&nbsp;user</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">sa</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;password</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,user,password);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">4</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Sybase</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">com.sybase.jdbc.SybDriver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;jdbc:sybase:Tds:localhost:5007/myDB</span><span style="color: #000000">"</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">myDB为你的数据库名&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">Properties&nbsp;sysProps&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.getProperties();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />SysProps.put(</span><span style="color: #000000">"</span><span style="color: #000000">user</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">userid</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />SysProps.put(</span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">user_password</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,&nbsp;SysProps);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">5</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Informix</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">com.informix.jdbc.IfxDriver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">user</span><span style="color: #000000">=</span><span style="color: #000000">testuser;password</span><span style="color: #000000">=</span><span style="color: #000000">testpassword</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;//myDB为数据库名&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">6</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">MySQL</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">org.gjt.mm.mysql.Driver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:mysql://localhost/myDB?user=soft&amp;password=soft1234&amp;useUnicode=true&amp;characterEncoding=8859_1</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">myDB为数据库名&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">7</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">PostgreSQL</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">org.postgresql.Driver</span><span style="color: #000000">"</span><span style="color: #000000">).newInstance();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:postgresql://localhost/myDB</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">myDB为数据库名&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">String&nbsp;user</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">myuser</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;password</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">mypassword</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,user,password);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<strong><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">8</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、A</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ccess</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据库直连用</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">ODBC</span><span style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span></strong><br />
<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://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">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">)&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">jdbc:odbc:Driver={MicroSoft&nbsp;Access&nbsp;Driver&nbsp;(*.mdb)};DBQ=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">application.getRealPath(</span><span style="color: #000000">"</span><span style="color: #000000">/Data/ReportDemo.mdb</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Connection&nbsp;conn&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DriverManager.getConnection(url,</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/None.gif" align="top"  alt="" />Statement&nbsp;stmtNew</span><span style="color: #000000">=</span><span style="color: #000000">conn.createStatement()&nbsp;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/edog/aggbug/210162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/edog/" target="_blank">edog</a> 2008-06-23 22:15 <a href="http://www.blogjava.net/edog/archive/2008/06/23/210162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>