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;
        }
    }
}  

时间: 2024-10-06 11:24:00

java sqlhelper的相关文章

java版本的sqlHelper

以下版本的sqlHelper可以支持普通的DDL,DML和查询语句,暂不支持存储过程,事务等 package com.bobo.util; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import com.mysql.jdbc.Connection; import

JAVA WEB SQLHelper类的封装

在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了一个SQLHelper,虽然下面用的这个不是很好,但是基本上满足需求, 因为似乎所有类都能转换为String,所以就用String数组来补充sql语句中的可变参数,但是有 一个问题,就是在调用的时候第二个参数必须为null,或者String数组,如果只有一个参数,也 要用String数组的形式传进去

java jdbc sqlhelper

package com.shop.util; import java.sql.*; //SqlHelper类 //定义了数据库连接函数,关闭查询结果集,关闭Statement对象,关闭数据库连接 //这样的做法是执行上述4个操作时可以直接调用函数(面向对象的思想),可以好好理解一下 public class SqlHelper { public static Connection getConnection() { Connection conn = null; String driver =

Java数据库连接关闭后无法启动

错误如下: java.sql.SQLException: No operations allowed after connection closed. at com.mysql.jdbc.Connection.checkClosed(Connection.java:1842) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4260) at com.mysql.jdbc.Connection.prepareStateme

Java JTable 表格 获取存储路径,文件名 ,导出excel表格

在做计量泵上位机软件时,需要将下位机传上来的数据,存入MYSQL数据库,显示在java 上位机界面上,并能导出至电脑指定位置. 选择存储路径和文件名: // 处理另存文件的菜单 public void ExportExcelFile(String Sql,String []Paras) { String AbsolutePath=""; // 设置对话框的风格 try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelCl

Java Struts(文件下载)

1.从注册成功页面跳转至用户详情页面(跳转至UserListAction) 2.UserListAction调用service获得用户列表,并将这些数据传送到UserList.jsp中,UserList.jsp将这些数据进行展示 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UsersS

java连接数据库时出现如下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284) at java.lang.Class.f

JDBC代码库-sqlhelper

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;impor

使用java获取网页内容并存放在SqlServer数据库中

同学突然有个蛋疼的需求,抓取以下界面的数据至数据库,我因为很闲,更加蛋疼的自告奋勇帮忙完成.http://www.shmet.com/Template/_Template.html?viewName=_HomeSpotPrice&metalid=10133%2C10131%2C10132%2C10002%2C10003%2C10134%2C10135&_=1453249939502 主要分为3部分: 1)从网页获取数据. 2)将获取的数据实体list集合中去. 3)存入数据库中. 从网页获