手动建立数据库连接的BaseDAO

Posted 一念花开满天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动建立数据库连接的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

 

以上是关于手动建立数据库连接的BaseDAO的主要内容,如果未能解决你的问题,请参考以下文章

一种好的持久层开发方法——建立BaseDao和BaseDaoImpl

连接池技术-BaseDao写法

Dao操作的抽取,BaseDao

大数据必学Java基础(一百零一):BaseDAO抽取

BaseDAO使用

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段