首页 > 数据库 >java连接Oracle数据库

java连接Oracle数据库

时间:2024-07-15 10:57:28浏览次数:15  
标签:java String -- 数据库 oracle toString sql Oracle public

第一步 引用 ojdbc.jar 

详见 https://www.cnblogs.com/hailexuexi/p/15062168.html

注:项目代码换路径后要 重新引用

 注:编译项目时也要把 ojdbc6.jar 打到包里

 完整的java代码

OracleUtil.java
package com.JavaRabbitMQToDataBase.dbOracle;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class OracleUtil {
    protected static final Logger logger = LoggerFactory.getLogger(OracleUtil.class);
    //是否连接数据库
    public static String oracle_open="false";
    //数据库连接地址
    public static String oracle_url="jdbc:oracle:thin:@192.168.1.192:1521:orcl";
    //用户名
    public static String oracle_username= "sys as sysdba";
    //密码
    public static String oracle_password ="admindljjk";//
    //驱动名称
    public static String oracle_jdbcName = "oracle.jdbc.OracleDriver";

    /*获取数据库连接 */
    public static Connection getCon(){
        //System.out.println("Oracle getCon00000: "+ oracle_url+" -- " +oracle_username+ " -- "+oracle_password+ " -- " + oracle_jdbcName );
        //if(oracle_open.equals("true")==true){
        //    logger.warn("OracleUtill getCon() 不连接数据库 "+ oracle_url+" -- " +oracle_username+ " -- "+oracle_password+ " -- " + oracle_jdbcName );
        //    return null;
        //}
        try {
            Class.forName(oracle_jdbcName);
        } catch (ClassNotFoundException e) {
            //System.out.println("oracle_jdbcName111111: "+e.getMessage());
            logger.error("OracleUtill getCon() Oracle JDBC驱动未找到!"+ oracle_url+" -- " +oracle_username+ " -- "+oracle_password+ " -- " + oracle_jdbcName +e.getMessage()+e.toString());
            e.printStackTrace();
        }
        Connection con = null;
        try {
            con = DriverManager.getConnection(oracle_url,oracle_username,oracle_password);
        } catch (SQLException e) {
            //System.out.println("oracle_url22222: "+e.getMessage());
            logger.error("OracleUtill getCon() 连接数据库失败! "+ oracle_url+" -- " +oracle_username+ " -- "+oracle_password+ " -- " + oracle_jdbcName +e.getMessage()+e.toString());
            e.printStackTrace();
        }
        return con;
    }

    /*关闭数据库连接*/
    public static void closeCon(Connection con) throws SQLException {
        if (con != null)
            con.close();
    }

    public static String connectionTest()throws SQLException {
        Connection connection= getCon();
        String strResult=connection.toString();
        connection.close();
        return  strResult;
    }

    /*
    public static void main(String[] args){
        try {
            getCon();
            System.out.println("数据库连接成功");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
    }
    */

}

调用方法(示例)

    //连接对象
    Connection connection=null;
    //创建预编译对象
    PreparedStatement ps=null;
    //创建结果集
    ResultSet rs = null;

try { connection = OracleUtil.getCon();//连接对象 //{"event":"satisfaction","callid":"1635822668.528","surveyresult":"2","sn":"369264842620"} String strId = UUID.randomUUID().toString();//唯一码 JSONObject jsonObj = JSONObject.parseObject(this._eventJson);// String event = jsonObj.get("event").toString(); callid = jsonObj.get("callid").toString(); String surveyresult = jsonObj.get("surveyresult").toString(); String sn = jsonObj.get("sn").toString(); sql = "insert into CTI_SATISFACTION "; sql = sql + " ( ID,event,callid,surveyresult,sn ) "; sql = sql + " values(?,?,?,?,? )"; ps = connection.prepareStatement(sql); ps.setString(1, strId); ps.setString(2, event); ps.setString(3, callid); ps.setString(4, surveyresult); ps.setString(5, sn); //logger.debug("dbCDR insert() 执行SQL!" + ps.toString() ); result = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); logger.error("dbSatisfaction insert() 执行SQL出错! " + result + " " + callid + " " + sql + " " + e.toString()); } finally { try { OracleUtil.closeCon(connection); } catch (SQLException e) { e.printStackTrace(); logger.error("dbSatisfaction insert() 关闭连接出错!" + result + " " + callid + " " + " " + sql + " " + e.toString()); } }

 

标签:java,String,--,数据库,oracle,toString,sql,Oracle,public
From: https://www.cnblogs.com/hailexuexi/p/18302732

相关文章

  • 一文读懂Java线程池之线程复用原理
    什么是线程复用在Java中,我们正常创建线程执行任务,一般都是一条线程绑定一个Runnable执行任务。而Runnable实际只是一个普通接口,真正要执行,则还是利用了Thread类的run方法。这个rurn方法由native本地方法start0进行调用。我们看Thread类的run方法实现/*Whatwillberun.......
  • 深度解析:分库分表策略在数据库性能优化中的核心作用
        目录分库分表的核心原理分库(Sharding)分表(Partitioning)综合运用与挑战在探讨分库分表的深度理解之前,先回顾一下为什么数据库系统会面临性能瓶颈。随着互联网业务的飞速发展,数据量呈指数级增长,同时高并发的访问需求对数据库的读写性能提出了更高要求。传统的......
  • java 连接 oracle数据库时报错 Oracle JDBC驱动未找到! No suitable driver found for
    在用IDEA编写java连接Oracle时,报错:OracleJDBC驱动未找到!可这部分之前测试是好用。想来想去。哦,我把这个项目代码换过路径,问题就出在这。需要重新引用下  ojdbc6.jar架包 下面是java连接oracle的部分代码ClassNotFoundException可以捕获OracleJDBC驱动未找到的异......
  • MySQL - [17] Oracle、SQLServer、MySQL数据类型对比
    题记部分 一、数据类型对比对应关系(1)整数类型Oracle的NUMBER(*,0)对应SQLServer的INT和MySQL的INTOracle的BIGINT可能需要映射到SQLServer的BIGINT和MySQL的BIGINT(2)浮点数类型Oracle的BINARY_FLOAT/BINARY_DOUBLE对应SQLServer的FLOAT和MySQL......
  • Java案例秒杀活动
    目录一案例要求:二具体代码:三运行结果:一案例要求:二具体代码:packagetwo;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclasstest{publicstaticvoidmain(String[]args)throwsParseException{......
  • 使用Java实现WebSocket通信
    使用Java实现WebSocket通信大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨如何使用Java实现WebSocket通信,WebSocket是一种在单个TCP连接上进行全双工通信的协议,非常适合实时数据传输。1.WebSocket简介WebSocket协议在Web开发中广泛应用,......
  • Java中的线程池详解
    Java中的线程池详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来深入探讨Java中的线程池。线程池是一种重要的多线程处理方式,能够有效管理和复用线程资源,提升系统的性能和稳定性。本文将详细介绍线程池的原理、使用方法以及在实际开发中的最......
  • 使用Java实现高并发编程
    使用Java实现高并发编程大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论Java中的高并发编程。Java提供了丰富的并发编程工具和框架,包括线程、线程池、并发集合和锁机制等。本文将通过代码示例详细介绍如何使用这些工具实现高并发编程。1.......
  • Java中的动态代理机制详解
    Java中的动态代理机制详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中的动态代理机制。动态代理是Java语言中一种强大的特性,它允许我们在运行时创建代理类和对象,动态地处理对目标对象的方法调用。本文将详细介绍动态代理的原......
  • Java中的枚举类型详解
    Java中的枚举类型详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来深入探讨Java中的枚举类型。枚举类型在Java中是一种特殊的数据类型,它允许我们定义一组命名的常量,这些常量在整个程序中保持不变。本文将详细介绍枚举类型的定义、用法以及在......