java操作oralce数据库其实与操作其他的数据库一样,例如mysql,sqlsever 等,都需要先加载驱动,然后建立连接,接下来访问Oracle数据库的方式就基本上一样了。
java与Oracle连接可以通过两种方式:
一:使用jdbc-odbc桥连接的方式连接Oracle
其中相关代码:
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//得到连接
Connection ct = DriverManager.getConnection("jdbc:odbc:test","scott","123456");
//下面和操作其它数据库一致
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from dept");
while (rs.next()){
System.out.println("ID:"+rs.getString("id"));
//System.out.println("ID:"+rs.getString(1));//默认从1开始
}
rs.close();
sm.close();
ct.close();
}
catch(Exception e){
e.printStackTrace();
}
注:这种方法只能访问本地的数据库,因为它没有提供让你选择其他服务器上数据库填写IP的地方。
test为一个Oracle驱动:建立方法如下:开始-->控制面板-->管理工具-->数据源(ODBC)-->添加-->选择Oracle驱动-->完成-->Data Source Name填testsp,TNS Service Name 选择Oracle--点OK,也可以先点Test Connection测试一下连接是否成功。
二:使用JDBC连接Oracle
其中相关代码:
try {
//加载驱动
System.out.println("加载驱动.......");
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("驱动加载成功,开始连接");
//得到连接
Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","123456");
System.out.println("连接成功.......");
//下面和操作其它数据库一致
Statement sm = ct.createStatement();
ResultSet rs = sm.executeQuery("select * from dept");
while (rs.next()){
System.out.println("ID:"+rs.getString("id"));
//System.out.println("ID:"+rs.getString(1));//默认从1开始
}
rs.close();
sm.close();
ct.close();
}
catch(Exception e){
e.printStackTrace();
}
================================================================
一个非常标准的Java连接Oracle数据库的示例代码
/** * 一个非常标准的连接Oracle数据库的示例代码 */ public void testOracle() { Connection con = null;// 创建一个数据库连接 PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null;// 创建一个结果集对象 try { Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序 System.out.println("开始尝试连接数据库!"); String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名 String user = "system";// 用户名,系统默认的账户名 String password = "147";// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接 System.out.println("连接成功!"); String sql = "select * from student where name=?";// 预编译语句,“?”代表参数 pre = con.prepareStatement(sql);// 实例化预编译语句 pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数 while (result.next()) // 当结果集不为空时 System.out.println("学号:" + result.getInt("id") + "姓名:" + result.getString("name")); } catch (Exception e) { e.printStackTrace(); } finally { try { // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 // 注意关闭的顺序,最后使用的最先关闭 if (result != null) result.close(); if (pre != null) pre.close(); if (con != null) con.close(); System.out.println("数据库连接已关闭!"); } catch (Exception e) { e.printStackTrace(); } } }