怎样利用JDBC连接并操作Oracle数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样利用JDBC连接并操作Oracle数据库相关的知识,希望对你有一定的参考价值。

文件用:ojdbc6.jar


/**
* 一个非常标准的连接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的默认数据库的SID
        // 如果是服务名,则用String url = "jdbc:oracle:thin:@127.0.0.1:1521/ORCL
        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();
        
    

参考技术A

给你一个参考的文档

关于使用jdbc连接oracle的各种数据库实现方法


参考技术B importjava.sql.*;publicclassMyJDBCpublicMyJDBC()publicstaticStringgetConnectionUrl()return"jdbc:oracle:thin:@DEREK:1521:OracleDB";publicstaticConnectiongetConnection()Connectioncon=null;tryClas

JDBC 连接Oracle

工作中,我们遇到的操作数据库代码都是封装起来的,今天我们就来看看,最基本的利用JDBC来操作数据库.

JDBC连接数据库主要有三个步骤:

 第一步:加载数据库驱动。通常我们使用Class.forName静态方法来加载驱动。

第二步:通过DriverManager获取数据库连接.

第三步:通过Connection 创建Statement对象,Connection创建Statement对象方法有三个:

  • createStatement():创建基本的Statement对象
  • prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
  • prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象

第四步:使用Statement执行SQL语句。所有Statemet对象都有如下三个方法来执行SQL语句:

  • execute:可以执行任何SQL语句,但比较麻烦.
  • executeUpate:主要用于执行DML和DDL语句。执行DML返回受SQL语句影响的行数,执行DDL返回0。
  • executeQuery:只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

第五步:操作结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet来取出查询结果。ResultSet对象主要提供了两类方法:

  • next、previous、first、last、beforeFirst、afterLast、absolute等移动记录指针的方法。
  • getXXX获取记录指针指向行,特定列的值。该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引作为参数性能更好,使用列名作为参数,可读性更好!

下面是一段代码,基本上阐述了上面所说的东东:

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnOracle 

	public static void main(String[] args) 
		//首先定义下连接数据的URL、用户名、密码
		String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		String user="scott";
		String password="yulei123";
		
		try 
			//1.加载驱动,使用了反射的知识
			 Class.forName("oracle.jdbc.driver.OracleDriver");
			 /*
			  *  使用DriverManager获取数据库连接
			  *  其中返回的Connection就代表了JAVA程序和数据库的连接
			  *  不同数据库的URL写法需要查看驱动文档知道,用户名、密码由DBA分配
			 */
			 Connection conn=DriverManager.getConnection(url, user, password);
			 //使用Connection来创建一个Statement对象
			 Statement stmt=conn.createStatement();
			 //执行SQL语句
			 /*
			  * Statement有三种执行SQL语句的方法
			  * 1、execute可执行任何SQL语句    --返回一个boolean值
			  * 如果执行后,第一个结果是ResultSet,则返回true,否则返回false
			  * 2、executeQuery 执行select 语句    --返回查询到的结果集
			  * 3、executeUpdate用于执行DML语句。---返回一个整数,代表被SQL语句影响的记录数
			 */
			 String sql="select e.* from emp e";
			 ResultSet rs=stmt.executeQuery(sql);
			 //ResultSet有系列的GetXXX(索引名||列名),用于获取记录指针指向行、特定列的值
			 //不断的使用next将记录指针下移一行,如果依然指向有效行,则指针指向有效行的记录
			 while(rs.next())
				 //使用索引
				 System.out.println("员工号:"+rs.getInt(1)+"\\t员工姓名:"+rs.getString(2));
				 //使用列名
				 System.out.println("员工号:"+rs.getInt("empno"));
				 
			 
			 
		 catch (ClassNotFoundException e) 
			e.printStackTrace();
		 catch (SQLException e) 
			e.printStackTrace();
		
		
         
	


 

以上是关于怎样利用JDBC连接并操作Oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章

jdbc连接oracle11g出现ora-12505错误怎么解决?

JDBC Oracle Thin ORA-02396 连接空闲超时

Oracle 11g r2 ORA-01017:用户名/密码无效;通过 JDBC 驱动程序连接时登录被拒绝

JDBC连接Oracle 12c错误ORA-28040: No matching authentication protocol

在连接本机oracle数据库的时候提示:ORA-12541:TNS:没有监听程序

jdbc 连接oracle失败!请教原因