JDBC连接Oracle数据库

 

package com.zcy.jdbc;

import java.sql.*;
import java.io.*;

 /**
 * Title: JDBC连接数据库
 * Description: 本实例演示如何使用JDBC连接Oracle数据库,并演示添加数据和查询数据。
 */
public class JDBCConn {
 private String url = "";// 数据库连接字符串
 private String username = "";// 数据库用户名
 private String password = "";// 数据库密码
 /**
  * 方法说明:获得数据连接
  * 输入参数:
  * 返回类型:Connection 连接对象
  */
 public Connection conn() {
  try {
   // 第一步:加载JDBC驱动
   Class.forName("oracle.jdbc.driver.OracleDriver");
   // 第二步:创建数据库连接
   Connection con = DriverManager.getConnection(url,username,password);
   return con;
  } catch (ClassNotFoundException cnf) {
   System.out.println("driver not find:" + cnf);
   return null;
  } catch (SQLException sqle) {
   System.out.println("can't connection db:" + sqle);
   return null;
  } catch (Exception e) {
   System.out.println("Failed to load JDBC/ODBC driver.");
   return null;
  }
 }

 /**
  * 方法说明:执行查询SQL语句
  * 输入参数:Connection con 数据库连接
  * 输入参数:String sql 要执行的SQL语句
  * 返回类型:void
  */
 public void query(Connection con, String sql) {
  try {
   if (con == null) {
    throw new Exception("database connection can't use!");
   }
   if (sql == null)
    throw new Exception(
      "check your parameter: 'sql'! don't input null!");
   // 第三步:获取Staetment对象
   Statement stmt = con.createStatement();
   // 第四步:执行数据库操作(查询操作)
   ResultSet rs = stmt.executeQuery(sql);
   // 第五步:处理结果集
   ResultSetMetaData rmeta = rs.getMetaData();
   // 获得数据字段个数
   int numColumns = rmeta.getColumnCount();
   while (rs.next()) {
    for (int i = 0; i < numColumns; i++) {
     String sTemp = rs.getString(i + 1);
     System.out.print(sTemp + "  ");
    }
    System.out.println("");
   }
  } catch (Exception e) {
   System.out.println("query error:" + e);
  }
 }

 /**
  * 方法说明:执行插入、更新、删除等没有返回结果集的SQL语句
  * 输入参数:Connection con 数据库连接
  * 输入参数:String sql 要执行的SQL语句
  * 返回类型:void
  */
 public void execute(Connection con, String sql) {
  try {
   if (con == null)
    return;
   // 第三步:获取Statement对象
   Statement stmt = con.createStatement();
   // 第四步:执行数据库操作(更新操作)
   stmt.executeUpdate(sql);
   System.out.println("update executed successly");
  } catch (Exception e) {
   System.out.println("execute error: sql = " + sql);
   System.out.println(e);
  }// end try catch
 }// end execute

 /**
  * 方法说明:实例演示
  * 输入参数:无
  * 返回类型:void
  */
 public void demo() {
  String sSQL = "";
  BufferedReader stdin = new BufferedReader(new InputStreamReader(
    System.in));
  try {
   System.out.println("please input update SQL string");
   sSQL = stdin.readLine();// 获取命令行输入(更新字符串)
   Connection conn = conn();// 执行自定义连接方法(获取数据库连接对象)
   execute(conn, sSQL);// 执行自定义更新方法
   String sql = "select * from TBL_USER";
   query(conn, sql);// 执行自定义查询方法(查询并处理结果集)
   // 第六步:关闭数据库连接
   conn.close();
  } catch (SQLException se) {
   System.out.println(se);
  } catch (Exception e) {
   System.out.println(e);
  }

 }

 /**
  * 方法说明:主方法
  * 输入参数:String[] args 命令行参数(包括:数据库连接URL,用户名,密码)
  * 返回类型:void
  */
 public static void main(String[] arg) {
  if (arg.length != 3) {
   System.out.println("use: java JDBCConn url username password");
   return;
  }
  JDBCConn oc = new JDBCConn();
  oc.url = arg[0];
  oc.username = arg[1];
  oc.password = arg[2];
  oc.demo();
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值