DBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。它由一些Java语言写的类、界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现"WriteOnce,RunEverywhere!"
Java具有健壮、安全、易用等特性,而且支持自动网上下载,是一种很好的与数据库线连接而使用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。
JDBC扩展了Java的能力,如使用Java和JDBCAPI就可以公布一个Web页,页中带有能访问远端数据库的Applet。或者企业可以通过JDBC让全部的职工(他们可以使用不同的操作系统,如Windwos,Machintosh或UNIX)在Intranet上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。
2.2.4 用JDBC访问数据库
所有的数据库的对象和方法都在java.sql.* 里面,所以首先要import java.sql.*,要想连接数据库,首先要将驱动程序调入。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");这是JDBC-ODBC 的驱动程序。
要想连接一个指定的数据库,必须创建Connection类的一个实例。
String url = "jdbc:odbc:Grocery prices";
Connection con = DriverManager.getConnection(url);
注意在此用到的数据库名称是在ODBC设置控制面板中输入的数据资源名。URL语法对于不同类型的数据库会很不一样。 语法是这样的: jdbc:subprotocol:subname 开头都是JDBC,后面是子协议,然后是ODBC名称。
若要使用纯JDBC驱动程序,必须安装第三方软件提供的驱动程序,一般在数据库的官方网站上可以找到这里不做讨论。
本系统采用JDBC-ODBC的驱动程序连接数据库,并使用JavaBean组件,有效的避免了代码的重复,具体过程如下:
package exam;
import java.sql.*;
public class ExamBean {
String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; //JDBC-ODBC驱动程序
String strDBUrl="jdbc:odbc:exam";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
//
public ExamBean() {
try {
Class.forName(strDBDriver);
}
//
catch(java.lang.ClassNotFoundException e){
System.err.println("exam():"+e.getMessage());
}
}
//
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(strDBDriver); //创建数据库连接对象 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//支持数据回滚
rs=stmt.executeQuery(sql);
}catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
//
public void executeUpdate(String sql){
stmt=null;
try{
conn=DriverManager.getConnection(strDBDriver);
stmt=conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}catch(SQLException ex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
上一篇:
网上招聘求职系统开题报告(word文档)
下一篇:
西班牙语医院科室名称