日期:2014-05-16 浏览次数:20442 次
环境:netbeans
Java访问数据库有两种方法,第一种是JDBC-ODBC桥驱动程序,第二种是使用专用的数据库驱动程序。
这两种方法是这个意思:ODBC是微软开发出来的驱动程序,这个驱动程序可以用于连接绝大多数数据库比如mysql, postgresql,access,sql server,但是这个驱动程序是用C++写的,在java中不能直接使用,这样java开发者就弄了个JDBC-ODBC桥驱动程序,在java中通过这个JDBC-ODBC桥驱动程序来间接使用ODBC,从而可以连接绝大多数数据库。这其实是一种偷懒的做法。由于连接数据库要经过很多环节,所以效率可能不高,Sun公司不推荐这种方法。但是使用起来很方便,因为JDBC-ODBC桥驱动程序已经安装在了JAVA开发环境中,第二种方法就需要另外去数据库的官网下载相应的驱动程序。
专用的数据库驱动程序,就麻烦一点,但是更直接。每个数据库厂商需要单独开发一个数据库驱动程序,当然使用Java开发。然后在Java中使用这些驱动程序连接数据库。这样就大大减少了中间环节,效率就提高了。下面分别使用这两种方法来连接mysql和postgresql数据库。使用Java访问数据库,一般有这5个步骤(1)加载驱动程序。(2)建立连接对象。(3)创建语句对象。(4)获得sql执行结果的数据集。(5)关闭结果数据集,关闭语句对象,关闭连接。
(一)使用JDBC-ODBC访问mysql
我在mysql中创建了一个courseselection的数据库,数据库中有一个courses表。由于用到了ODBC驱动程序,所以首先要注册一个mysql的数据源。方法是:【控制面板】-【管理工具】-【数据源】-【系统DSN】标签卡,点击添加,出现【创建数据源】对话框,选择其中的mysql odbc driver
出现配置界面,如下填写(其中密码默认为123456)
这样就注册了一个数据源。其中连接的是courseselection数据库。
其余代码如下:
package try1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class MySqlOdbcDemo { public static void main(String[] args) throws Exception { //加载JDBC-ODBC桥驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //设置数据源, myData是注册的数据源,连接的是courseselection数据库 String dburl="jdbc:odbc:myData"; //getConnection(数据源, 用户名, 密码) Connection conn = DriverManager.getConnection(dburl, "root", "123456"); String sql = "Select * from courses"; Statement stmt = conn.createStatement(); ResultSet rst = stmt.executeQuery(sql); while (rst.next()) { //由于数据库与java中的默认编码不一致,所以不能直接读字符串,先读字节,然后转换 String st = new String(rst.getBytes(2), "UTF-8"); System.out.println(rst.getString(1) + ": " + st); } rst.close(); stmt.close(); conn.close(); } }结果如下:
run: a0101: 高等数学 a0102: 线性代数 b0011: 数据结构 b0101: 数字电路 b0111: 数据库 b0201: 数字电路 成功生成(总时间:0 秒)