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.
445 lines
13 KiB
445 lines
13 KiB
2 years ago
|
//package com.ynxbd.wx.config.datasource;
|
||
|
//
|
||
|
//import com.mchange.v2.c3p0.ComboPooledDataSource;
|
||
|
//import com.ynxbd.common.helper.ErrorHelper;
|
||
|
//import org.apache.commons.beanutils.BeanUtils;
|
||
|
//import org.apache.commons.beanutils.BeanUtilsBean;
|
||
|
//import org.apache.commons.beanutils.ConvertUtils;
|
||
|
//import org.apache.commons.beanutils.converters.DateConverter;
|
||
|
//import org.slf4j.Logger;
|
||
|
//import org.slf4j.LoggerFactory;
|
||
|
//
|
||
|
//import java.lang.reflect.Field;
|
||
|
//import java.sql.*;
|
||
|
//import java.util.ArrayList;
|
||
|
//import java.util.List;
|
||
|
//
|
||
|
//
|
||
|
//public class C3P0DataSource {
|
||
|
// private final static Logger log = LoggerFactory.getLogger(C3P0DataSource.class);
|
||
|
//
|
||
|
// // 内部接口
|
||
|
// public interface IPS {
|
||
|
// void setParams(PreparedStatement ps) throws SQLException;
|
||
|
// }
|
||
|
//
|
||
|
// private static ComboPooledDataSource dataSource;
|
||
|
// private static ComboPooledDataSource dataSourcePacs;
|
||
|
// private static ComboPooledDataSource dataSourceLis;
|
||
|
//
|
||
|
// private static void init() {
|
||
|
// // 初始化读取c3p0-config.xml配置
|
||
|
// dataSource = new ComboPooledDataSource();
|
||
|
// }
|
||
|
//
|
||
|
// private static void initPacsDB() {
|
||
|
// dataSourcePacs = new ComboPooledDataSource("pacs");
|
||
|
// }
|
||
|
//
|
||
|
// private static void initLisDB() {
|
||
|
// dataSourceLis = new ComboPooledDataSource("lis");
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 获取连接
|
||
|
// */
|
||
|
// public static Connection getConnection() {
|
||
|
// Connection conn = null;
|
||
|
// try {
|
||
|
// if (dataSource == null) init();
|
||
|
// conn = dataSource.getConnection();
|
||
|
// } catch (Exception e) {
|
||
|
// e.printStackTrace();
|
||
|
// log.error("数据库连接失败!{" + dataSource.getJdbcUrl() + "}");
|
||
|
// if (dataSource != null) dataSource.close();
|
||
|
// }
|
||
|
// return conn;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 获取lis连接
|
||
|
// */
|
||
|
// public static Connection getLisConnection() {
|
||
|
// Connection conn = null;
|
||
|
// try {
|
||
|
// if (dataSourceLis == null) initLisDB();
|
||
|
// conn = dataSourceLis.getConnection();
|
||
|
// } catch (Exception e) {
|
||
|
// e.printStackTrace();
|
||
|
// log.error("lis数据库连接失败!{" + dataSourceLis.getJdbcUrl() + "}");
|
||
|
//
|
||
|
// if (dataSourceLis != null) dataSourceLis.close();
|
||
|
// }
|
||
|
// return conn;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 获取pacs连接
|
||
|
// */
|
||
|
// public static Connection getPacsConnection() {
|
||
|
// Connection conn = null;
|
||
|
// try {
|
||
|
// if (dataSourcePacs == null) initPacsDB();
|
||
|
// conn = dataSourcePacs.getConnection();
|
||
|
// } catch (Exception e) {
|
||
|
// e.printStackTrace();
|
||
|
// log.error("pacs数据库连接失败!{" + dataSourcePacs.getJdbcUrl() + "}");
|
||
|
// if (dataSourcePacs != null) dataSourcePacs.close();
|
||
|
// }
|
||
|
// return conn;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// public static void main(String[] args) {
|
||
|
// }
|
||
|
//
|
||
|
//// public static void closePool() {
|
||
|
//// if (dataSource != null) {
|
||
|
//// dataSource.close();
|
||
|
//// }
|
||
|
//// }
|
||
|
//
|
||
|
// private static String getDBName(String url) {
|
||
|
// if (url.lastIndexOf("?") > 0)
|
||
|
// return url.substring(url.lastIndexOf("/") + 1, url.lastIndexOf("?"));
|
||
|
// else
|
||
|
// return url.substring(url.lastIndexOf("/") + 1).trim();
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// public static <T> List<T> selectList(String sql, Class<T> clazz, IPS ips) {
|
||
|
// return select(getLisConnection(), sql, clazz, ips);
|
||
|
// }
|
||
|
//
|
||
|
// public static <T> List<T> selectList(String sql, Class<T> clazz) {
|
||
|
// return select(getLisConnection(), sql, clazz, null);
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * prepareStatement 赋值查询
|
||
|
// *
|
||
|
// * @param clazz 集合类型
|
||
|
// * @param ips 设置占位符数据
|
||
|
// * @param <T> 泛型
|
||
|
// * @return 集合
|
||
|
// */
|
||
|
// public static <T> List<T> select(String sql, Class<T> clazz, IPS ips) {
|
||
|
// return select(getConnection(), sql, clazz, ips);
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 拼接sql语句查询
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param clazz 集合类型
|
||
|
// * @param <T> 泛型
|
||
|
// * @return 泛型集合
|
||
|
// */
|
||
|
// public static <T> List<T> select(String sql, Class<T> clazz) {
|
||
|
// return select(getConnection(), sql, clazz, null);
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * [私有]查询方法封装
|
||
|
// *
|
||
|
// * @param conn 连接
|
||
|
// * @param sql sql语句
|
||
|
// * @param clazz 类
|
||
|
// * @param ips ips
|
||
|
// */
|
||
|
// private static <T> List<T> select(Connection conn, String sql, Class<T> clazz, IPS ips) {
|
||
|
// List<T> list = new ArrayList<>();
|
||
|
// if (ips == null) {
|
||
|
// Statement stmt = null;
|
||
|
// ResultSet rs = null;
|
||
|
// try {
|
||
|
// stmt = conn.createStatement();
|
||
|
// rs = stmt.executeQuery(sql);
|
||
|
// list = executeSelect(clazz, rs);
|
||
|
// } catch (Exception e) {
|
||
|
// e.printStackTrace();
|
||
|
// ErrorHelper.println(e);
|
||
|
// } finally {
|
||
|
// close(rs, stmt, conn);
|
||
|
// }
|
||
|
// } else {
|
||
|
// PreparedStatement ps = null;
|
||
|
// ResultSet rs = null;
|
||
|
// try {
|
||
|
// ps = conn.prepareStatement(sql);
|
||
|
// ips.setParams(ps);
|
||
|
// rs = ps.executeQuery();
|
||
|
// list = executeSelect(clazz, rs);
|
||
|
// } catch (Exception e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// } finally {
|
||
|
// close(rs, ps, conn);
|
||
|
// }
|
||
|
// }
|
||
|
// return list;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 核心-执行查询
|
||
|
// *
|
||
|
// * @param clazz 类型
|
||
|
// * @param rs rs
|
||
|
// * @return 集合
|
||
|
// */
|
||
|
// private static <T> List<T> executeSelect(Class<T> clazz, ResultSet rs) throws Exception {
|
||
|
// List<T> list = new ArrayList<>();
|
||
|
// Field[] fields = clazz.getDeclaredFields();
|
||
|
//
|
||
|
// Class<? super T> superclass = clazz.getSuperclass();
|
||
|
// Field[] superFields = superclass.getDeclaredFields();
|
||
|
//
|
||
|
// T bean;
|
||
|
// ResultSetMetaData rmd;
|
||
|
// String colName;
|
||
|
//
|
||
|
//
|
||
|
// // 解决BigDecimal类型转化报错
|
||
|
// BeanUtilsBean.getInstance().getConvertUtils().register(false, false, 0);
|
||
|
// // 解决Date类型转化报错
|
||
|
// ConvertUtils.register(new DateConverter(null), java.util.Date.class);
|
||
|
//
|
||
|
// while (rs.next()) {
|
||
|
// bean = clazz.newInstance();
|
||
|
//
|
||
|
// rmd = rs.getMetaData();
|
||
|
// for (int i = 1; i <= rmd.getColumnCount(); i++) {
|
||
|
// colName = rmd.getColumnLabel(i).toLowerCase();
|
||
|
// for (Field f : fields) {
|
||
|
// f.setAccessible(true);
|
||
|
//
|
||
|
// if (f.getName().toLowerCase().equals(colName)) {
|
||
|
// BeanUtils.setProperty(bean, f.getName(), rs.getObject(i));
|
||
|
// break;
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
// for (Field f : superFields) {
|
||
|
// f.setAccessible(true);
|
||
|
// if (f.getName().toLowerCase().equals(colName)) {
|
||
|
// BeanUtils.setProperty(bean, f.getName(), rs.getObject(i));
|
||
|
// break;
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// list.add(bean);
|
||
|
// }
|
||
|
// return list;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 查询某列,一般用于查询count
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param clazz 指定查询的数据的类型
|
||
|
// * @param ips 通过匿名函数设定占位符,可为空
|
||
|
// * @return clazz类型的数据
|
||
|
// */
|
||
|
// public static <T> T selectByColumn(String sql, Class<T> clazz, IPS ips) {
|
||
|
// Connection conn = getConnection();
|
||
|
// PreparedStatement ps = null;
|
||
|
// ResultSet rs = null;
|
||
|
// T value = null;
|
||
|
// try {
|
||
|
// ps = conn.prepareStatement(sql);
|
||
|
// if (ips != null) ips.setParams(ps);
|
||
|
// rs = ps.executeQuery();
|
||
|
// while (rs.next()) {
|
||
|
// value = rs.getObject(1, clazz);
|
||
|
// }
|
||
|
// } catch (Exception e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// } finally {
|
||
|
// close(rs, ps, conn);
|
||
|
// }
|
||
|
// return value;
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 查询单个数据,主要用于count等单个字段的查询
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param clazz 指定查询的数据的类型
|
||
|
// * @return clazz类型的数据
|
||
|
// */
|
||
|
// public static <T> T selectByColumn(String sql, Class<T> clazz) {
|
||
|
// return selectByColumn(sql, clazz, null);
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 添加成功后返回自增ID
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param ips ips
|
||
|
// * @return 自增ID
|
||
|
// */
|
||
|
// public static int insertGetId(String sql, IPS ips) {
|
||
|
// Connection conn = null;
|
||
|
// PreparedStatement ps = null;
|
||
|
// ResultSet rs = null;
|
||
|
// int id = 0;
|
||
|
// try {
|
||
|
// conn = getConnection();
|
||
|
// ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
||
|
// if (ips != null) ips.setParams(ps);
|
||
|
// ps.executeUpdate();
|
||
|
//
|
||
|
// rs = ps.getGeneratedKeys();
|
||
|
// if (rs.next()) {
|
||
|
// id = rs.getInt(1);
|
||
|
// }
|
||
|
// ps.clearBatch();
|
||
|
// } catch (SQLException e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// try {
|
||
|
// conn.rollback();
|
||
|
// } catch (SQLException err) {
|
||
|
// ErrorHelper.println(err);
|
||
|
// }
|
||
|
// return 0;
|
||
|
// } finally {
|
||
|
// close(rs, ps, conn);
|
||
|
// }
|
||
|
// return id;
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 插入数据
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param ips 设置占位符数据
|
||
|
// * @return 修改成功行数
|
||
|
// */
|
||
|
// public static int insert(String sql, IPS ips) {
|
||
|
// return update(sql, ips);
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 插入数据
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param ips 设置占位符数据
|
||
|
// * @return 修改成功行数
|
||
|
// */
|
||
|
// public static int delete(String sql, IPS ips) {
|
||
|
// return update(sql, ips);
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 增、删、改
|
||
|
// *
|
||
|
// * @param sql SQL语句
|
||
|
// * @param ips 设置占位符数据
|
||
|
// * @return 修改成功行数
|
||
|
// */
|
||
|
// public static int update(String sql, IPS ips) {
|
||
|
// int rows = 0;
|
||
|
// try (Connection conn = getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) {
|
||
|
// if (ips != null) ips.setParams(ps);
|
||
|
// rows = ps.executeUpdate();
|
||
|
// } catch (Exception e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// }
|
||
|
// return rows;
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
// /**
|
||
|
// * 关闭数据库
|
||
|
// *
|
||
|
// * @param conn 数据库连接
|
||
|
// */
|
||
|
// public static void close(Connection conn) {
|
||
|
// close(null, null, conn);
|
||
|
// }
|
||
|
//
|
||
|
// public static void close(Statement stat, Connection conn) {
|
||
|
// close(null, stat, conn);
|
||
|
// }
|
||
|
//
|
||
|
// public static void close(ResultSet rs, Connection conn) {
|
||
|
// close(rs, null, conn);
|
||
|
// }
|
||
|
//
|
||
|
// /**
|
||
|
// * 关闭连接-先开后关
|
||
|
// *
|
||
|
// * @param rs rs
|
||
|
// * @param stat ps
|
||
|
// * @param conn conn
|
||
|
// */
|
||
|
// public static void close(ResultSet rs, Statement stat, Connection conn) {
|
||
|
// if (rs != null) {
|
||
|
// try {
|
||
|
// rs.close();
|
||
|
// } catch (SQLException e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
// if (stat != null) {
|
||
|
// try {
|
||
|
// stat.close();
|
||
|
// } catch (SQLException e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
// if (conn != null) {
|
||
|
// try {
|
||
|
// conn.close();
|
||
|
// } catch (SQLException e) {
|
||
|
// ErrorHelper.println(e);
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
//
|
||
|
//
|
||
|
//// /**
|
||
|
//// * 分页查询
|
||
|
//// *
|
||
|
//// * @param sql 查询数据的sql语句
|
||
|
//// * @param countSql 查询数据count的sql
|
||
|
//// * @param clazz 数据类型
|
||
|
//// * @param ips ips
|
||
|
//// * @return page对象
|
||
|
//// */
|
||
|
//// public static <T> PageInfo<T> pagingQuery(String sql, String countSql, Class<T> clazz, IPS ips) {
|
||
|
//// List<T> list = ips == null ? query(sql, clazz) : query(sql, clazz, ips);
|
||
|
////
|
||
|
//// long count = queryOne(countSql, Integer.class);
|
||
|
////
|
||
|
//// PageInfo<T> page = new PageInfo<>();
|
||
|
////
|
||
|
//// page.setTotal(count);
|
||
|
////
|
||
|
//// if (list != null) page.setList(list);
|
||
|
////
|
||
|
//// return page;
|
||
|
//// }
|
||
|
//
|
||
|
//
|
||
|
//// /**
|
||
|
//// * 分页查询
|
||
|
//// *
|
||
|
//// * @param sql 查询数据的sql语句
|
||
|
//// * @param countSql 查询数据count的sql
|
||
|
//// * @param clazz 数据类型
|
||
|
//// * @return page对象
|
||
|
//// */
|
||
|
//// public static <T> PageInfo<T> pageQuery(String sql, String countSql, Class<T> clazz) {
|
||
|
//// return pagingQuery(sql, countSql, clazz, null);
|
||
|
//// }
|
||
|
//}
|