`

java连接oracle数据库———sqlHelper类

阅读更多

package com.xuankai.jdbc;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.sql.*;

public class SqlHelper
{
    //定义变量
    private static Connection ct = null;
    //大多数情况下用preparedstatement替代statement
    private static PreparedStatement ps = null;
    private static ResultSet rs = null;
    
    //连接数据库的参数
    private static String url = "";
    private static String username = "";
    private static String driver = "";
    private static String passwd = "";
    
    private static CallableStatement cs = null;
    public static CallableStatement getCs()
    {
        return cs;
    }

    private static Properties  pp = null;
    private static FileInputStream fis = null;
    //加载驱动,只需要一次,用静态代码块
    static
    {
        try
        {
            //从dbinfo.properties
            pp = new Properties();
            fis = new FileInputStream("dbinfo.properties");
            pp.load(fis);
            url = pp.getProperty("url");
            username = pp.getProperty("username");
            driver = pp.getProperty("driver");
            passwd = pp.getProperty("passwd");
            
            Class.forName(driver);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            { fis.close();}
            catch(IOException e) {e.printStackTrace();}
            fis = null;//垃圾回收站上收拾
        }
        
    }
    //得到连接
    public static Connection getConnection()
        {
            try
            {ct = DriverManager.getConnection(url,username,passwd);}
            catch(Exception e) {e.printStackTrace();}
            return ct;
        }
    
    
//*************callPro1存储过程函数1*************    
    public static CallableStatement callPro1(String sql,String[] parameters)
    {
        try{
            ct = getConnection();
            cs = ct.prepareCall(sql);
            if(parameters!=null){
                for(int i=0;i<parameters.length;i++){
                 cs.setObject(i+1,parameters[i]);
                }
            }    
            cs.execute();
        }
        catch(Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage());}
        finally
        { close(rs,cs,ct);}
        return cs;
    }
    
//*******************callpro2存储过程2************************
public static CallableStatement callPro2(String sql,String[] inparameters,
Integer[] outparameters)
{
    try
    {
        ct = getConnection();
        cs = ct.prepareCall(sql);
        if(inparameters!=null)
        {
            for(int i=0;i<inparameters.length;i++)
            {
                cs.setObject(i+1,inparameters[i]);
            }
        }
    //cs.registerOutparameter(2,oracle.jdbc.OracleTypes.CURSOR);
        if(outparameters!=null)
        {
            for(int i=0;i<outparameters.length;i++)
            {
                cs.registerOutParameter(inparameters.length+1+i,outparameters[i]);
            }
        }
        cs.execute();
    }
    catch(Exception e) {
        e.printStackTrace(); throw new RuntimeException(e.getMessage());
    }
    finally
    {
        
    }
    return cs;
}
    public static ResultSet executeQuery(String sql,String[] parameters)
    {
        try
        {
            ct=getConnection();
            ps=ct.prepareStatement(sql);
            if(parameters!=null)
            {
                for(int i=0;i<parameters.length;i++)
                {
                    ps.setString(i+1,parameters[i]);
                }
            }
            rs = ps.executeQuery();
        }
        catch(Exception e)
        {
            e.printStackTrace();
            throw new RuntimeException(e.getMessage());
        }
        finally
        {
            
        }
        return rs;
    }
    
    
    public static Connection getCt()
    {
        return ct;
    }

    public static PreparedStatement getPs()
    {
        return ps;
    }

    public static ResultSet getRs()
    {
        return rs;
    }

    
    
    public static void executeUpdate2(String[] sql,String[][] parameters)
    {
        try
        {
            ct = getConnection();
            ct.setAutoCommit(false);
            
            for(int i=0;i<sql.length;i++)
            {
                
                if(null!=parameters[i])
                {
                    ps = ct.prepareStatement(sql[i]);
                    for(int j=0;j<parameters[i].length;j++)
                    {
                        ps.setString(j+1,parameters[i][j]);
                    }
                    ps.executeUpdate();
                }
                
            }
            
            
            ct.commit();
            
            
        }catch (Exception e)
        {
            e.printStackTrace();
            try
            {
                ct.rollback();
            }
            catch (SQLException e1)
            {
                e1.printStackTrace();
            }
            throw  new RuntimeException(e.getMessage());
        }finally
        {
            close(rs,ps,ct);
        }
        
    }
    
    //先写一个update、delete、insert
    //sql格式:update 表名 set 字段名 =?where 字段=?
    //parameter神应该是(”abc“,23)
    public static void executeUpdate(String sql,String[] parameters)
    {
        try
        {
            ct=getConnection();
            ps = ct.prepareStatement(sql);
            if(parameters!=null)
            {
                for(int i=0;i<parameters.length;i++)
                {
                    ps.setString(i+1,parameters[i]);
                }
                            
            }
            ps.executeUpdate();
        }
        catch(Exception e)
        {
            e.printStackTrace();//开发阶段
            //抛出异常
            //可以处理,也可以不处理
            throw new RuntimeException(e.getMessage());
        }
        finally
        {
            close(rs,ps,ct);
        }
    }
    
    public static void close(ResultSet rs,Statement ps,Connection ct)
    {
        //关闭资源(先开后关)
        if(rs!=null)
        {
            try
            {
                rs.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
            rs=null;
        }
        if(ps!=null)
        {
            try
            {
                ps.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
            ps=null;
        }
        if(null!=ct)
        {
            try
            {
                ct.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
            ct=null;
        }
    }
}

分享到:
评论

相关推荐

    C# 链接Oracle数据库操作类 SqlHelper.cs

    C# 链接Oracle数据库操作类 SqlHelper.cs,.NET3.0以上即可使用,涵盖了oracle数据库的增删改查操作,并可调用存储过程,因是源码,可根据自己实际需要再修改,灵活性较大

    java使用JDBC和ODBC连接oracle数据库

    Java通过JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)来连接Oracle数据库是两种常见的数据访问方式。本文将详细介绍这两种方法,并提供相关的技术知识。 首先,JDBC是Java平台的标准...

    C# 连接数据库的类SQLHelper

    C# 连接数据库的类SQLHelper C# 连接数据库的类SQLHelper C# 连接数据库的类SQLHelper

    C#中oracle连接数据库的封装类

    在本场景中,我们关注的是一个名为"C#中oracle连接数据库的封装类"的主题,这个主题涉及到创建一个名为`DbHelperOra.cs`的类,用于简化与Oracle数据库的交互。这种封装可以提高代码的可读性和复用性,减少直接处理...

    java连接oracle工具类

    Java连接Oracle工具类的知识点包括以下几个方面: 1. MVC模式:在Java中,MVC(Model-View-Controller)模式是一种广泛使用的设计模式,用于将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器...

    Net连接数据库基类 SQLHelper

    Net连接数据库基类 SQLHelper

    SqlHelper数据库连接类

    SqlHelper是.NET Framework中一个常见的自定义数据库连接类,它为开发者提供了一种方便、高效的方式来执行SQL命令和处理数据库事务。这个类通常用于封装ADO.NET组件,如SqlConnection、SqlCommand、SqlDataAdapter等...

    数据库专用连接类SQLHelper(包括sqlserver2005缓存设置)

    数据库专用连接类SQLHelper,每个项目必备类(包括sqlserver2005缓存设置)

    微软的C#操作数据库类SQLHelper

    SQLHelper是微软.NET框架下的一种实用工具类,用于简化C#程序中对SQL Server数据库的操作。这个类的主要目的是为了提供一种方便、安全的方式来执行SQL语句,包括但不限于INSERT、UPDATE、DELETE以及SELECT查询。它的...

    Sqlhelper-数据库连接类

    数据库连接类,使你方便地连接数据库 SQLHelper类封装对SQL Server数据库的添加、删除、修改和选择等操作

    C# 连接各种数据库返回DataTable的方法

    本篇文章将详细讲解如何使用C#语言连接不同的数据库,并通过执行SQL语句获取DataTable对象,其中包括Access、SQL Server、Oracle以及MySQL四种常见数据库的连接方法。 1. **C#与Access数据库连接** Access数据库...

    jdbc中操作数据库助手Sqlhelper

    jdbc中操作数据库助手Sqlhelper

    SqlHelper类

    5. ConnectionString:SqlHelper类通常会维护一个连接字符串,用于在执行数据库操作时打开和关闭数据库连接。连接字符串包含数据库服务器信息、数据库名、用户名和密码等。 使用SqlHelper类的优点: 1. 代码复用:...

    C#SqlHelper 数据库连接帮助类

    C#SqlHelper 数据库连接帮助类

    SQLHelper类(Java版)

    在Java编程环境中,SQLHelper类通常被用于简化数据库操作,使得开发者无需直接处理数据库连接的创建、管理和关闭,从而降低了代码的复杂性并提高了程序的可维护性。本篇文章将详细解析`SQLHelper`类的设计理念、核心...

    cshapr连接数据库--SqlHelper基类

    `SqlHelper`类通常会在完成数据库操作后关闭并释放连接,以便重用。 6. **异常处理**: 为了保证程序的健壮性,`SqlHelper`类会包含适当的异常处理机制,捕获并处理可能出现的数据库操作错误。 7. **最佳实践**: ...

    C# SqlHelper类 (微软官方)

    在.NET框架中,微软提供了一个名为SqlHelper的类,它是一个辅助类,用于简化与SQL Server数据库的交互。这个类通常被用在C#应用程序中,以执行SQL命令和存储过程。SqlHelper类的设计目标是提高代码的可重用性和安全...

    韩顺平 SqlHelper类大全

    在“韩顺平 SqlHelper类大全”中,涵盖了MySQL、Oracle、SQL Server这三大主流数据库的连接代码,为开发者提供了便利。 1. **SqlHelper基本原理** SqlHelper通常包含了一系列静态方法,用于执行SQL查询、更新、...

    SqlHelper方便对数据库操作的类

    方便对数据库进行操作的工具类,使用时,只需要调用此类,使用类里面的方法,参数为sql语句,及sql的参数数值,无参数可设置为null,使用前请详阅代码

Global site tag (gtag.js) - Google Analytics