日期:2014-05-16 浏览次数:20483 次
int executeSQL(String sql) throws SQLException { Connection conn = getConnection(); // 通过某种方式获取数据库连接 PreparedStatement ps = null; int res = 0; try{ ps = conn.prepareStatement(sql); res = ps.executeUpdate(); }finally{ try{ ps.close(); }catch(Exception e){} try{ conn.close();// }catch(Exception e){} } return res; }
public class ConnectionParam implements Serializable { private String driver; // 数据库驱动程序 private String url; // 数据连接的 URL private String user; // 数据库用户名 private String password; // 数据库密码 private int minConnection = 0; // 初始化连接数 private int maxConnection = 50; // 最大连接数 private long timeoutValue = 600000;// 连接的最大空闲时间 private long waitTime = 30000; // 取连接的时候如果没有可用连接最大的等待时间
/** * 连接池类厂,该类常用来保存多个数据源名称合数据库连接池对应的哈希 * @author liusoft */ public class ConnectionFactory { // 该哈希表用来保存数据源名和连接池对象的关系表 static Hashtable connectionPools = null; static{ connectionPools = new Hashtable(2,0.75F); } /** * 从连接池工厂中获取指定名称对应的连接池对象 * @param dataSource 连接池对象对应的名称 * @return DataSource 返回名称对应的连接池对象 * @throws NameNotFoundException 无法找到指定的连接池 */ public static DataSource lookup(String dataSource) throws NameNotFoundException { Object ds = null; ds = connectionPools.get(dataSource); if(ds == null || !(ds instanceof DataSource)) throw new NameNotFoundException(dataSource); return (DataSource)ds; } /** * 将指定的名字和数据库连接配置绑定在一起并初始化数据库连接池 * @param name 对应连接池的名称 * @param param 连接池的配置参数,具体请见类 ConnectionParam * @return DataSource 如果绑定成功后返回连接池对象 * @throws NameAlreadyBoundException 一定名字 name 已经绑定则抛出该异常 * @throws ClassNotFoundException 无法找到连接池的配置中的驱动程序类 * @throws IllegalAccessException 连接池配置中的驱动程序类有误 * @throws InstantiationException 无法实例化驱动程序类 * @throws SQLException 无法正常连接指定的数据库 */ public static DataSource bind(String name, ConnectionParam param) throws NameAl