【MySQL】mysql连接池( 三 )


如果没有配置 , 将会生成一个名字 , 格式是:"-" + .(this)
连接数据库的url , 不同数据库不一样 。例如:
mysql : jdbc:mysql://10.20.153.104:3306/
: jdbc::thin:@10.20.149.85:1521:
连接数据库的用户名
连接数据库的密码 。如果你不希望密码直接写在配置文件中 , 可以使用 。详细看这里:%E4%BD%BF%E7%94%
根据url自动识别
这一项可配可不配 , 如果不配置druid会根据url自动识别 , 然后选择相应的(建议配置下)
初始化时建立物理连接的个数 。初始化发生在显示调用init方法 , 或者第一次时
最大连接池数量
【【MySQL】mysql连接池】已经不再使用 , 配置了也没效果
最小连接池数量
获取连接时最大等待时间 , 单位毫秒 。配置了之后 , 缺省启用公平锁 , 并发效率会有所下降 , 如果需要可以通过配置属性为true使用非公平锁 。
ts
false
是否缓存 , 也就是 。对支持游标的数据库性能提升巨大 , 比如说 。在mysql下建议关闭 。
ments
-1
要启用 , 必须配置大于0 , 当大于0时 , ts自动触发修改为true 。在Druid中 , 不会存在下占用内存过多的问题 , 可以把这个数值配置大一些 , 比如说100
用来检测连接是否有效的sql , 要求是一个查询语句 。如果为null , 、、都不会其作用 。
true
申请连接时执行检测连接是否有效 , 做了这个配置会降低性能 。
false
归还连接时执行检测连接是否有效 , 做了这个配置会降低性能
false
建议配置为true , 不影响性能 , 并且保证安全性 。申请连接的时候检测 , 如果空闲时间大于 , 执行检测连接是否有效 。
有两个含义:
1) 线程会检测连接的间隔时间2) 的判断依据 , 详细看属性的说明
un
不再使用 , 一个只支持一个
物理连接初始化的时候执行的sql
根据自动识别
当数据库抛出一些不可恢复的异常时 , 抛弃连接
属性类型是字符串 , 通过别名的方式配置扩展插件 , 常用的插件有:
监控统计用的:stat日志用的:log4j防御sql注入的:wall
类型是List , 如果同时配置了和 , 是组合关系 , 并非替换关系
2、代码使用
druid依赖
com.alibabadruid1.1.14
目录下的配置文件(druid.)

【MySQL】mysql连接池

文章插图
driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/schoolusername=rootpassword=123456
.java
public class MyDruid {private DataSource dataSource;private MyDruid() {Properties pro = new Properties();dataSource = new DruidDataSource();FileInputStream is = null;//方式 二try {is = new FileInputStream("D:\\Java\\上课代码\\jsp_demo\\src\\main\\resources\\druid.properties");pro.load(is);dataSource = DruidDataSourceFactory.createDataSource(pro);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}private static class Holder {private static MyDruid druid = new MyDruid();}public static MyDruid getdruid() {return Holder.druid;}public Connection getConnection() throws Exception {Connection conn = dataSource.getConnection();System.out.println(conn);return conn;}}