java中最常用的数据库连接技术就是JDBC。
目前几乎所有的主流数据库都提供了相应的jdbc驱动,可以简单理解为.net中的数据库客户端dll,.net中如果对于netframework默认不支持的数据库(比如sqllite,mysql之类),就必须要下载专门的数据库客户端dll文件,在vs.net中添加该dll的引用,然后就可以用它来连接数据库。
jdbc也是同样的道理,jdk默认安装后,几乎没带什么jdbc驱动,需要到各数据库提供商网站下载对应的jdbc驱动,以mysql为例,下载mysql jdbc驱动后(百度搜索 “mysql jdbc”就行),会得到一个mysql-connector-java-5.1.22-bin.jar的文件,把它复制到 \jdk\jre\lib\ext 目录下(这样程序运行时,通过ClassPath就能找到该文件)
然后就可以写代码连接了,示例代码 :
package jmyang.jdbctest; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.sql.Connection; public class MySqlTest { public static void main(String[] args) { Connection conn = null; try { // 加载mysql驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 连接localhost上的mysql,并指定使用test数据库,用户名为root,密码为*** conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "***"); if (!conn.isClosed()) { System.out.println("数据库连接成功!"); //验证是否连接成功 } Statement statement = conn.createStatement(); //查询数据 ResultSet rs = statement.executeQuery("select * from person"); //输出结果集(类似.net中的DataSet/DataTable) while (rs.next()) { System.out.println("id=" + rs.getInt("Id") + ",name=" + rs.getString("Name")); } rs.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); conn = null; } catch (Exception e) { e.printStackTrace(); } } } } }
下面是oracle 11g Express版连接的示例:
oracle 11g安装后,在jdbc目录下,会有 ojdbc5.jar,ojdbc6.jar,ojdbc6_g.jar 三个包,其中ojdbc5适用于jdk1.5及以上版本,另外二个适用于jdk1.6及以上版本。
注:经我实际测试,如果搞不清自己的jdk版本号,直接把ojdbc5.jar,ojdbc6.jar二个文件都复制到 \jdk\jre\lib\ext下 也可以。
Class.forName("oracle.jdbc.driver.OracleDriver"); // 连接localhost上的oracle,用户名为yangjm,密码为***,SID为XE,端口号1521,oracle服务器IP:localhost conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", "yangjm", "***");
与mysql示例代码的区别仅在于:加载的驱动不同 以及 getConnection时指定的url不同