太平洋电脑信息网 - 网络学院 - 开发教室023.htm

来自「《太平洋网络教程java》是一本不错的关于Java的书」· HTM 代码 · 共 236 行 · 第 1/2 页

HTM
236
字号
	{
	Class.forName("Sun.jdbc.odbc.JdbcOdbcDriver");
theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);
		theStatus.setText("Status:OK");
	}
	catch (Exception e)
		{
		handleException(e);
		}
	}
</PRE>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包含数据源名称的字符串格式为一个特殊的语句:</P>
      <P>jdbc:&lt;subpotocol&gt;:&lt;subname&gt;</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;协议 名jdbc必须提供,子协议和子名称根据使用数据源类型而变化。<BR>JDBC 
      DriverManager使用子协议来选择书记源响应的驱动程序。子协议<BR>的通常值为“odbc”和“oracle“,子名称包含了该驱动程序使用的附加<BR>信息。通常情况,该子名称是某个网络名称,例如,用于其它Web服务:</P>
      <P>jdba:&lt;subpotocol&gt;://&lt;host.domin&gt;&lt;port&gt;/&lt;databasename&gt;</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;驱动程序的说明应该指定子协议和子名称的正确形式。使用ODBC时,主机<BR>和端口信息没有必要提供,因为数据源总是配置在本地主机上。用于ODBC数据源的形式是&nbsp;</P>
      <P>jdbc:odbc:&lt;data source name&gt;</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;为了打开数据库连接,用户必须使用具体的驱动程序另外,驱动程序应该指<BR>定如何这样做。如果正在使用JDBC-ODBC桥程序,那么可以通过使用名为Class类<BR>的forName()方法来使用具体的JDBC-ODBC桥驱动程序。</P>
      <P>class.forName("sun.jdbc.JdbcOdbcDriver");</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;然后,拥护可以告诉rManager打开数据源的连接,使用下列方法:</P>
      <P>theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;getConnection()方法返回一个Connection对象,用户应该保存这个对象,<BR>因为它是访问数据源的方法。这里,该对象保存到名为theConnection的字段中。</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;如果在打开连接过程中出现错误,则SQLexception作废,通过在try-catch<BR>块内打开连接的语句,拥护可以处理这种异常。通过使用后面要讲的handleException(),<BR>在TextField内显示一个简短的相应信息。 
      </P>
      <P>4)执行SQL命令</P><PRE>public void execSQLCommand(String command)
{
	try{
		theStatement=theConnection.createStatement();
		theResult=theStatement.executeQuery (command);
		theMetaData=theResult.getMetaData ();
		int columnCount=theMetaData.getColumnCount ();
		theVisits.setText("");
		while(theResult.next ())
		{
			for(int i =1;i&lt;=columnCount;i++)
			{
				String colValue=theResult.getString(i);
				if(colValue==null)colValue="";
				theVisits.append (colValue+";");
			}
			theVisits.append ("\n");
		}
	}catch(Exception e)
	{
		handleException(e);
	}
}</PRE>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;为了执行该命令,程序使用Connection对象的createStatement()方法创建<BR>一个可以有查询的Statement。然后,它激活Statement对象的executiveQuery()<BR>方法,用来传递包含SQL查询语句的字符串。从init()中传送过来的参数——<BR>Slect 
      * from 
      MyTable是一个简单的数据库查询语言,如果你还不知道什么意思,<BR>那么请你还是查看一本有关数据库的书吧,这些内容很多,不是我这儿一下子能说<BR>清楚的了。它的意思简单的说,就是查找表——MyTable中的所有(*)信息。它会<BR>返回数据库中的所有内容,并把它作为ResultSet访问的结果。接着该程序激活ResultSet<BR>对象的getMetaData()方法。这时,返回一个ResultSetMetaData值,该值存储在<BR>一个称为theMetaData的变量中。使用ResultSetMetaData对象,可以获得很多有用的<BR>数据;这里该程序使用getColumnCount()方法获得结果表中列的数量。最后,该程序反<BR>复使用该结果表,激活theResult的next()方法获得结果表中的每一条记录,只到该方法<BR>使用完全部记录返回flase为止。</P>
      <P>5)关闭数据库连接</P><PRE>public void closeConnection()
	{
	try{
		theConnection.close ();
		}
		catch(Exception e)
		{
		handleException(e);
		}
	}</PRE>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;当用户访问完某个数据库时,应该关闭数据库连接,释放与连接有关的资源。用户创建<BR>的任何打开的ResultSet或者Statement对象将 
      自动关闭。另外,在关闭连接时可能发<BR>生一个SQLException,也放到后面处理。</P>
      <P>6)处理异常和错误</P><PRE>public void handleException(Exception e)
	{
	theStatus.setText("Error:"+e.getMessage ());
	e.printStackTrace ();
	if(e instanceof SQLException)
		{
		while((e=((SQLException)e).getNextException ())!=null)
		 {
				System.out.println(e);
			}
		}
	}</PRE>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;handleException()方法用来处理以上的错误和异常。该方法设置状态TextField包含与<BR>异常有关的错误消息,使用getMessage()方法获得该消息。它还可以在System.out打印<BR>堆栈轨迹。 
      </P>
      <P>三 安装ODBC数据源</P>
      <P>为了运行这个应用程序,用户必须 首先创建一个与MyTable数据库相对应的 
      ODBC数据源。<BR>为了通过ODBC使用Access,用户必须安装Access 
      Odbc驱动程序。如果用户没有安装该驱动<BR>程序,那么还是先安装吧,什么,不会,不会也不行了,找一本书好好看看吧,这是肯定要<BR>看的。我这儿简单的给你说一下吧:</P>
      <P>1.从控制面板中选择ODBC-32,双击(要是没有这个图标,那我真的没有办法了,它在安装<BR>数据库的时候,应该会安装上的,否则就只能找一张数据库系统的安装盘,找到ODBC驱动程<BR>序进行安装)。</P>
      <P>2.单击添加,选择Microsoft Access 
      Driver。(如果这个图标也没有,那么你的机器是严<BR>重缺乏营养,赶紧装数据库必须的软件,先装Access,这儿要用)</P>
      <P>3.输入你要使用的数据源的名称(如果没有,那就得先创建,我这儿就不说Access的使用方<BR>法了)。描述就随便你了。</P>
      <P>4.单击选择按钮选择你已经创建好了的Access数据库的文件。</P>
      <P>5.点确定就可以了。如果你想为你数据库保密的话,可以加上用户名和密码。(在高级选项里面)。</P>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要说明一点的是,如果你用VJ++编辑的此程序,要是运行不了,那就是数据库的连接没有设<BR>置好,怎么将数据库设计好,以后再说吧。另外,VJ++有它自己的数据库驱动程序。很适合与<BR>VJ++一起使用,可惜介绍这方面的书好象不是很多。</P>
      <P align=center><A 
      href="http://wwwb.pconline.com.cn/pcedu/empolder/java/06/13.htm">[上一页]</A></P><!-- #EndEditable -->
      <TABLE width="100%" border=0>
        <TBODY>
        <TR class=sfont>
          <TD>
            <DIV align=center><A href="javascript:history.go(-1)">[返回]</A> 
          </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<HR width=760 noShade SIZE=2>

<DIV align=center>
<P align=center><FONT color=#000000>
<SCRIPT language=JavaScript 
src="太平洋电脑信息网 - 网络学院 - 开发教室023.files/title_edu.js"></SCRIPT>
</FONT><BR><BR>版权所有&copy;2000 太平洋电脑网<BR><FONT face="Arial, Helvetica, sans-serif">
<SCRIPT>document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?exp target=_blank><img src=http://best.netease.com/cgi-bin/log.cgi?user=exp&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 alt='网易中文排行榜' width=1 height=1></a>");</SCRIPT>
<A href="mailto:webmaster@pconline.com.cn"></A></FONT><FONT 
face="Arial, Helvetica, sans-serif"><A 
href="mailto:webmaster@pconline.com.cn">webmaster@pconline.com.cn</A></FONT><FONT 
face="Arial, Helvetica, sans-serif"><A href="mailto:webmaster@pconline.com.cn">
<SCRIPT language="">document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?pconline1 target=_blank><img src=http://best.netease.com/cgi-bin/log.cgi?user=pconline1&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 width=1 height=1 ></a>");</SCRIPT>
 </A>
<SCRIPT language="">document.write("<a href=http://count5.pconline.com.cn/newcount/admin/index.php target=_blank><img src=http://count5.pconline.com.cn/newcount/count.php?namecode=others&subnamecode=page&screen="+screen.width+"*"+screen.height+"&refer="+escape(document.referrer)+" border=0 width=0 height=0 alt= ></a>");</SCRIPT>
</FONT></P></DIV><!-- #EndTemplate --></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?