<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sybase数据库技术，数据库恢复专家 &#187; jdbc</title>
	<atom:link href="http://www.dbainfo.net/tag/jdbc/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dbainfo.net</link>
	<description>提供Sybase ASE及Sybase SQL Anywhere数据库修复服务，电话：13811580958(微信)，QQ：289965371！We have many years of experience in recovering data from damanged Sybase devices. Contact us by Phone: +86 13811580958 Wechat: 13811580958 Email: 289965371@qq.com</description>
	<lastBuildDate>Sat, 14 Jun 2025 16:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL</title>
		<link>https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm</link>
		<comments>https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm#comments</comments>
		<pubDate>Fri, 17 Sep 2010 08:03:01 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL SERVER]]></category>
		<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[Informix]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sybase]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=1847</guid>
		<description><![CDATA[Java数据库连接（JDBC）由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API，使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同，所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。 一、连接各种数据库方式速查表 　　 下面罗列了各种数据库使用JDBC连接的方式，可以作为一个手册使用。 　　 1、Oracle8/8i/9i数据库（thin模式） Java代码 &#160; Class.forName(&#34;oracle.jdbc.driver.OracleDriver&#34;).newInstance();&#160; &#160; String url=&#34;jdbc:oracle:thin:@localhost:1521:orcl&#34;; //orcl为数据库的SID&#160; &#160; String user=&#34;test&#34;;&#160; &#160; String password=&#34;test&#34;;&#160; &#160; Connection conn= DriverManager.getConnection(url,user,password);&#160; &#160; &#160; 　　 2、DB2数据库 Java代码 &#160; Class.forName(&#34;com.ibm.db2.jdbc.app.DB2Driver&#34;).newInstance();&#160; &#160; String url=&#34;jdbc:db2://localhost:5000/sample&#34;; //sample为你的数据库名&#160; &#160; String user=&#34;admin&#34;;&#160; &#160; String password=&#34;&#34;;&#160; &#160; Connection conn= DriverManager.getConnection(url,user,password);&#160; &#160; &#160; 　　 3、SQL Server7.0/2000数据库 [...]]]></description>
			<content:encoded><![CDATA[<p>Java数据库连接（JDBC）由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API，使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同，所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。 </p>
<p>	一、连接各种数据库方式速查表 <br />
	　　 下面罗列了各种数据库使用JDBC连接的方式，可以作为一个手册使用。 <br />
	　　 1、Oracle8/8i/9i数据库（thin模式） <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;oracle.jdbc.driver.OracleDriver&quot;).newInstance();&nbsp; &nbsp;<br />
	String url=&quot;jdbc:oracle:thin:@localhost:1521:orcl&quot;; //orcl为数据库的SID&nbsp; &nbsp;<br />
	String user=&quot;test&quot;;&nbsp; &nbsp;<br />
	String password=&quot;test&quot;;&nbsp; &nbsp;<br />
	Connection conn= DriverManager.getConnection(url,user,password);&nbsp; &nbsp;<br />
	&nbsp;<br />
	　　 2、DB2数据库 <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;com.ibm.db2.jdbc.app.DB2Driver&quot;).newInstance();&nbsp; &nbsp;<br />
	String url=&quot;jdbc:db2://localhost:5000/sample&quot;; //sample为你的数据库名&nbsp; &nbsp;<br />
	String user=&quot;admin&quot;;&nbsp; &nbsp;<br />
	String password=&quot;&quot;;&nbsp; &nbsp;<br />
	Connection conn= DriverManager.getConnection(url,user,password);&nbsp; &nbsp;<br />
	&nbsp;<span id="more-1847"></span><br />
	　　 3、SQL Server7.0/2000数据库</p>
<blockquote>
<p>Java代码 &nbsp;<br />
		Class.forName(&quot;com.microsoft.jdbc.sqlserver.SQLServerDriver&quot;).newInstance();&nbsp; &nbsp;<br />
		String url=&quot;jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb&quot;;&nbsp; //mydb为数据库&nbsp; &nbsp;<br />
		String user=&quot;sa&quot;;&nbsp; &nbsp;<br />
		String password=&quot;&quot;;&nbsp; &nbsp;<br />
		Connection conn= DriverManager.getConnection(url,user,password);&nbsp; &nbsp;</p>
<p>		对于SQL Server2005/2008数据库 <br />
		Class.forName(&quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot;).newInstance();&nbsp; &nbsp;<br />
		String url=&quot;jdbc:sqlserver://localhost:1433;DatabaseName=mydb&quot;; //mydb为数据库&nbsp; &nbsp;<br />
		String user=&quot;sa&quot;;&nbsp; &nbsp;<br />
		String password=&quot;&quot;;&nbsp; &nbsp;<br />
		Connection conn= DriverManager.getConnection(url,user,password);&nbsp;&nbsp;</p>
</blockquote>
<p>
	　　 4、Sybase数据库</p>
<blockquote>
<p>Java代码 &nbsp;<br />
		Class.forName(&quot;com.sybase.jdbc.SybDriver&quot;).newInstance();&nbsp; &nbsp;<br />
		String url =&quot; jdbc:sybase:Tds:localhost:5007/myDB&quot;;//Sybase ASE端口号为：5007，连接的数据库名称为：myDB&nbsp; &nbsp;<br />
		Properties sysProps = System.getProperties();&nbsp; &nbsp;<br />
		SysProps.put(&quot;user&quot;,&quot;userid&quot;);&nbsp; &nbsp;<br />
		SysProps.put(&quot;password&quot;,&quot;user_password&quot;);&nbsp; &nbsp;<br />
		Connection conn= DriverManager.getConnection(url, SysProps);</p>
<p>		Sybase ASE 12.5.x使用jconn2.jar连接数据库<br />
		Class.forName(&quot;com.sybase.jdbc2.jdbc.SybDriver&quot;).newInstance();<br />
		String url = &quot;jdbc:sybase:Tds:localhost:5007/myDB&quot;;//Sybase ASE端口号为：5007，连接的数据库名称为：myDB <br />
		Properties sysProps = System.getProperties();<br />
		sysProps.put(&quot;user&quot;, &quot;sa&quot;); // 设置数据库访问用户名<br />
		sysProps.put(&quot;password&quot;, &quot;sybase&quot;); // 密码<br />
		Connection conn = DriverManager.getConnection(url, sysProps);</p>
<p>		Sybase ASE 15.x使用jconn3.jar连接数据库<br />
		Class.forName(&quot;com.sybase.jdbc3.jdbc.SybDriver&quot;).newInstance();<br />
		String url = &quot;jdbc:sybase:Tds:localhost:5007/myDB&quot;;//Sybase ASE端口号为：5007，连接的数据库名称为：myDB <br />
		Properties sysProps = System.getProperties();<br />
		sysProps.put(&quot;user&quot;, &quot;sa&quot;); // 设置数据库访问用户名<br />
		sysProps.put(&quot;password&quot;, &quot;sybase&quot;); // 密码<br />
		Connection conn = DriverManager.getConnection(url, sysProps);</p>
</blockquote>
<p>
	　　 5、Informix数据库 <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;com.informix.jdbc.IfxDriver&quot;).newInstance();&nbsp; &nbsp;<br />
	String url = &quot;jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;&nbsp; &nbsp;<br />
	user=testuser;password=testpassword&quot;; //myDB为数据库名&nbsp; &nbsp;<br />
	Connection conn= DriverManager.getConnection(url);&nbsp; &nbsp;<br />
	&nbsp;<br />
	　　 6、MySQL数据库 <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;org.gjt.mm.mysql.Driver&quot;).newInstance();&nbsp; &nbsp;<br />
	String url =&quot;jdbc:mysql://localhost/myDB?user=soft&amp;password=soft1234&amp;useUnicode=true&amp;characterEncoding=8859_1&quot;&nbsp; &nbsp;<br />
	//myDB为数据库名&nbsp; &nbsp;<br />
	Connection conn= DriverManager.getConnection(url);&nbsp; &nbsp;<br />
	&nbsp;<br />
	　　 7、PostgreSQL数据库 <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;org.postgresql.Driver&quot;).newInstance();&nbsp; &nbsp;<br />
	String url =&quot;jdbc:postgresql://localhost/myDB&quot; //myDB为数据库名&nbsp; &nbsp;<br />
	String user=&quot;myuser&quot;;&nbsp; &nbsp;<br />
	String password=&quot;mypassword&quot;;&nbsp; &nbsp;<br />
	Connection conn= DriverManager.getConnection(url,user,password);&nbsp; &nbsp;<br />
	&nbsp;<br />
	　　 8、access数据库直连用ODBC的 <br />
	Java代码 &nbsp;<br />
	Class.forName(&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;) ;&nbsp; &nbsp;<br />
	String url=&quot;jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=&quot;+application.getRealPath(&quot;/Data/ReportDemo.mdb&quot;);&nbsp; &nbsp;<br />
	Connection conn = DriverManager.getConnection(url,&quot;&quot;,&quot;&quot;);&nbsp; &nbsp;<br />
	Statement stmtNew=conn.createStatement() ;&nbsp; &nbsp;<br />
	&nbsp;<br />
	二、JDBC连接MySql方式 <br />
	　　 下面是使用JDBC连接MySql的一个小的教程 <br />
	　　 1、查找驱动程序 <br />
	　　 MySQL目前提供的java驱动程序为Connection/J，可以从MySQL官方网站下载，并找到mysql-connector-java-3.0.15-ga-bin.jar文件，此驱动程序为纯java驱动程序，不需做其他配置。 </p>
<p>	　　 2、动态指定classpath <br />
	　　 如果需要执行时动态指定classpath，就在执行时采用－cp方式。否则将上面的.jar文件加入到classpath环境变量中。 </p>
<p>	　　 3、加载驱动程序 <br />
	Java代码 &nbsp;<br />
	try{&nbsp; &nbsp;<br />
	　 Class.forName(com.mysql.jdbc.Driver);&nbsp; &nbsp;<br />
	　 System.out.println(Success loading Mysql Driver!);&nbsp; &nbsp;<br />
	}catch(Exception e)&nbsp; &nbsp;<br />
	{&nbsp; &nbsp;<br />
	　 System.out.println(Error loading Mysql Driver!);&nbsp; &nbsp;<br />
	　 e.printStackTrace();&nbsp; &nbsp;<br />
	}&nbsp; &nbsp;<br />
	&nbsp;<br />
	　　 4、设置连接的url <br />
	jdbc：mysql：//localhost/databasename[?pa=va][＆pa=va]　<br />
	　 <br />
	三、以下列出了在使用JDBC来连接Oracle数据库时可以使用的一些技巧 <br />
	　　 1、在客户端软件开发中使用Thin驱动程序 <br />
	　　 在开发Java软件方面，Oracle的数据库提供了四种类型的驱动程序，二种用于应用软件、applets、servlets等客户端软件，另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中，我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口（JNI），通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序，它直接与数据库进行通讯。为了获得最高的性能，Oracle建议在客户端软件的开发中使用OCI驱动程序，这似乎是正确的。但我建议使用Thin驱动程序，因为通过多次测试发现，在通常情况下，Thin驱动程序的性能都超过了OCI驱动程序。 </p>
<p>	　　 2、关闭自动提交功能，提高系统性能 <br />
	　　 在第一次建立与数据库的连接时，在缺省情况下，连接是在自动提交模式下的。为了获得更好的性能，可以通过调用带布尔值false参数的Connection类的setAutoCommit()方法关闭自动提交功能，如下所示： <br />
	　　 conn.setAutoCommit(false); <br />
	　　 值得注意的是，一旦关闭了自动提交功能，我们就需要通过调用Connection类的commit()和rollback()方法来人工的方式对事务进行管理。 </p>
<p>	　　 3、在动态SQL或有时间限制的命令中使用Statement对象 <br />
	　　 在执行SQL命令时，我们有二种选择：可以使用PreparedStatement对象，也可以使用Statement对象。无论多少次地使用同一个SQL命令，PreparedStatement都只对它解析和编译一次。当使用Statement对象时，每次执行一个SQL命令时，都会对它进行解析和编译。这可能会使你认为，使用PreparedStatement对象比使用Statement对象的速度更快。然而，我进行的测试表明，在客户端软件中，情况并非如此。因此，在有时间限制的SQL操作中，除非成批地处理SQL命令，我们应当考虑使用Statement对象。 </p>
<p>	　　 此外，使用Statement对象也使得编写动态SQL命令更加简单，因为我们可以将字符串连接在一起，建立一个有效的SQL命令。因此，我认为，Statement对象可以使动态SQL命令的创建和执行变得更加简单。 </p>
<p>	　　 4、利用helper函数对动态SQL命令进行格式化 <br />
	　　 在创建使用Statement对象执行的动态SQL命令时，我们需要处理一些格式化方面的问题。例如，如果我们想创建一个将名字O&#39;Reilly插入表中的SQL命令，则必须使用二个相连的&ldquo;&#39;&#39;&rdquo;号替换O&#39;Reilly中的&ldquo;&#39;&rdquo;号。完成这些工作的最好的方法是创建一个完成替换操作的helper方法，然后在连接字符串心服用公式表达一个SQL命令时，使用创建的helper方法。与此类似的是，我们可以让helper方法接受一个Date型的值，然后让它输出基于Oracle的to_date()函数的字符串表达式。 <br />
	　　 5、利用PreparedStatement对象提高数据库的总体效率 <br />
	　　 在使用PreparedStatement对象执行SQL命令时，命令被数据库进行解析和编译，然后被放到命令缓冲区。然后，每当执行同一个PreparedStatement对象时，它就会被再解析一次，但不会被再次编译。在缓冲区中可以发现预编译的命令，并且可以重新使用。在有大量用户的企业级应用软件中，经常会重复执行相同的SQL命令，使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务，我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。 </p>
<p>	　　 6、在成批处理重复的插入或更新操作中使用PreparedStatement对象 <br />
	　　 如果成批地处理插入和更新操作，就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理，只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理，或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制，可以以如下所示的方式调用setExecuteBatch()：<br />
	PreparedStatement pstmt3D null; <br />
	try { <br />
	　 ((OraclePreparedStatement)pstmt).setExecuteBatch(30); <br />
	　 ... <br />
	　 pstmt.executeUpdate(); <br />
	} </p>
<p>	　　 调用setExecuteBatch()时指定的值是一个上限，当达到该值时，就会自动地引发SQL命令执行，标准的executeUpdate()方法就会被作为批处理送到数据库中。我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。 </p>
<p>	　　 7、使用Oracle locator方法插入、更新大对象（LOB） <br />
	　　 Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理，尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值，也不支持利用setCharacterStream()方法设置CLOB的值。只有locator本身中的方法才能够从数据库中获取LOB类型的值。可以使用PreparedStatement对象插入或更新LOB，但需要使用locator才能获取LOB的值。由于存在这二个问题，因此，我建议使用locator的方法来插入、更新或获取LOB的值。 </p>
<p>	　　 8、使用SQL92语法调用存储过程 <br />
	　　 在调用存储过程时，我们可以使用SQL92或Oracle PL/SQL，由于使用Oracle PL/SQL并没有什么实际的好处，而且会给以后维护你的应用程序的开发人员带来麻烦，因此，我建议在调用存储过程时使用SQL92。 </p>
<p>	　　 9、使用Object SQL将对象模式转移到数据库中 <br />
	　　 既然可以将Oracle的数据库作为一种面向对象的数据库来使用，就可以考虑将应用程序中的面向对象模式转到数据库中。目前的方法是创建Java bean作为伪装的数据库对象，将它们的属性映射到关系表中，然后在这些bean中添加方法。尽管这样作在Java中没有什么问题，但由于操作都是在数据库之外进行的，因此其他访问数据库的应用软件无法利用对象模式。如果利用Oracle的面向对象的技术，可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作，然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式，不但Java应用程序可以使用应用软件的对象模式，其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。 </p>
<p>	　　 10、利用SQL完成数据库内的操作 <br />
	　　 我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求，而不是使用Java等过程化的编程语言。 </p>
<p>	　　 如果编程人员要在一个表中查找许多行，结果中的每个行都会查找其他表中的数据，最后，编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE命令中完成。当能够在单一的SQL命令中完成任务，何必要让数据在网上流来流去的？我建议用户认真学习如何最大限度地发挥SQL的功能。</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm">https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm">java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2011-10-14 -- <a href="https://www.dbainfo.net/history-of-common-databases.htm" title="各数据库的发展历史">各数据库的发展历史</a> (0)</li><li>2019-04-12 -- <a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm" title="Sybase ASE及SQL Anywhere数据库修复专家">Sybase ASE及SQL Anywhere数据库修复专家</a> (0)</li><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2013-09-16 -- <a href="https://www.dbainfo.net/select-random-rows-from-table.htm" title="ASE从表中随机选择数据的三种方法">ASE从表中随机选择数据的三种方法</a> (0)</li><li>2013-09-08 -- <a href="https://www.dbainfo.net/get-current-running-sql.htm" title="查看ASE v15正在执行的SQL语句内容">查看ASE v15正在执行的SQL语句内容</a> (0)</li><li>2013-05-23 -- <a href="https://www.dbainfo.net/rename-sybase-ase-servername.htm" title="修改ASE的服务器名称">修改ASE的服务器名称</a> (0)</li><li>2012-06-22 -- <a href="https://www.dbainfo.net/introduce-sql-anywhere-recovery-tool-readasadb.htm" title="Sybase SQL Anywhere(ASA)数据库非常规恢复工具">Sybase SQL Anywhere(ASA)数据库非常规恢复工具</a> (0)</li><li>2012-04-11 -- <a href="https://www.dbainfo.net/ase-alter-table-modify-column-default-value.htm" title="ASE修改列的默认值属性">ASE修改列的默认值属性</a> (0)</li><li>2012-03-21 -- <a href="https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm" title="Sybase去除重复数据的一种方法">Sybase去除重复数据的一种方法</a> (0)</li><li>2011-12-01 -- <a href="https://www.dbainfo.net/oracle11g-tns-12537-and-ora-609-troubleshooting.htm" title="oracle11g报TNS-12537和ORA-609问题的解决">oracle11g报TNS-12537和ORA-609问题的解决</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java连接SQL Server数据库的一个简单例子</title>
		<link>https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm</link>
		<comments>https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm#comments</comments>
		<pubDate>Thu, 16 Sep 2010 06:21:02 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[SQL SERVER]]></category>
		<category><![CDATA[jdbc]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=1839</guid>
		<description><![CDATA[演示在用java连接SQL Server数据库。用了一个简单的java程序作试验。 第一步：获得jdbc for SQL Server驱动程序 sqljdbc.jar 和 sqljdbc4.jar &#160; sqljdbc_auth.dll 为了支持向后兼容以及可能的升级方案，JDBC Driver 2.0 在每个安装包中都包括 2 个 JAR 类库：sqljdbc.jar 和 sqljdbc4.jar。 JAR 说明 sqljdbc.jar sqljdbc.jar 类库提供对 JDBC 3.0 的支持。 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时，在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。 注意： JDBC Driver 2.0 不支持 JRE 1.4。使用 JDBC Driver 2.0 时必须将 JRE 1.4 升级至 [...]]]></description>
			<content:encoded><![CDATA[<p>演示在用java连接SQL Server数据库。用了一个简单的java程序作试验。</p>
<p><strong>第一步：获得jdbc for SQL Server驱动程序</strong><br />
	<a href="https://www.dbainfo.net/wp-content/uploads/file/sqljdbc.jar" target="_blank">sqljdbc.jar</a> 和 <a href="https://www.dbainfo.net/wp-content/uploads/file/sqljdbc4.jar" target="_blank">sqljdbc4.jar</a> &nbsp; <a href="https://www.dbainfo.net/wp-content/uploads/file/sqljdbc_auth.dll" target="_blank">sqljdbc_auth.dll</a></p>
<p>为了支持向后兼容以及可能的升级方案，JDBC Driver 2.0 在每个安装包中都包括 2 个 JAR 类库：<strong>sqljdbc.jar</strong> 和 <strong>sqljdbc4.jar</strong>。</p>
<table border="1" cellpadding="0" cellspacing="0" style="width: 100%;" width="100%">
<tbody>
<tr>
<th>JAR</th>
<th>说明</th>
</tr>
<tr>
<td>
<p>sqljdbc.jar</p>
</td>
<td>
<p><strong>sqljdbc.jar</strong> 类库提供对 JDBC 3.0 的支持。</p>
<p><strong>sqljdbc.jar</strong> 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时，在 JRE 6.0 上使用 <strong>sqljdbc.jar</strong> 会引发异常。</p>
<div style="margin: 0.5em 1.5em"><strong>注意：</strong> JDBC Driver 2.0 不支持 JRE 1.4。使用 JDBC Driver 2.0 时必须将 JRE 1.4 升级至 JRE 5.0 或更高版本。在某些情况下，您可能需要重新编译应用程序，因为它可能与 JDK 5.0 或更高版本不兼容。有关详细信息，请参阅 Sun Microsystems 网站上的文档。</p>
<p>&nbsp;</p>
</p></div>
</td>
</tr>
<tr>
<td>
<p>sqljdbc4.jar</p>
</td>
<td>
<p><strong>sqljdbc4.jar</strong> 类库提供对 JDBC 4.0 的支持。它不仅包括 <strong>sqljdbc.jar</strong> 的所有功能，还包括新增的 JDBC 4.0 方法。</p>
<p><strong>sqljdbc4.jar</strong> 类库要求使用 6.0 或更高版本的 Java 运行时环境 (JRE)。在 JRE 1.4 或 5.0 上使用 <strong>sqljdbc4.jar</strong> 会引发异常。</p>
<div style="margin: 0.5em 1.5em"><strong>注意：</strong> 如果应用程序必须在 JRE 6.0 上运行，即使该应用程序不使用 JDBC 4.0 功能，也应使用 <strong>sqljdbc4.jar</strong>。</p>
<p>&nbsp;</p>
</p></div>
</td>
</tr>
</tbody>
</table>
<p>请注意，尽管驱动程序旨在与所有主要的 Sun 等效 Java 虚拟机一起工作并由这些虚拟机支持，但却是在 Sun JRE 5.0 或更高版本上进行测试的。</p>
<p><font color="#ff0000">注意：JRE6的要选择sqljdbc4.jar</font></p>
<p>&nbsp;</p>
<p><strong>第二步：设置环境变量CLASSPATH</strong></p>
<p>将下载下来的sqljdbc.jar或sqljdbc4.jar放到目录d:\shared\lib下。将环境变量CLASSPATH设置为：D:\shared\lib\sqljdbc.jar</p>
<p><strong>set CLASSPATH=.;d:\shared\lib\sqljdbc.jar;&nbsp;&nbsp;</strong></p>
<p>(注意：<font size="2">第一个&ldquo;.&rdquo;，这个代表当前目录。</font>)</p>
<p>&nbsp;</p>
<p><strong>第三步：编写一段简单的java程序。</strong></p>
<p>下面的这段程序使用驱动sqljdbc.jar连接SQL Server 2005数据库，并提取master数据库中的用户表的ID和name两列信息。</p>
<p>SQL Server 2005服务器在本机，端口为1433。登录sa的密码为：secret</p>
<p>执行：select id,name,crdate from dbo.sysobjects where type=&#39;U&#39;&nbsp;&nbsp; 这条语句返回当前数据库（这可在url中指定！）中的用户表的id和name列。<span id="more-1839"></span></p>
<blockquote>
<p>import java.sql.*; <br />
		import java.util.*;</p>
<p>		public class Conn2SQLServer {<br />
		&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String driverName = &quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot;;&nbsp;&nbsp;&nbsp;&nbsp; //加载JDBC驱动 <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(driverName).newInstance();<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String url = &quot;jdbc:sqlserver://localhost:1433;DatabaseName=master&quot;;//连接本机SQLServer服务器的master库，端口为默认的1433<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String userName = &quot;sa&quot;;&nbsp;&nbsp;&nbsp;&nbsp; //登录账号<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String userPwd = &quot;secret&quot;;&nbsp;&nbsp;&nbsp;&nbsp; //密码 <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection conn = DriverManager.getConnection(url, userName,userPwd);<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql = &quot;select id,name,crdate from dbo.sysobjects where type=&#39;U&#39;&quot;; // 表<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet rs = stmt.executeQuery(sql);<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (rs.next()) {<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(&quot;oject_id:&quot;+rs.getString(1)+&quot;,oject_name:&quot;+rs.getString(2)); // 取得第一列和第二列的值<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rs.close();<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stmt.close();<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; conn.close();<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
		&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace(); <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e.getMessage());<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
		&nbsp;&nbsp;&nbsp; }<br />
		}</p>
</blockquote>
<p>
	将上面这段代码保存到：d:\demo\Conn2SQLServer.java</p>
<p><strong>下载：<a href="https://www.dbainfo.net//wp-content/uploads/file/Conn2SQLServer.java" target="_blank">Conn2SQLServer.java </a></strong></p>
<p>&nbsp;</p>
<p><strong>第四步：编译java源文件为class文件</strong></p>
<p>Java编译器javac.exe的版本为：1.5.0_15</p>
<p><strong>javac.exe Conn2SQLServer.java</strong></p>
<p>&nbsp;</p>
<p><strong><span style="background-color: rgb(255, 255, 255);">第五步：执行java程序连接SQLServer 2005数据库，并显示查询结果<br />
	</span></strong></p>
<p>java程序的版本也是：1.5.0_15</p>
<p><strong>java Conn2SQLServer</strong></p>
<blockquote>
<p>d:\demo&gt;%jre%\bin\java Conn2SQLServer<br />
		oject_id:117575457,oject_name:spt_fallback_db<br />
		oject_id:133575514,oject_name:spt_fallback_dev<br />
		oject_id:149575571,oject_name:spt_fallback_usg<br />
		oject_id:1099150961,oject_name:spt_monitor<br />
		oject_id:1115151018,oject_name:spt_values<br />
		oject_id:1147151132,oject_name:MSreplication_options</p>
</blockquote>
<p><span style="color:#f00;"><span style="font-size: 16px;"><strong>备注：<br />
	</strong></span></span></p>
<p><span style="font-size:16px;"><strong>关于驱动程序的版本:<br />
	</strong></span></p>
<p>本例子中java编译器javac的版本为：1.5.0_15，所以使用的jdbc for sqlserver为：sqljdbc.jar。JRE6的话需要使用sqljdbc4.jar！</p>
<p>在java1.5.0_15环境下使用sqljdbc4.jar，报错：<span style="color:#f00;">Bad version number in .class file</span></p>
<blockquote>
<p>d:\demo&gt;set CLASSPATH=.;d:\shared\lib\sqljdbc4.jar;<br />
		d:\demo&gt;%jre%\bin\javac Conn2SQLServer.java<br />
		d:\demo&gt;%jre%\bin\java Conn2SQLServer<br />
		Exception in thread &quot;main&quot; java.lang.UnsupportedClassVersionError: Bad version number in .class file<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.defineClass1(Native Method)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.defineClass(ClassLoader.java:620)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URLClassLoader.access$100(URLClassLoader.java:56)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URLClassLoader$1.run(URLClassLoader.java:195)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.security.AccessController.doPrivileged(Native Method)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URLClassLoader.findClass(URLClassLoader.java:188)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:306)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:251)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.Class.forName0(Native Method)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.Class.forName(Class.java:164)<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at Conn2SQLServer.main(Conn2SQLServer.java:8)</p>
</blockquote>
<p>&nbsp;</p>
<p><span style="font-size:14px;"><strong>关于不同驱动程序的连接串：<br />
	</strong></span></p>
<p>在SQL Server 2000中加载驱动和URL路径的语句是：<br />
	String driverName = &quot;com.microsoft.jdbc.sqlserver.SQLServerDriver&quot;;<br />
	String dbURL = &quot;jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=master&quot;;<br />
	而SQL Server 2005中加载驱动和url的语句则为：<br />
	String driverName = &quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot;;<br />
	String dbURL = &quot;jdbc:sqlserver://localhost:1433;DatabaseName=master&quot;;&nbsp; <br />
	如果写法错误将会找不到驱动.</p>
<p><span style="font-size:14px;"><strong>SQL Server的身份验证方式：</strong></span></p>
<p>&nbsp;<strong>指定的多个 SQL Server 实例<br />
	</strong></p>
<p>SQL Server 2000 和 SQL Server 2005 允许在每台服务器上安装多个数据库实例。每个实例都由一个专用名称所标识。若要连接到 SQL Server 的命名实例，可以使用命名实例的端口号（首选），也可将实例名指定为 JDBC URL 属性或 datasource 属性。如果未指定实例名属性或端口号属性，则会创建与默认实例的连接。如以下实例所示：<br />
	若要使用端口号，请执行下列操作：<br />
	jdbc:sqlserver://localhost:1433;integratedSecurity=true;&lt;more properties as required&gt;;<br />
	若要使用 JDBC URL 属性，请执行下列操作：<br />
	jdbc:sqlserver://localhost;instanceName=instance1;integratedSecurity=true;&lt;more properties as required&gt;;</p>
<p><strong>转义连接 URL 中的值<br />
	</strong></p>
<p>由于包含特殊字符（如空格、分号和引号），所以必须转义连接 URL 值的某些部分。如果这些字符包含在大括号中，则 JDBC 驱动程序将支持对其进行转义。例如，{;} 将转义分号。转义的值可以包含特殊字符（特别是&ldquo;=&rdquo;、&ldquo;;&rdquo;、&ldquo;[]&rdquo;和空格），但不能包含大括号。应将必须进行转义且包含大括号的值添加到属性集中。注意： 大括号内的空白为常量，不能删除。</p>
<p><strong>本机集成身份验证模式<br />
	</strong></p>
<p>JDBC 驱动程序支持通过 integratedSecurity 连接字符串属性在 Windows 操作系统上使用&ldquo;类型 2&rdquo;集成身份验证。若要使用集成身份验证，请将sqljdbc_auth.dll 文件复制到计算机中 Windows 系统路径下的 JDBC 驱动程序安装目录中。<br />
	sqljdbc_auth.dll 文件的安装位置如下：&lt;安装目录&gt;\sqljdbc_&lt;版本&gt;\&lt;语言&gt;\auth\<br />
	注意： 如果使用 32 位处理器，请使用 x86 文件夹中的 sqljdbc_auth.dll 文件。如果使用 64 位处理器，请使用 x64 文件夹中的 sqljdbc_auth.dll 文件。<br />
	也可以通过设置 java.libary.path 系统属性来指定 sqljdbc_auth.dll 的目录，例如，如果 JDBC 驱动程序安装在默认目录中，您可以在 Java 应用程序启动时使用以下虚拟机 (VM) 参数来指定 DLL 的位置：<br />
	-Djava.library.path=C:\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_&lt;version&gt;\enu\auth\x86</p>
<p><span style="color:#f00;">注意要把Microsoft SQL Server JDBC Driver 2.0\sqljdbc_2.0\chs\auth\x86设到PATH中（32位机），不然会说sqljdbc_auth.dll找不到！<br />
	</span></p>
<p>JDBC 驱动程序支持使用具有连接属性集和 serverName 连接字符串属性的 IPv6 地址。连接字符串不支持在 IPv6 地址中使用初始 serverName 值，如 jdbc:sqlserver://serverName。使用 serverName 的名称而不是原始 IPv6 地址将适用于连接中的所有情况。</p>
<p><strong>使用 serverName 属性<br />
	</strong></p>
<p>jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;integratedSecurity=true;</p>
<p>	<strong>使用属性集</strong></p>
<p>Properties pro = new Properties();<br />
	pro.setProperty(&quot;serverName&quot;, &quot;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1&quot;);<br />
	Connection con = DriverManager.getConnection(&quot;jdbc:sqlserver://;integratedSecurity=true;&quot;, pro);<br />
	&nbsp;</p>
<p><span style="font-size:16px;"><span style="color: rgb(255, 0, 0);"><strong>参考：</strong></span></span></p>
<p><a href="http://hi.baidu.com/miuchen/blog/item/de4ac9a857d88ef71f17a27f.html" target="_blank">JDBC for SQLSERVER2005的使用</a></p>
<p><a href="http://hi.baidu.com/miuchen/blog/item/11ff7d3762013b3a0a55a9bb.html" target="_blank">XP上安装配置JDK，Tomcat，SqlServer2000和JDBC</a></p>
<p><a href="http://www.zhizhihu.com/html/y2010/2249.html" target="_blank">MS Sql 2000中字段text为空时的bug解决办法:sqljdbc4.jar</a></p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm">https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm">Java连接SQL Server数据库的一个简单例子</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2010-11-03 -- <a href="https://www.dbainfo.net/sql2005-direct-update-system-catalogs.htm" title="SQL2005 如何更新系统表">SQL2005 如何更新系统表</a> (2)</li><li>2010-09-28 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc2.htm" title="SQL SERVER中查看表占用空间的另外一种方法">SQL SERVER中查看表占用空间的另外一种方法</a> (0)</li><li>2010-09-17 -- <a href="https://www.dbainfo.net/java-connect-url-for-oracle-db2-sql-sybase-informix-mysql-pgsql.htm" title="java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL">java连接数据库Oracle,DB2,SQL Server,Sybase,Informix,MySQL,PostgreSQL</a> (0)</li><li>2010-09-15 -- <a href="https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm" title="Java连接Sybase ASE数据库的一个简单例子">Java连接Sybase ASE数据库的一个简单例子</a> (0)</li><li>2010-09-15 -- <a href="https://www.dbainfo.net/sql-server-database-all-tables-space-order-desc.htm" title="统计SQL SERVER数据库内所有表占用空间并排序">统计SQL SERVER数据库内所有表占用空间并排序</a> (0)</li><li>2010-09-06 -- <a href="https://www.dbainfo.net/sql-server-linked-server-summary.htm" title="SQL Server的链接服务器技术小结[转]">SQL Server的链接服务器技术小结[转]</a> (0)</li><li>2010-08-29 -- <a href="https://www.dbainfo.net/access-sqlserver-from-oracle-by-transgate.htm" title="从oracle内访问sqlserver2005的数据时一个错误">从oracle内访问sqlserver2005的数据时一个错误</a> (0)</li><li>2010-08-23 -- <a href="https://www.dbainfo.net/direct-modify-sqlserver-data-page-by-dbcc-writepage.htm" title="利用dbcc writepage命令修改SQL SQLSERVER中的物理页面上的内容">利用dbcc writepage命令修改SQL SQLSERVER中的物理页面上的内容</a> (3)</li><li>2010-08-17 -- <a href="https://www.dbainfo.net/sql-server-io-requests-taking-longer-than-15-seconds-to-complete-on-file.htm" title="[SQL SERVER] I/O requests taking longer than 15 seconds to complete on file">[SQL SERVER] I/O requests taking longer than 15 seconds to complete on file</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/java-connect-to-sqlserver-demo.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java连接Sybase ASE数据库的一个简单例子</title>
		<link>https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm</link>
		<comments>https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm#comments</comments>
		<pubDate>Wed, 15 Sep 2010 09:29:11 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[jdbc]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=301</guid>
		<description><![CDATA[演示在用java连接Sybase ASE数据库。用了一个简单的java程序作试验。 第一步：获得jdbc for sybase驱动程序 下载JDBC驱动：http://www.sybase.com/detail?id=1009726 也可到CSDN下载：http://download.csdn.net/source/2697077 有jConnect6.05和jConnect5.5两种。jConnect6.05中包含jconn3.jar包，jConnect5.5中包含jconn2.jar包。建议最新的Sybase驱动jconn3.jar。不过我的这个例子很简单，两者都可以用。 下载：jconn3.jar ，下载：jconn2.jar 第二步：设置环境变量CLASSPATH 将下载下来的jconn2.jar或jconn3.jar放到目录D:\sybase\Shared\lib下。将环境变量CLASSPATH设置为：D:\sybase\Shared\lib\jconn2.jar set CLASSPATH=.;d:\sybase\shared\lib\jconn2.jar;&#160;&#160; (注意：第一个&#8220;.&#8221;，这个代表当前目录。) 第三步：编写一段简单的java程序。 下面的这段程序用jconn2.jar连接Sybase ASE15.0.3数据库并提取master数据库中的用户表的ID和name两列信息。 Sybase ASE数据库的ip地址为：192.168.0.168，端口：5000。登录sa的密码为：sybase 执行：select id,name,crdate from dbo.sysobjects where type=&#39;U&#39;&#160;&#160; 这条语句返回当前数据库（这在url中指定！）中的用户表的id和name列。 import java.sql.*; import java.util.*; public class Conn2ASE { &#160;&#160;&#160; public static void main(String[] args) { &#160;&#160;&#160;&#160;&#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Class.forName(&#34;com.sybase.jdbc2.jdbc.SybDriver&#34;).newInstance(); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String url = &#34;jdbc:sybase:Tds:192.168.0.168:5000/master&#34;;// 数据库名 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Properties [...]]]></description>
			<content:encoded><![CDATA[<p>演示在用java连接Sybase ASE数据库。用了一个简单的java程序作试验。</p>
<p><strong>第一步：获得jdbc for sybase驱动程序</strong><br />
	下载JDBC驱动：<a href="http://www.sybase.com/detail?id=1009726" target="_blank">http://www.sybase.com/detail?id=1009726</a></p>
<p>也可到CSDN下载：<a href="http://download.csdn.net/source/2697077" target="_blank">http://download.csdn.net/source/2697077</a><br />
	有jConnect6.05和jConnect5.5两种。jConnect6.05中包含jconn3.jar包，jConnect5.5中包含jconn2.jar包。建议最新的Sybase驱动jconn3.jar。不过我的这个例子很简单，两者都可以用。</p>
<p><strong>下载：<a href="https://www.dbainfo.net//wp-content/uploads/file/jconn3.jar" target="_blank">jconn3.jar</a> ，下载：<a href="https://www.dbainfo.net//wp-content/uploads/file/jconn2.jar" target="_blank">jconn2.jar</a></strong></p>
<p><strong>第二步：设置环境变量CLASSPATH</strong></p>
<p>将下载下来的jconn2.jar或jconn3.jar放到目录D:\sybase\Shared\lib下。将环境变量CLASSPATH设置为：D:\sybase\Shared\lib\jconn2.jar</p>
<p>set CLASSPATH=.;d:\sybase\shared\lib\jconn2.jar;&nbsp;&nbsp; (注意：<font size="2">第一个&ldquo;.&rdquo;，这个代表当前目录。</font>)</p>
<p><strong>第三步：编写一段简单的java程序。</strong></p>
<p>下面的这段程序用jconn2.jar连接Sybase ASE15.0.3数据库并提取master数据库中的用户表的ID和name两列信息。</p>
<p>Sybase ASE数据库的ip地址为：192.168.0.168，端口：5000。登录sa的密码为：sybase</p>
<p>执行：select id,name,crdate from dbo.sysobjects where type=&#39;U&#39;&nbsp;&nbsp; 这条语句返回当前数据库（这在url中指定！）中的用户表的id和name列。<span id="more-301"></span></p>
<blockquote><p>import java.sql.*;<br />
	import java.util.*;</p>
<p>	public class Conn2ASE {<br />
	&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(&quot;com.sybase.jdbc2.jdbc.SybDriver&quot;).newInstance();<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String url = &quot;jdbc:sybase:Tds:192.168.0.168:5000/master&quot;;// 数据库名<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Properties sysProps = System.getProperties();<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sysProps.put(&quot;user&quot;, &quot;sa&quot;); // 设置数据库访问用户名<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sysProps.put(&quot;password&quot;, &quot;sybase&quot;); // 密码<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection conn = DriverManager.getConnection(url, sysProps);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sql = &quot;select id,name,crdate from dbo.sysobjects where type=&#39;U&#39;&quot;; // 表<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet rs = stmt.executeQuery(sql);<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (rs.next()) {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;oject_id:&quot;+rs.getString(1)+&quot;,oject_name:&quot;+rs.getString(2)); // 取得第二列的值<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stmt.close();<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e.getMessage());<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
	&nbsp;&nbsp;&nbsp; }<br />
	}</p></blockquote>
<p>
	将上面这段代码保存到：d:\sybase\shared\demo\Conn2ASE.java</p>
<p><strong>下载：<a href="https://www.dbainfo.net//wp-content/uploads/file/Conn2ASE.java">Conn2ASE.java </a></strong></p>
<p><strong>第四步：编译java源文件为class文件</strong></p>
<blockquote>
<p>Java编译器javac.exe的版本为：1.5.0_15</p>
<p>javac.exe Conn2ASE.java</p>
</blockquote>
<p><span style="background-color: rgb(211, 211, 211);">C:\Documents and Settings\Administrator&gt;cd /d d:\sybase\shared\demo</p>
<p>	D:\sybase\Shared\demo&gt;set CLASSPATH=.;d:\sybase\shared\lib\jconn2.jar;</p>
<p>	D:\sybase\Shared\demo&gt;D:\sybase\WorkSpace\JDK1.5.0_15\bin\javac.exe Conn2ASE.jav<br />
	a</p>
<p>	D:\sybase\Shared\demo&gt;dir<br />
	&nbsp;驱动器 D 中的卷没有标签。<br />
	&nbsp;卷的序列号是 24C3-2A76</p>
<p>	&nbsp;D:\sybase\Shared\demo 的目录</p>
<p>	2010-09-15&nbsp; 17:08&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br />
	2010-09-15&nbsp; 17:08&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ..<br />
	2010-09-15&nbsp; 17:08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,683 Conn2ASE.class<br />
	2010-09-15&nbsp; 17:02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,107 Conn2ASE.java<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 个文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2,790 字节<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 个目录 18,468,270,080 可用字节<br />
	</span></p>
<p><strong><span style="background-color: rgb(255, 255, 255);">第五步：执行java程序连接Sybase ASE数据库，并显示查询结果<br />
	</span></strong></p>
<blockquote>
<p>java程序的版本也是：1.5.0_15</p>
<p>java Conn2ASE</p>
</blockquote>
<p><span style="background-color: rgb(211, 211, 211);">D:\sybase\Shared\demo&gt;java Conn2ASE<br />
	oject_id:960003420,oject_name:spt_values<br />
	oject_id:992003534,oject_name:spt_monitor<br />
	oject_id:1040003705,oject_name:spt_limit_types<br />
	oject_id:1088003876,oject_name:syblicenseslog<br />
	oject_id:1120003990,oject_name:spt_ijdbc_table_types<br />
	oject_id:1152004104,oject_name:spt_ijdbc_mda<br />
	oject_id:1200004275,oject_name:spt_ijdbc_conversion<br />
	oject_id:1232004389,oject_name:ijdbc_function_escapes<br />
	oject_id:1440005130,oject_name:monTables<br />
	oject_id:1472005244,oject_name:monTableParameters<br />
	oject_id:1504005358,oject_name:monTableColumns<br />
	oject_id:1536005472,oject_name:monState<br />
	oject_id:1568005586,oject_name:monEngine<br />
	oject_id:1600005700,oject_name:monDataCache<br />
	oject_id:1632005814,oject_name:monProcedureCache<br />
	oject_id:1664005928,oject_name:monProcedureCacheMemoryUsage<br />
	oject_id:1696006042,oject_name:monProcedureCacheModuleUsage<br />
	oject_id:1728006156,oject_name:monOpenDatabases<br />
	oject_id:1760006270,oject_name:monSysWorkerThread<br />
	oject_id:1792006384,oject_name:monNetworkIO<br />
	oject_id:1824006498,oject_name:monErrorLog<br />
	oject_id:1856006612,oject_name:monLocks<br />
	oject_id:1888006726,oject_name:monDeadLock<br />
	oject_id:1920006840,oject_name:monWaitClassInfo<br />
	oject_id:1952006954,oject_name:monWaitEventInfo<br />
	oject_id:1984007068,oject_name:monCachedObject<br />
	oject_id:2016007182,oject_name:monCachePool<br />
	oject_id:2048007296,oject_name:monOpenObjectActivity<br />
	oject_id:2080007410,oject_name:monIOQueue<br />
	oject_id:2112007524,oject_name:monDeviceIO<br />
	oject_id:2144007638,oject_name:monSysWaits<br />
	oject_id:28524104,oject_name:monProcess<br />
	oject_id:60524218,oject_name:monProcessLookup<br />
	oject_id:92524332,oject_name:monProcessActivity<br />
	oject_id:124524446,oject_name:monProcessWorkerThread<br />
	oject_id:156524560,oject_name:monProcessNetIO<br />
	oject_id:188524674,oject_name:monProcessObject<br />
	oject_id:220524788,oject_name:monProcessWaits<br />
	oject_id:252524902,oject_name:monProcessStatement<br />
	oject_id:284525016,oject_name:monSysStatement<br />
	oject_id:316525130,oject_name:monProcessSQLText<br />
	oject_id:348525244,oject_name:monSysSQLText<br />
	oject_id:380525358,oject_name:monCachedProcedures<br />
	oject_id:412525472,oject_name:monProcessProcedures<br />
	oject_id:444525586,oject_name:monSysPlanText<br />
	oject_id:476525700,oject_name:monOpenPartitionActivity<br />
	oject_id:508525814,oject_name:monLicense<br />
	oject_id:540525928,oject_name:monStatementCache<br />
	oject_id:572526042,oject_name:monCachedStatement<br />
	oject_id:604526156,oject_name:monPCIBridge<br />
	oject_id:636526270,oject_name:monPCISlots<br />
	oject_id:668526384,oject_name:monPCIEngine<br />
	oject_id:700526498,oject_name:monSQLRepActivity<br />
	oject_id:732526612,oject_name:monSQLRepMisses<br />
	oject_id:764526726,oject_name:spt_jdbc_table_types<br />
	oject_id:796526840,oject_name:spt_mda<br />
	oject_id:844527011,oject_name:spt_jtext<br />
	oject_id:908527239,oject_name:spt_jdbc_conversion<br />
	oject_id:940527353,oject_name:jdbc_function_escapes<br />
	oject_id:1100527923,oject_name:pbcattbl<br />
	oject_id:1148528094,oject_name:pbcatcol<br />
	oject_id:1196528265,oject_name:pbcatfmt<br />
	oject_id:1244528436,oject_name:pbcatvld<br />
	oject_id:1276528550,oject_name:pbcatedt<br />
	oject_id:1468529234,oject_name:test</p>
<p>	</span></p>
<p>上面演示时用到的jconn2.jar换成jconn3.jar也是一样的。</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm">https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm">Java连接Sybase ASE数据库的一个简单例子</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2019-04-12 -- <a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm" title="Sybase ASE及SQL Anywhere数据库修复专家">Sybase ASE及SQL Anywhere数据库修复专家</a> (0)</li><li>2015-01-16 -- <a href="https://www.dbainfo.net/one-way-to-recover-master-configuration-area.htm" title="master数据库配置区域(configuration area)损坏的一种修复方法">master数据库配置区域(configuration area)损坏的一种修复方法</a> (1)</li><li>2014-10-10 -- <a href="https://www.dbainfo.net/ase-object-name-length-limit.htm" title="ASE对象名称长度限制">ASE对象名称长度限制</a> (0)</li><li>2014-06-09 -- <a href="https://www.dbainfo.net/count_all_tables_rowcount.htm" title="统计用户数据库内所有表的行数">统计用户数据库内所有表的行数</a> (0)</li><li>2013-11-19 -- <a href="https://www.dbainfo.net/showplan_html_format.htm" title="以HTML格式显示ASE查询计划">以HTML格式显示ASE查询计划</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation5.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作">Sybase ASE 15.0.3 for windows平台安装文档 – 5、安装后的配置工作</a> (1)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation4.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务">Sybase ASE 15.0.3 for windows平台安装文档 – 4、安装Sybase数据库服务</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation3.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3">Sybase ASE 15.0.3 for windows平台安装文档 – 3、升级到 Sybase 15.0.3 ESD #3</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation2.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 2、安装Sybase ASE程序">Sybase ASE 15.0.3 for windows平台安装文档 – 2、安装Sybase ASE程序</a> (0)</li><li>2013-11-11 -- <a href="https://www.dbainfo.net/ase-15-0-3-for-windows-installation1.htm" title="Sybase ASE 15.0.3 for windows平台安装文档 – 1、安装前的准备工作">Sybase ASE 15.0.3 for windows平台安装文档 – 1、安装前的准备工作</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/java-connect-to-sybase-ase-demo.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
