最简单的JDBC连接Oracle

 

 

  1. 先找到Oracle的驱动,在D:/oracle/ora92/jdbc/lib下,有clesses12.jar包,这个就是Oracle的JDBC驱动了
  2. 配置好Log4j等后,写类如下:

OperDB类:

package com.xianxinzhi.base;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * @author neitbe
 */
public class OperDB extends BaseConnect {

 private static Log log       = LogFactory.getLog(OperDB.class);
 
 //驱动名称
 private final String oracleDriverName   = "oracle.jdbc.driver.OracleDriver";
 
 //Oracle里的表空间
 private final String oracleUrlToConnect   = "jdbc:oracle:thin:@192.168.26.160:1521:xuxin";
 
 private final String user      = "scott";
 
 private final String password     = "tiger";
 
 private Connection connection     = null;
 
 private PreparedStatement ps     = null;
 
 private Statement statement      = null;
 
 public OperDB() {
  
   try {
    log.debug("准备加载Oracle驱动……");
    Class.forName(oracleDriverName);
    log.debug("加载驱动成功!");
   } catch (ClassNotFoundException e) {
    log.error("加载驱动失败,类没有找到",e);
   }
  
 }
 
 public PreparedStatement getPs(String sql) {
  
  try {
   log.debug("准备得到PreparedStatement……");
   ps       = this.getConnection().prepareStatement(sql);
   log.debug("成功得到PreparedStatement");
  } catch (SQLException e) {
   log.error("得到PreparedStatement错误",e);
  }
  
  
  return ps;
 }

 public Statement getStatement() {
  
  try {
   log.debug("准备得到statement……");
   statement     = this.getConnection().createStatement();
   log.debug("成功得到statement!");
  } catch (SQLException e) {
   log.error("得到statement错误",e);
  }
  
  return statement;
 }

 private Connection getConnection() {
  try {
   log.debug("准备得到连接……");
   connection     = DriverManager.getConnection(oracleUrlToConnect,user,password);
   log.debug("得到连接成功!");
  } catch (SQLException e) {
   log.error("得到连接失败,SQL异常",e);
  }
  return connection;
 }
 
 public void dbClose(ResultSet rs,PreparedStatement ps) {
  
  try {
   log.debug("准备关闭数据库的连接……");
   rs.close();
   log.debug("ResultSet结果集正常关闭");
   ps.close();
   log.debug("PreparedStatement正常关闭");
   this.connection.close();
   log.debug("Connection连接正常关闭");
  } catch (SQLException e) {
   log.error("关闭数据库错误,SQL异常",e);
  }
 }
  
  public void dbClose(ResultSet rs,Statement st) {
   
   try {
    log.debug("准备关闭数据库的连接……");
    rs.close();
    log.debug("ResultSet结果集正常关闭");
    st.close();
    log.debug("PreparedStatement正常关闭");
    this.connection.close();
    log.debug("Connection连接正常关闭");
   } catch (SQLException e) {
    log.error("关闭数据库错误,SQL异常",e);
   }
  
  
 }
  
  public ResultSet getResultSetFromPs(PreparedStatement ps) {
   ResultSet rs    = null;
   
   try {
    log.debug("准备从ps直接得到rs……");
    rs      = ps.executeQuery();
    log.debug("从ps得到rs成功!");
   } catch (SQLException e) {
    log.error("从ps得到rs错误!",e);
   }
   
   return rs;
  }
}

其中BaseConnect类为空类,以便日后扩展

TestOracle类如下:

package com.xianxinzhi.test;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.xianxinzhi.base.OperDB;

/**
 * @author neitbe
 */
public class TestOracle {

 private static Log log   = LogFactory.getLog(TestOracle.class);
 
 private static String sql  = "select * from emp";
 
 
 public static void main(String args[]) {
  OperDB operDB    = new OperDB();
  
  PreparedStatement ps  = operDB.getPs(sql);
  
  ResultSet rs    = operDB.getResultSetFromPs(ps);
  
  try {
   while(rs.next()) {
    System.out.println();
    log.info("第一个字段为:" + rs.getDouble("empno"));
    log.info("第二个字段为:" + rs.getString("ename"));
    log.info("第三个字段为:" + rs.getString("job"));
    log.info("第四个字段为:" + rs.getDate("hiredate"));
    log.info("第五个字段为:" + rs.getDouble("sal"));
    System.out.println();
    
   }
  } catch (SQLException e) {
   log.error("数据库错误,SQL异常",e);
  } finally {
   operDB.dbClose(rs,ps);
   log.debug("数据库连接成功关闭!");
  }
 }
 
}

运行正常,说明没有客户端可以连接到Oracle的
还有一点要说名:安装完Oracle后,Oracle会把环境变量改掉,这时只能把java虚拟机改回来,不要改bin,否则安装Toad客户端时会出错
 

安装教程 eclipse中maven 下载不到oracle数据库驱动 ojdbc5 ojdbc6 需要我们手动将驱动安装到本地仓库 https://blog.csdn.net/az44yao/article/details/87773714 参考地址: http://www.oracle.com/technetwork/cn/articles/oem/jdbc-112010-094555-zhs.html 针对所有平台的 JDBC 瘦客户端 ojdbc5.jar (1,996,228 字节)— 用于 JDK 1.5 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc5_g.jar (3,081,328 字节)— 与 ojdbc5.jar 一样,除了类通过“javac -g”编译并包含跟踪代码。 ojdbc6.jar (2,111,220 字节)— 用于 JDK 1.6 的类。它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 ojdbc6_g.jar (3,401,519 字节)— 与 ojdbc6.jar 一样,除了通过“javac -g”编译并包含跟踪代码。 ojdbc5dms.jar (2,429,777 字节)— 与 ojdbc5.jar 一样,除了包含支持 DMS 和有限的 java.util.logging 调用的工具。 ojdbc5dms_g.jar (3,101,875 字节)— 与 ojdbc5_g.jar 一样,除了包含支持 DMS 的工具。 ojdbc6dms.jar (2,655,741 字节)— 与 ojdbc6.jar 一样,除了包含支持 DMS 和有限的 java.util.logging 调用的工具。 ojdbc6dms_g.jar (3,423,263 字节)— 与 ojdbc6_g.jar 一样,除了包含支持 DMS 的工具。 orai18n.jar (1,656,280 字节)— 用于 JDK 1.5 和 1.6 的 NLS 类。它包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。该 jar 文件代替旧的 nls_charset jar/zip 文件。 demo.zip (603,363 字节)— 包含 JDBC 示例程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值