//JDBCExp.java
import java.sql.*;
import java.awt.*;
public class JdbcExp
{
public static void main(String args[])
{
String url="jdbc:odbc:jbook";
Connection con=null;
Statement sm=null;
ResultSet rs=null;
try
{
Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver");//sun.jdbc.odbc.JdbcOdbcDriver
}
catch(Exception e)
{
System.out.println("Can NOT load the JDBC-ODBC Bridge Driver");
return;
}
try
{
con=DriverManager.getConnection(url);
sm=con.createStatement();
rs=sm.executeQuery("select * from jbook");
System.out.println("The result are followed: ");
while(rs.next())
{
System.out.println("Index="+rs.getInt(1));
System.out.println("BookID="+rs.getInt(2));
System.out.println("Title="+rs.getString(3));
System.out.println("Date="+rs.getTime(4));
}
}
catch(SQLException e){}
finally
{
try
{
rs.close();
sm.close();
con.close();
}
catch(SQLException e){}
}
}
} 1.建立数据源
这里所建的数据源是指建立ODBC数据源,这点并不是JDBC要求,而是ODBC的要求所必须的.当使用JDBC-ODBC桥来建立连接是,必须先建立ODBC数据源.
2.装入JDBC程序
要使用JDBC访问数据库,首先必须加载JDBC驱动程序.只需一句代码.如果你的class name 是jdbc.DriverXYZ,那么你就把代码写成:Class.forName("jdbc.DriverXYZ");对于JDBC-ODBC桥来说,如果他的class name 是sun.jdbc.odbc.JdbcOdbcDriver,实际代码就可以写成:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
当然,在不同的环境中,驱动程序的类可能包含在不同的包里,比如在visual J++6.0中,JDBC-ODBC桥的驱动程序就包含在com.ms.jdbc.odbc包中,因此,其代码就写成了:Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver");
3.建立连接
建立连接的标准方法是调用方法DriverManager.getConnection(String url,String user,String password).DriverManager类用于处理驱动程序的调如并且对新的数据库连接提供支持,它位于JDBC的管理层,通过该类,能够连接到URL表示的数据库的驱动程序.JDBC URL的标准语法是:jdbc:
,其中subprotocol说明了使用哪种JDBC驱动程序,比如若使用的是JDBC-ODBC桥,就写为"odbc",若使用的是Sybase的JDBC驱动程序,就写"Sybase";subname则为驱动程序提供了连接数据库所需要的一切信息,比如jdbc:Sybase://jdbcstudy:4233/db_books,表示使用Sybase JDBC驱动程序,且连接安装在名为jdbcstudy的服务器的4233端口的db_books数据库中.对于JDBC-ODBC桥来说,subname就是数据源名.
为了存取数据,还需要提供用户名和口令.例如:
String url="jdbc:odbc:source";
Connection con=DriverManager.getConnection(url,"user","password");
4.执行SQL语句
建立连接后,就能够向数据库发送SQL语句了.JDBC提供了Statement类来发送SQL语句,Statement类的对象用createStatement方法创建;SQL语句发送后,返回的结果通常存放在一个ResultSet类的对象中,ResultSet可以看做是一个表,这个表包含由SQL返回的列名和相应的值,ResultSet对象中维持了一个指向当前行的指针,通过一系列的getXXX方法,可以检索当前行的各个列,并显示出来.
5.检索结果
对Result对象进行处理后,才能将查询结果显示给用户.Result对象包括一个由查询语句返回的一个表ResultSet,这个表中包含了所有的查询结果.对Result对象的处理必须逐行进行,ResultSet.next()方法使指针下移一行.而对每一行中的各个列,则可以按任何顺序进行处理.Result类的getXXX方法可将结果集中的SQL数据类型转换为Java数据类型,如getInt,getString,getTime.
6关闭连接
在对象使用完毕后,应当关闭连接.