zoukankan      html  css  js  c++  java
  • 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)+"	员工姓名:"+rs.getString(2));
    				 //使用列名
    				 System.out.println("员工号:"+rs.getInt("empno"));
    				 
    			 }
    			 
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
             
    	}
    }
    


     

  • 相关阅读:
    Codeforces Round #687 A. Prison Break
    最小生成树自用笔记(Kruskal算法+prim算法)
    Codeforces Round #686 (Div. 3)(A->D)(模拟,vector,数学)
    Acwing 852. spfa判断负环
    Linux内核分析_课程学习总结报告
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解系统调用
    基于mykernel 2.0编写一个操作系统内核
    何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?——参考试题
    TCP三次握手Linux源码解析
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300410.html
Copyright © 2011-2022 走看看