简介:Druid被称为受监视的数据库连接池。有关详细信息,请参阅官方链接:( https://github.com/alibaba/druid/wiki/wiki/wiki/druid%E8%Bf%9E6%8E%8E%A5%E6%BBBB%8B%E7%BB%8D)本文仅分析监视过程的源代码。已提出了启动和其他过程,并且没有详细解释。
流程首先DRUID初始化将创建一个druiddatasource数据源对象。示出一个查询作为示例。当我们要求接口查询用户信息时,执行了druiddatasource的getConnection()方法。更改方法返回DRUIDPooledConnection对象。druidpooledconnection obsit.druidpooledconnection obs the druidpooledconnection ofter。连接对象,将执行此对象的准备测试方法(String SQL)方法。下一步,我们从DruidpooledConnection的preperTatement(String sql)开始,用于SQL Monitoring源流程分析。
一
两次获得后,由druidpooledconnection方法返回的predpooledpoodstatement pre -predompilation对象。执行druidpooledpreprepreprepredatement对象的execute()方法。
ThreestatFilter的Internet InternettatementExecute方法和InternalAfterStaterSentExecute方法将记录SQL的执行,并将这些结果保存在JDBCDATASOURESTATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATA中。可以通过获得对象获得SQL随访的执行结果。
总结初始化数据源以创建druiddatasource对象。获取连接时,调用了druiddatasource.getConnection()方法,该方法将返回druidpooledConnection Connection对象。准备方法将确定是否要在池中使用缓存预填充对象来构建DruidpooledPreparedStatement对象并返回。方法主要调用相应的过滤器以在执行,执行之前实现操作数据记录。监视过滤器被实现为statFilter。执行前对应于InternalBeforestatementExecute方法。执行后,执行后,执行InternalFterStaterSentExecute方法。并保存这些结果在JDBCDATASOURCESTATATATATATATATATATATATATATATATATATA中,SQL遵循的执行结果可以通过获取对象获得。