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;
    }
相关文章
相关标签/搜索