You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					77 lines
				
				3.1 KiB
			
		
		
			
		
	
	
					77 lines
				
				3.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								//package com.ynxbd.common.config.db;
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//import com.ynxbd.common.helper.FileHelper;
							 | 
						||
| 
								 | 
							
								//import com.zaxxer.hikari.HikariConfig;
							 | 
						||
| 
								 | 
							
								//import com.zaxxer.hikari.HikariDataSource;
							 | 
						||
| 
								 | 
							
								//import org.slf4j.Logger;
							 | 
						||
| 
								 | 
							
								//import org.slf4j.LoggerFactory;
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//import java.sql.Connection;
							 | 
						||
| 
								 | 
							
								//import java.sql.SQLException;
							 | 
						||
| 
								 | 
							
								//import java.util.List;
							 | 
						||
| 
								 | 
							
								//import java.util.Properties;
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//public class PacsDB {
							 | 
						||
| 
								 | 
							
								//    private final static Logger log = LoggerFactory.getLogger(PacsDB.class);
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    private static HikariDataSource dataSource;
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    static {
							 | 
						||
| 
								 | 
							
								//        dataSource = init();
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    private static synchronized HikariDataSource init() {
							 | 
						||
| 
								 | 
							
								//        HikariConfig config = new HikariConfig();
							 | 
						||
| 
								 | 
							
								//        Properties properties = DataBase.getPropertiesConfig();
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        config.setPoolName("hikari_pool_pacs");
							 | 
						||
| 
								 | 
							
								//        config.setDriverClassName(FileHelper.propertiesGetString(properties, "pacs.driverClassName"));
							 | 
						||
| 
								 | 
							
								//        config.setJdbcUrl(FileHelper.propertiesGetString(properties, "pacs.jdbcUrl"));
							 | 
						||
| 
								 | 
							
								//        config.setUsername(FileHelper.propertiesGetString(properties, "pacs.username"));
							 | 
						||
| 
								 | 
							
								//        config.setPassword(FileHelper.propertiesGetString(properties, "pacs.password"));
							 | 
						||
| 
								 | 
							
								//        //
							 | 
						||
| 
								 | 
							
								//        config.addDataSourceProperty("cachePrepStmts", "true");        // 是否自定义配置,为true时下面两个参数才生效
							 | 
						||
| 
								 | 
							
								//        config.addDataSourceProperty("prepStmtCacheSize", "250");      // 连接池大小默认25,官方推荐250-500
							 | 
						||
| 
								 | 
							
								//        config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); // 单条语句最大长度默认256,官方推荐2048
							 | 
						||
| 
								 | 
							
								//        // 最大空闲时间
							 | 
						||
| 
								 | 
							
								//        Long idleTimeout = FileHelper.propertiesGetLong(properties, "pacs.idleTimeout");
							 | 
						||
| 
								 | 
							
								//        if (idleTimeout != null) config.setIdleTimeout(idleTimeout);
							 | 
						||
| 
								 | 
							
								//        // 最大连接数量
							 | 
						||
| 
								 | 
							
								//        Integer maximumPoolSize = FileHelper.propertiesGetInteger(properties, "pacs.maximumPoolSize");
							 | 
						||
| 
								 | 
							
								//        if (maximumPoolSize != null) config.setMaximumPoolSize(maximumPoolSize);
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//        config.setPoolName("pacs");
							 | 
						||
| 
								 | 
							
								//        config.setConnectionTestQuery("SELECT 1");
							 | 
						||
| 
								 | 
							
								//        return new HikariDataSource(config);
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    /**
							 | 
						||
| 
								 | 
							
								//     * 获取连接
							 | 
						||
| 
								 | 
							
								//     */
							 | 
						||
| 
								 | 
							
								//    public static Connection getConnection() {
							 | 
						||
| 
								 | 
							
								//        Connection conn = null;
							 | 
						||
| 
								 | 
							
								//        try {
							 | 
						||
| 
								 | 
							
								//            if (dataSource == null) {
							 | 
						||
| 
								 | 
							
								//                dataSource = init();
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//            conn = dataSource.getConnection();
							 | 
						||
| 
								 | 
							
								//        } catch (SQLException e) {
							 | 
						||
| 
								 | 
							
								//            log.error("PACS数据库连接失败!{}, {}", dataSource.getJdbcUrl(), e.getMessage());
							 | 
						||
| 
								 | 
							
								//            if (dataSource != null) {
							 | 
						||
| 
								 | 
							
								//                dataSource.close();
							 | 
						||
| 
								 | 
							
								//                dataSource = null;
							 | 
						||
| 
								 | 
							
								//            }
							 | 
						||
| 
								 | 
							
								//        }
							 | 
						||
| 
								 | 
							
								//        return conn;
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    public static <T> List<T> select(String sql, Class<T> clazz, DataBase.IPS ips) {
							 | 
						||
| 
								 | 
							
								//        return DataBase.select(getConnection(), sql, clazz, ips);
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    public static <T> List<T> select(String sql, Class<T> clazz) {
							 | 
						||
| 
								 | 
							
								//        return DataBase.select(getConnection(), sql, clazz, null);
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//}
							 |