Java通过JDBC-ODBC连接SQL Server数据库实战

需积分: 12 15 下载量 81 浏览量 更新于2024-12-19 4 收藏 11KB TXT 举报
"Java程序通过JDBC来操作数据库,包括通过ODBC桥接器和直接使用JDBC驱动两种方式。本文以SQL Server 2000为例,详细介绍了使用JDBC-ODBC桥连接数据库的过程,包括ODBC数据源设置、Java代码示例以及异常处理。" 在Java中,与数据库进行交互主要依赖于Java Database Connectivity (JDBC) API。JDBC允许Java程序以统一的方式访问各种类型的数据库,无论是SQL Server、Oracle、MySQL还是其他数据库。JDBC提供了两种主要的数据库访问方式:一是通过ODBC桥接器,二是直接使用数据库特定的JDBC驱动。 首先,通过ODBC桥接器的访问方式如下: 1. 安装并配置ODBC数据源,指定数据库类型、DSN(数据源名称)、服务器、用户名和密码。 2. Java程序通过`java.sql.DriverManager`类加载ODBC桥接器驱动,例如`sun.jdbc.odbc.JdbcOdbcDriver`。 3. 使用`DriverManager.getConnection()`方法,传入ODBC数据源的URL(如`jdbc:odbc:sqlserver`)和认证信息来建立连接。 4. 创建`java.sql.Connection`对象,并使用它创建`Statement`或`PreparedStatement`,执行SQL查询、插入、更新和删除操作。 5. 最后,确保正确关闭`ResultSet`、`Statement`和`Connection`,以释放资源。 例如,以下是一个简单的Java程序,使用JDBC-ODBC桥连接SQL Server数据库并执行CRUD操作: ```java import java.sql.*; public class InsertCoffees { public static void main(String[] args) { String url = "jdbc:odbc:sqlserver"; Connection con; Statement stmt; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { System.err.println("ClassNotFoundException: " + e.getMessage()); } try { con = DriverManager.getConnection(url, "sa", ""); stmt = con.createStatement(); // 创建表 stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL, siteurl varchar (50) NULL)"); // 插入数据 stmt.executeUpdate("INSERT INTO col_link VALUES ('ASP中华网', 'http://www.aspcn.com')"); stmt.executeUpdate("INSERT INTO col_link VALUES ('永远到底有多远', 'http://xuankong.com')"); // 更新数据 stmt.executeUpdate("UPDATE col_link SET siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' WHERE siteurl='http://xuankong.com'"); // 查询数据 ResultSet rs = stmt.executeQuery("SELECT * FROM col_link"); System.out.println("Col_link表中的数据如下(原始数据)"); System.out.println("站点名"+" "+"站点地址"); System.out.println("---------------"+" "+"----------------"); while (rs.next()) { String s = rs.getString("sitename"); String f = rs.getString("siteurl"); System.out.println(s + " " + f); } stmt.close(); con.close(); } catch (SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } } } ``` 第二种方式是直接使用数据库供应商提供的JDBC驱动,这种方式不需要ODBC中间层,更高效且便于移植。数据库供应商通常会提供适用于JDBC的驱动程序,比如SQL Server的JDBC驱动(Microsoft SQL Server JDBC Driver)。通过这种方式,Java可以直接调用数据库特定的API,无需依赖ODBC,更适合在网络环境中运行的Java应用,如Applet。 总结来说,Java通过JDBC提供了一种灵活且强大的方式来操作数据库,无论数据库类型如何,都能实现标准的数据库访问,提高了开发的效率和应用程序的可移植性。