以下步骤用于java连接oracle, 只是用了jdbc:oracle:thin的简单连接, 由于时间仓促, 写下以下简单的步骤
机器环境:
Windows xp home+sp2
Eclipse 3.3.1
Java 1.6.2
Oracle10.2.0
导入oracle连接数据库的驱动文件, 一般都是存放在数据库系统文件下面.
例如我的.
文件放在jdbc文件下面
打开后再打开 lib, 下面*.jar或是 *.zip的文件.
大家记好以上路径.接着打开系统属性, 设置classpath,
我选择了ojdbc14.jar, nls_charset12.jar 这两个文件.
接着打开 eclipse, 选择window à preferences à java à Build path à user libraries
选择new, name的设置随便. 我的设为db, 接着Add JARs, 导入 ojdbc14.jar, nls_charset12.jar,
结果如上,
接着在你要开发连接数据库文件,所在的项目那里做相应的设置,
到相应的项目那里, 点击鼠标右键, 选择build path à add libraries… 选择user libraries, 点选db(刚才加入的)全部.
这样连接驱动就完成了. 要是驱动没有连接好, 在运行的时候都是会有找不到类的异常抛出.
用下面的代码试试连接数据库是否成功.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static Connection dbConn(String name, String pass) {
Connection c = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// 要是导入驱动没有成功的话都是会出现classnotfoundException.自己看看是不是哪里错了,例如classpath这些设置
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
c = DriverManager.getConnection(
"jdbc:oracle:thin:@nx6330:1523:orcl", name, pass);
// 连接数据的方法有四种, 这个属于最简单的,一般用网页程序
// "jdbc:oracle:thin:@计算机名称:监听端口:系统实例名", username, password,
// 计算机名称,要是自己不知道可以在计算机属性查知.
// 监听端口一般默认是1521, 要是改变了就看自己的监听文件listener.ora
// 系统实例名一般是默认orcl, 要是不是的话就用 select name from v$database; 看看当前的实例名.
// username,password,就是登陆数据库的用户名和密码.
} catch (SQLException e) {
e.printStackTrace();
}
return c;
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB extends DBConnection {
private static Connection con = null;
private static Statement sql = null;
private static ResultSet rs = null;
public static void main(String[] args) throws SQLException {
int no;
String name;
String job;
try {
con = dbConn("scott", "tiger");
if (con == null) {
System.out.print("连接失败");
System.exit(0);
}
sql = con.createStatement();
rs = sql.executeQuery("select empno, ename, job from emp");
System.out.println("工号" + " " + "姓名" + " "+ "工种");
while (rs.next()) {
no = rs.getInt(1);
name = rs.getString(2);
job = rs.getString(3);
System.out.println(no + " " + name + " " + job);
}
// String url = "select empno from emp";
// PreparedStatement pres = con.prepareStatement(url);
// System.out.print(pres.executeUpdate());
} catch (Exception e) {
e.printStackTrace();
} finally {
con.close();
}
}
}
//输出
//工号 姓名 工种
//7369 SMITH CLERK
//7499 ALLEN SALESMAN
//7521 WARD SALESMAN
//7566 JONES MANAGER
//7654 MARTIN SALESMAN
//7698 BLAKE MANAGER
//7782 CLARK MANAGER
//7839 KING PRESIDENT
//7844 TURNER SALESMAN
//7876 ADAMS CLERK
//7900 JAMES CLERK
//7902 FORD ANALYST
//7934 MILLER CLERK