⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbconnectionmanager.java

📁 一个直销用的管理软件
💻 JAVA
字号:
package com.susssoft.richjl.dboperation;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//import javax.naming.Context;
//import javax.naming.InitialContext;
//import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.log4j.Logger;

/**
 * 此类的主要作用是进行数据库的连接,产生记录集等操作
 * @author 付祖远
 */
public class DBConnectionManager {
    private static final Logger log = Logger.getLogger(DBConnectionManager.class);
    
    private static Connection conn = null;
    private Statement stmt = null;
    private CallableStatement cstmt = null;
    private DataSource ds = null;
    /**
     * 产生一个连接
     * @return Connection
     */
    public Connection getConn(){
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=remoterichjl";
            conn = java.sql.DriverManager.getConnection(url, "litian", "litian123");
        } catch (ClassNotFoundException e) {
            log.error("产生连接时出现错误(未找到相应驱动):" + e);
        } catch (SQLException e) {
            log.error("产生连接时出现错误:" + e);
        }
        return conn;
//        try{
//	        Context initCtx=new InitialContext();
//	        Context envCtx = (Context) initCtx.lookup("java:comp/env");
//	        DataSource ds =(DataSource) envCtx.lookup("jdbc/richjlDB");
//	        conn=ds.getConnection();
//        } catch (NamingException e){
//            log.error("得到数据源的时候出错:" + e);
//        } catch (SQLException e) {
//            log.error("产生SQL异常:" + e);
//        }
//        return conn;
    }
    
    /**
     * 根据SQL语句产生一个记录集
     * @param sql
     * @return ResultSet
     */
    public ResultSet getRs(String sql){
        ResultSet rs = null;
        try{
            this.getConn();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
        } catch(SQLException e){
            log.error("产生记录集的时候发生错误:" + e);
        }
        return rs;
    }
     
    /**
     * 根据SQL语句执行更新操作,包括删除和更新
     * @param sql
     * @return 返回行数
     */
    public int execUpdate(String sql){
        int returnValue = 0;
        try{
            this.getConn();
            stmt = conn.createStatement();
            returnValue = stmt.executeUpdate(sql);
        } catch(SQLException e){
            log.error("进行数据库操作的时候出错:" + e);
        }
        return returnValue;
    }
    
    /**
     * 包含事务处理的更新操作,包括删除和更新
     * @param sql
     * @return 返回行数
     */
    public int[] execUpdateTran(String[] sql){
        int[] returnValue = {0,0};
        try{
            this.getConn();
            stmt = conn.createStatement();
            conn.setAutoCommit(false);
            for(int i=0;i<sql.length;i++){
                returnValue[0] = returnValue[0] + stmt.executeUpdate(sql[i]);
                returnValue[1]++;
            }
            conn.commit();
        } catch(SQLException e){
            log.error("进行数据库操作的时候出错(含事务处理):" + e);
        }
        return returnValue;
    }
    /**
     * 关闭连接数据库中产生的所有连接,记录集统一在外面关闭,此处不涉及记录集的关闭
     */
    public void closeConn(){
        try{
            if(stmt !=null){
                stmt.close();
            }
            if(conn != null){
                conn.close();
            }
        } catch(SQLException e){
            log.error("关闭连接的时候产生错误:" + e);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -