JDBC 入门(二)
程序员文章站
2024-02-25 09:45:22
你需要做的第一事情是你与想要使用的 dbms 建立一个连接。这包含 2 个步骤:装载驱动程序并建立连接。 装载驱动程序 装载驱动程序只需要非常简单的一行代码。例如,你想...
你需要做的第一事情是你与想要使用的 dbms 建立一个连接。这包含 2 个步骤:装载驱动程序并建立连接。
装载驱动程序
装载驱动程序只需要非常简单的一行代码。例如,你想要使用 jdbc-odbc 桥驱动程序, 可以用下列代码装载它:
class.forname("sun.jdbc.odbc.jdbcodbcdriver");
你的驱动程序文档将告诉你应该使用的类名。例如, 如果类名是 jdbc.driverxyz ,你将用代码以下的代码装载驱动程序:
class.forname("jdbc.driverxyz");
你不需要创建一个驱动程序类的实例并且用 drivermanager 登记它,因为调用 class.forname 将自动将加载驱动程序类。如果你曾自己创建实例,你将创建一个不必要的副本,但它不会带来什么坏处。
加载 driver 类后,它们即可用来与数据库建立连接。
建立连接
第二步就是用适当的驱动程序类与 dbms 建立一个连接。下列代码是一般的做法:
connection con = drivermanager.getconnection(url, "mylogin", "mypassword");
这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 jdbc-odbc 桥, jdbc url 将以 jdbc:odbc 开始:余下 url 通常是你的数据源名字或数据库系统。因此,假设你正在使用 odbc 存取一个叫 "fred" 的 odbc 数据源,你的 jdbc url 是 jdbc:odbc:fred 。把 "mylogin" 及 "mypassword" 替换为你登陆 dbms 的用户名及口令。如果你登陆数据库系统的用户名为 "fernanda" 口令为 "j8",只需下面的 2 行代码就可以建立一个连接:
string url = "jdbc:odbc:fred";
connection con = drivermanager.getconnection(url,"fernanda", "j8");
如果你使用的是第三方开发了的 jdbc驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 jdbc url 中放在 jdbc 后面的部分。例如, 如果驱动程序开发者注册了 acme 作为 subprotocol, jdbc url 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 jdbc url 的格式。jdbc url 最后一部分提供了定位数据库的信息。
如果你装载的驱动程序识别了提供给 drivermanager.getconnection 的 jdbc url ,那个驱动程序将根据 jdbc url 建立一个到指定 dbms 的连接。正如名称所示,drivermanager 类在幕后为你管理建立连接的所有细节。除非你是正在写驱动程序,你可能无需使用此类的其它任何方法,一般程序员需要在此类中直接使用的唯一方法是 drivermanager.getconnection。
drivermanager.getconnection 方法返回一个打开的连接,你可以使用此连接创建 jdbc statements 并发送 sql 语句到数据库。在前面的例子里,con 对象是一个打开的连接,并且我们要在以后的例子里使用它。
装载驱动程序
装载驱动程序只需要非常简单的一行代码。例如,你想要使用 jdbc-odbc 桥驱动程序, 可以用下列代码装载它:
class.forname("sun.jdbc.odbc.jdbcodbcdriver");
你的驱动程序文档将告诉你应该使用的类名。例如, 如果类名是 jdbc.driverxyz ,你将用代码以下的代码装载驱动程序:
class.forname("jdbc.driverxyz");
你不需要创建一个驱动程序类的实例并且用 drivermanager 登记它,因为调用 class.forname 将自动将加载驱动程序类。如果你曾自己创建实例,你将创建一个不必要的副本,但它不会带来什么坏处。
加载 driver 类后,它们即可用来与数据库建立连接。
建立连接
第二步就是用适当的驱动程序类与 dbms 建立一个连接。下列代码是一般的做法:
connection con = drivermanager.getconnection(url, "mylogin", "mypassword");
这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 jdbc-odbc 桥, jdbc url 将以 jdbc:odbc 开始:余下 url 通常是你的数据源名字或数据库系统。因此,假设你正在使用 odbc 存取一个叫 "fred" 的 odbc 数据源,你的 jdbc url 是 jdbc:odbc:fred 。把 "mylogin" 及 "mypassword" 替换为你登陆 dbms 的用户名及口令。如果你登陆数据库系统的用户名为 "fernanda" 口令为 "j8",只需下面的 2 行代码就可以建立一个连接:
string url = "jdbc:odbc:fred";
connection con = drivermanager.getconnection(url,"fernanda", "j8");
如果你使用的是第三方开发了的 jdbc驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 jdbc url 中放在 jdbc 后面的部分。例如, 如果驱动程序开发者注册了 acme 作为 subprotocol, jdbc url 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 jdbc url 的格式。jdbc url 最后一部分提供了定位数据库的信息。
如果你装载的驱动程序识别了提供给 drivermanager.getconnection 的 jdbc url ,那个驱动程序将根据 jdbc url 建立一个到指定 dbms 的连接。正如名称所示,drivermanager 类在幕后为你管理建立连接的所有细节。除非你是正在写驱动程序,你可能无需使用此类的其它任何方法,一般程序员需要在此类中直接使用的唯一方法是 drivermanager.getconnection。
drivermanager.getconnection 方法返回一个打开的连接,你可以使用此连接创建 jdbc statements 并发送 sql 语句到数据库。在前面的例子里,con 对象是一个打开的连接,并且我们要在以后的例子里使用它。