zoukankan      html  css  js  c++  java
  • java sqlhelper

    dbinfo.properties部分:

    注意每行末尾不可以有空格

    #oracle configure
    UserName=scott
    Password=tiger
    Driver=oracle.jdbc.driver.OracleDriver
    Url=jdbc:oracle:thin:@127.0.0.1:1521:ORCL
    #mysql
    #dbUserName=root  
    #dbPassword=root  
    #dbDriver=com.mysql.jdbc.Driver  
    #dbUrl=jdbc:mysql://127.0.0.1:3306/test100?useUnicode=true&characterEncoding=utf8  

    sqlhelper部分:

    package com.dy.utils;
    
    import java.io.FileInputStream;  
    import java.io.IOException;  
    import java.io.InputStream;  
    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
    import java.sql.Statement;  
    import java.util.ArrayList;
    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 drivername = "";  
        private static String passwd = "";  
         
        private static CallableStatement cs = null;  
        public static CallableStatement getCs()  
        {  
            return cs;  
        }  
        private static Properties  pp = null;  
        private static InputStream fis = null;  
        //加载驱动,只需要一次,用静态代码块  
        static  
        {  
            try  
            {  
               //从dbinfo.properties  
                pp = new Properties();  
                fis=SqlHelper.class.getClassLoader().getResourceAsStream("dbinfo.properties");  
                //fis = new FileInputStream();  
                pp.load(fis);  
                url = pp.getProperty("Url");  
                drivername = pp.getProperty("Driver");  
                username = pp.getProperty("UserName");  
                passwd = pp.getProperty("Password");  
                Class.forName(drivername) ; 
            }  
            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;  
    }  
    
    // query update
    public static ArrayList executeQuery3(String sql,String[] parms) 
    {
        PreparedStatement pstmt=null;
        Connection conn=null;
        ResultSet rs=null;
        try{
            conn=getConnection();
            pstmt=conn.prepareStatement(sql);
            if(parms!=null&&!parms.equals("")){
                for(int i=0;i<parms.length;i++){
                    pstmt.setString(i+1, parms[i]);
                }
            }
            rs=pstmt.executeQuery();
            ArrayList al=new ArrayList();
            ResultSetMetaData rsmd=rs.getMetaData();
            int column=rsmd.getColumnCount();
            while (rs.next()){
                Object []ob=new Object[column];
                for(int i=1;i<=column;i++){
                    ob[i-1]=rs.getObject(i);
                }
                al.add(ob);
            }
            return al;
        } catch(Exception e){
            e.printStackTrace();
            throw new RuntimeException(e.getMessage());  
        }finally {
            try{
                close(rs,pstmt,conn);
            }catch(Exception e){
                e.printStackTrace();
                throw new RuntimeException(e.getMessage());
            }
        }
    }
        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;  
            }  
        }  
    }  
    View Code
  • 相关阅读:
    Android自己主动升级框架
    一句话说清楚啥是delegate
    C#
    MySQL Community Server 5.6和MySQL Installer 5.6
    仿htc sense的弹性listView!
    双向队列(STL做法)
    余承东:未来5年中国大部分智能手机厂商消失
    P3808 【模版】AC自动机(简单版)
    P1103 书本整理
    P2580 于是他错误的点名开始了
  • 原文地址:https://www.cnblogs.com/bluedy1229/p/5294232.html
Copyright © 2011-2022 走看看