zoukankan      html  css  js  c++  java
  • DbHelper 标准类

    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import javax.servlet.jsp.jstl.sql.*;
    public class DBHelper {
        
    private String sql;    //要传入的sql语句   
    public void setSql(String sql) {
        this.sql = sql;
    }
       
    private List sqlValues;  //sql语句的参数
    public void setSqlValues(List sqlValues) {
        this.sqlValues = sqlValues;
    }
    private Connection con;  //连接对象
        public void setCon(Connection con) {
        this.con = con;
    }
     
        public DBHelper(){
            this.con=getConnection();  //给Connection的对象赋初值
        }
         
        /**
         * 获取数据库连接
         * @return
         */
        private  Connection getConnection(){
      
            String driver_class=null;
            String driver_url=null;
            String database_user=null;
            String database_password=null;
            try {
                InputStream fis=this.getClass().getResourceAsStream("/db.properties");  //加载数据库配置文件到内存中
                Properties p=new Properties();
                p.load(fis);
                 
                driver_class=p.getProperty("driver_class");      //获取数据库配置文件
                driver_url=p.getProperty("driver_url");
                database_user=p.getProperty("database_user");
                database_password=p.getProperty("database_password");
         
                 
                Class.forName(driver_class);
                con=DriverManager.getConnection(driver_url,database_user,database_password);
                 
                 
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return con;
        }
         
       
         
     
        /**
         * 关闭数据库
         * @param con
         * @param pst
         * @param rst
         */
        private  void closeAll(Connection con,PreparedStatement pst,ResultSet rst){
            if(rst!=null){
                try {
                    rst.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
             
            if(pst!=null){
                try {
                    pst.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
             
            if(con!=null){
                try {
                    con.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
             
             
        }
         
        /**
         * 查找
         * @param sql
         * @param sqlValues
         * @return
         */
        public  Result executeQuery(){
            Result result=null;
            ResultSet rst=null;
            PreparedStatement pst=null;
            try {
             
                pst=con.prepareStatement(sql);
                if(sqlValues!=null&&sqlValues.size()>0){  //当sql语句中存在占位符时
                    setSqlValues(pst,sqlValues);
                }
            rst=pst.executeQuery();
            result=ResultSupport.toResult(rst);  //一定要在关闭数据库之前完成转换
                 
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                this.closeAll(con, pst, rst);
            }
             
            return result;
        }
         
         
        /**
         * 增删改
         * @return
         */
        public int executeUpdate(){
            int result=-1;
            PreparedStatement pst=null;
            try {
                pst=con.prepareStatement(sql);
                if(sqlValues!=null&&sqlValues.size()>0){  //当sql语句中存在占位符时
                    setSqlValues(pst,sqlValues);
                }
            result=pst.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                this.closeAll(con, pst, null);
            }
         
             
            return result;
        }
         
         
         
        /**
         * 给sql语句中的占位符赋值
         * @param pst
         * @param sqlValues
         */
        private void setSqlValues(PreparedStatement pst,List sqlValues){
            for(int i=0;i<sqlValues.size();i++){
                try {
                    pst.setObject(i+1,sqlValues.get(i));
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    NC portal怎么重新开始入门,整个配置过程包括配置一个节点
    NChome如何创建单据跟主子表还有扩展开发要怎么弄?
    还是有必要确定一下自己到底在做是什么
    os.path模块
    re模块
    Django settings配置文件
    自定义分页器
    AJAX
    AJAX 一些常用方法
    AJAX 简单上手
  • 原文地址:https://www.cnblogs.com/lx06/p/15737352.html
Copyright © 2011-2022 走看看