zoukankan      html  css  js  c++  java
  • 手动建立数据库连接的BaseDAO

    package com.chinasoft.julong.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class BaseDAO {
        private Connection conn;
        private ResultSet rst;
        private PreparedStatement  pst;
        
        String className="oracle.jdbc.OracleDriver";
        String useName="oracle";
        String password="oracle";
        String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
        
        //加载数据库驱动程序
        public BaseDAO(){
            try {
                Class.forName(className);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        //建立数据库连接
        public void getConnection(){
            try {
                conn=DriverManager.getConnection(url,useName,password);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        
        //不带参数的有查询结果集的函数(查询)
        public ResultSet ExecuteQuery(String sql){
            return ExecuteQuery(sql,new Object[]{});
        }
        
        //带参数的有查询结果集的函数(查询)
        public ResultSet ExecuteQuery(String sql,Object[] arry){
            getConnection();
            try {
                pst=conn.prepareStatement(sql);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            for(int i=0;i<arry.length;i++){
                try {
                    pst.setObject(i+1, arry[i]);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            try {
                rst=pst.executeQuery();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return rst;
        }
        
        
        //不带参数的更新函数(增加,修改,删除)
        public int ExecuteUpdate(String sql){
            return ExecuteUpdate(sql,new Object[]{});
        }
        //带参数的更新函数(增加,修改,删除)
        public int ExecuteUpdate(String sql,Object[] arry){
            getConnection();
            int result=0;
            try {
                pst=conn.prepareStatement(sql);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            for(int i=0;i<arry.length;i++){
                try {
                    pst.setObject(i+1, arry[i]);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            try {
                result=pst.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Closed();
            return result;
        }
        
        //关闭数据库操作对象
        public void Closed(){
            try {
                if(rst!=null&&!rst.isClosed()){
                    rst.close();
                }
                if(!pst.isClosed()){
                    pst.close();
                }
                if(!conn.isClosed()){
                    conn.close();
                }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
        }
    
    }
    View Code
  • 相关阅读:
    Tarjan算法与割点割边
    kmp匹配
    最小表示法
    字典树
    哈希
    网络流入门浅谈
    关于两道搜索的题目
    2020 4.2校内测题解
    LIS最长上升子序列讲解&&洛谷P1439 【模板】最长公共子序列 题解
    浅谈拉格朗日插值公式
  • 原文地址:https://www.cnblogs.com/feitianshaoxai/p/5855305.html
Copyright © 2011-2022 走看看