sqlhelper类

原创 2016年08月28日 20:14:56
/////////////////////////////////////////
工具类
package com.hsp.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.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 InputStream fis = null;
    //加载驱动,只需要一次,用静态代码块
    static
    {
        try
        {
            //从dbinfo.properties
            pp = new Properties();
			
            fis=SqlHelper.class.getClassLoader().getResourceAsStream("mysql.properties");
            //fis = new FileInputStream();
            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;
        }
    }
}

SQLHelper类方法介绍及简单使用

引言做.NET开发的话,想必大家对SQLHelper.cs这个类都不会陌生。很早之前微软就发布了SQLHelper.cs,如果想要了解它的详细信息可以参考我的另一篇博客:http://blog.csd...
  • u013201439
  • u013201439
  • 2016年06月26日 16:55
  • 3541

分享一个常用的sqlHelper类

using System; using System.Collections.Generic; using System.Text; using System.Configuration; u...
  • acaoguangke
  • acaoguangke
  • 2016年11月08日 18:17
  • 2190

强大的SQLHelper类

在做机房收费系统的时候,曾经使用过Sqlhelper,当时对此内容理解不是很好,参照的是下篇的博客:   vb.net—SQLHelper类的使用   而做过之后,当再次回首往事的时候,发现这个S...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2014年09月20日 13:20
  • 2467

C#操作sql通用类 SQLHelper

using System; using System.Data; using System.Configuration; using System.Web; ...
  • kasama1953
  • kasama1953
  • 2016年06月17日 11:05
  • 4122

SqlHelper类的使用

机房重构进行了一小阶段,刚开始敲代码的时候,实现每一个功能都要在D层类中写一次数据据库连接(SqlConnection),SqlCommand,SqlDataReader语句,感到相当地麻烦。遇到这个...
  • u013035924
  • u013035924
  • 2015年02月13日 20:53
  • 949

微软官方的SQLHelper类(含完整中文注释)

using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect...
  • zuoyefeng1990
  • zuoyefeng1990
  • 2017年03月15日 14:11
  • 4664

SqlHelper操纵数据库工具类

SqlHelper操纵数据库工具类     该工具类是SqlHelper的基础版本,将整个类做成静态类,这样可能很难应付高并发的数据库操作,不过这个问题是能够解决的,通过创建SqlHelpe...
  • q547550831
  • q547550831
  • 2016年01月10日 19:25
  • 1074

SqlHelper数据库访问类

参考上一篇:数据库连接配置app.config 写一个通用的数据库访问类。  public class SqlHelper //数据库连接类 { //获取数据库连接字符串...
  • bigpudding24
  • bigpudding24
  • 2015年04月04日 14:02
  • 678

利用SqlHelper.cs实现Web程序与数据库的连接

转自:http://blog.csdn.net/mayanly/article/details/6049999 利用SqlHelper.cs实现Web程序与数据库的连接    ...
  • chelen_jak
  • chelen_jak
  • 2015年04月02日 08:36
  • 1830

C# 对数据库操作的帮助类SQLHelper.cs

在操作数据库的时候,制作一个SqlHelper类封装常用的方法,减少重复代码. 在配置文件App.config中加入数据库的连接信息例如 引用: ...
  • nepture911122
  • nepture911122
  • 2017年02月16日 10:26
  • 1694
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sqlhelper类
举报原因:
原因补充:

(最多只允许输入30个字)