JDBC直接讀取properties,鏈接數據庫的util類

完整代碼以下:拼湊的代碼,源代碼不知道從哪來的了。見諒!
使用的話直接在本身的service或dao注入java

package com.javafast.util;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.javafast.common.config.Global;
import com.javafast.common.utils.PropertiesLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/*
 * @Desc druid鏈接池
 * @Author lisha 2019/5/6 0006 13:37
 */
@Component
public class DBPoolConnection {

    private static final Logger log = LoggerFactory.getLogger(DBPoolConnection.class);
    private static DBPoolConnection dbPoolConnection = null;
    private static DruidDataSource druidDataSource = null;
    private static String DB_PROPERTIES = "db_server.properties";

    static {
        // 屬性文件加載對象
        PropertiesLoader loader = new PropertiesLoader(DB_PROPERTIES);
        try {
            // DruidDataSrouce工廠模式
            druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(loader.getProperties());
        } catch (Exception e) {
            log.error("獲取配置失敗");
        }
    }

    /**
     * 數據庫鏈接池單例
     * @return
     */
    public static synchronized DBPoolConnection getInstance(){
        if (null == dbPoolConnection){
            dbPoolConnection = new DBPoolConnection();
        }
        return dbPoolConnection;
    }

    /**
     * 返回druid數據庫鏈接
     * @return
     * @throws SQLException
     */
    public DruidPooledConnection getConnection() throws SQLException {
        return druidDataSource.getConnection();
    }

    /**
     * 返回druid數據庫鏈接
     * @return
     * @throws SQLException
     */
    public synchronized void closeConnection(Connection conn){
        try {
            if (conn != null){
                conn.close();
            }
            log.info("關閉數據庫鏈接成功");
        } catch (SQLException e) {
            e.printStackTrace();
            log.error("關閉數據庫鏈接失敗");
        }
    }
    /**
     * @param string 配置文件名
     * @return Properties對象
     */
    private static Properties loadPropertiesFile(String fullFile) {
        String webRootPath = null;
        if (null == fullFile || fullFile.equals("")){
            throw new IllegalArgumentException("Properties file path can not be null" + fullFile);
        }
        webRootPath = DBPoolConnection.class.getClassLoader().getResource("").getPath();
        webRootPath = new File(webRootPath).getParent();
        InputStream inputStream = null;
        Properties p =null;
        try {
            inputStream = new FileInputStream(new File(webRootPath + File.separator + fullFile));
            p = new Properties();
            p.load(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != inputStream){
                    inputStream.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return p;
    }

}

直接使用以下:web

@Autowired
    private DBPoolConnection connectionPool;
	
	
	 public boolean selectStoreIsExistById(String id){
        String sql = " select  count(*) allCount  from store where id = " + id;
        Connection conn = null;
        boolean flag = false;
        try {
            conn = connectionPool.getConnection();
            ResultSet rs = conn.prepareStatement(sql).executeQuery();
            int total = -1;
            if (rs != null) {
                rs.next();
                total = rs.getInt("allCount");
            }

            if (total > 0) {
                flag = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            logger.error("查詢供應商信息");
            logger.error("sql:" + sql);
        } finally {
            connectionPool.closeConnection(conn);
        }
        return flag;
    }
相關文章
相關標籤/搜索