在Java语言里,一般使用JDBC来连接各种数据库,若连接到Oracle数据库,则需要使用Oracle的JDBC驱动程序。该驱动程序,可在Oracle官方网站上下载,或者可由Oracle数据库的安装目录里获取,对于使用JDK8的用户来说,仅需要一个ojdbc6.jar文件即可实现与Oracle数据库的连接。
Windows操作系统下,该文件在安装目录的jdbc/lib目录下。Linux操作系统下,该文件也在安装目录的jdbc/lib目录下。
Windows下的ojdbc6.jar的位置。
Linux下的ojdbc6.jar的位置。
在Java程序中,要连接到Oracle数据库需要Oracle数据库的驱动程序路径,连接地址,服务器名或SID号,用户名,密码等信息。
1. 驱动程序:Oracle.jdbc.driver.OracleDriver
2. 连接地址:jdbc:oracle:thin:@ip地址:端口号:sid
3. 用户名:比如scott
4. 密码: tiger
1. JDBC主要操作类及接口
JDBC(Java Database Connectivity ,Java数据库连接),提供了一种与平台无关的用于执行SQL语句的标准Java API,可以很方便地实现多种关系型数据库的统一操作,它是由一组用Java语言编写的类和接口组成。
在JDBC的基本操作中最常用的类和接口就是DriverManager、Connection、Statement、Result、PreparedStatement。
java.sql.DriverManager,用于管理JDBC驱动程序;
java.sql.Connection ,用于建立与特定数据库的连接;
java.sql.Statement ,一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果;
java.sql.PreparedStatement , 创建一个可以编译的SQL语句对象,改对象可以被多次运行,以提高执行效率,该接口是Statement的子接口;
java.sql.ResultSet ,用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问。
2. 使用JDBC查询Oracle数据表信息
在连接到Oracle数据库之前,需要正确设置驱动程序的路径,将ojdbc6.jar复制到 JDK的jre\lib\ext ,如:
同时,请注意正确设置CLASSPATH:
剩下的程序,在editplus程序中创建编译执行即可:
import java.sql.*;
public class odbcDemo2 {
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String DBURL = "jdbc:oracle:thin:@192.168.10.211:1521:ZZXY";
public static final String DBUSER = "scott";
public static final String DBPASSWORD = "tiger";
public static void main(String[] args)throws Exception{
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rsmd = null ;
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
System.out.println("连接成功:" +conn);
System.out.println("\t\t ODBC Test");
String sql = "select * from scott.emp";
pstmt = conn.prepareStatement(sql);
rsmd = pstmt.executeQuery();
System.out.println("empno" +"\t"+ "ename" +"\t"+ "sal" +"\t"+ "hiredate" +"\t"+ "deptno");
while(rsmd.next()) {
int empno = rsmd.getInt("empno");
String ename =rsmd.getString("ename");
double sal = rsmd.getDouble("sal");
Date hiredate =rsmd.getDate("hiredate");
int deptno = rsmd.getInt(("deptno"));
System.out.println(empno +"\t"+ ename +"\t"+ sal +"\t"+ hiredate +"\t"+ deptno);
}
pstmt.close();
conn.close();
}
}
执行结果如下:
如此,实现简单数据查询。
3. 小结
该简单练习的难点在于如何正确使用JDBC驱动,如果ojdbc6.jar设置不正确,一般程序编译不会有问题,但是执行的时候会出错:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
解决方法:将ojdbc.jar放到JDK目录下jre目录下lib目录下的ext目录里。