zoukankan      html  css  js  c++  java
  • lis分析之一一批处理(任务)如何连接数据库的

    public class ZFBCheckAccountTask extends TaskThread {
    }

    这个类运行时候自动加载了数据库连接,不明白是如何提前加载的,开始用static { } 去全局搜索,未果(现在觉得思路就不对,因为只加载了自己的类,所以只可能加载自己这个类的static{}方法;用提示语全局搜索未果,因为连接方法在依赖的jar包中;接着想到了他的父类TaskThread ,对父类进行断点跟踪, 在构造方法中

    public TaskThread() {
            LDTaskParamDB tLDTaskParamDB = new LDTaskParamDB();
            tLDTaskParamDB.setTaskCode("000000");
            tLDTaskParamDB.setTaskPlanCode("000000");
            tLDTaskParamDB.setParamName("ServerType");
            if (tLDTaskParamDB.getInfo()) {

    接着进入

    tLDTaskParamDB.getInfo()
        public boolean getInfo() {
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            if (!this.mflag) {
                this.con = DBConnPool.getConnection();
            }

    在DBConnPool类中有静态方法

     static {
            for(int nIndex = 0; nIndex < 63; ++nIndex) {
                dbConns[nIndex] = new DBConn();
            }
    
        }

    接着进入DBConn类中,构造方法

        protected DBConn() {
            this.m_pw = new PrintWriter(this.m_buf, true);
            this.mGlobalPools = GlobalPools.getInstance();
            this.JUrl = new JdbcUrl();
            this.bNotInUse = true;
        }

    在进入jdbcURl类中

     static {
            InputStream stream = JdbcUrl.class.getClassLoader().getResourceAsStream("jdbc.properties");
            Properties properties = new Properties();
    
            try {
                logger.info("【数据连接】开始加载数据库连接配置");
                properties.load(stream);
                JDBC_DB_TYPE = (String)properties.get("jdbc.DBType");
                JDBC_DB_NAME = (String)properties.get("jdbc.DBName");
                logger.info("【数据连接】对转码的数据库信息进行进行解码");
                JDBC_IP = ConfigSecret.decode((String)properties.get("jdbc.IP"));
                JDBC_PORT = ConfigSecret.decode((String)properties.get("jdbc.Port"));
                JDBC_USERNAME = ConfigSecret.decode((String)properties.get("jdbc.UserName"));
                JDBC_PASSWORD = ConfigSecret.decode((String)properties.get("jdbc.PassWord"));
                JDBC_DEFAULT_CONN = (String)properties.get("jdbc.DefaultConn");
                String fileConfigFlagStr = (String)properties.get("jdbc.fileConfigFlag");
                fileConfigFlag = Boolean.getBoolean(fileConfigFlagStr);
                logger.info("【数据连接】读取数据库连接完成,数据库连接地址" + JDBC_IP + ",数据库用户名:" + JDBC_USERNAME);
                logger.info("【数据连接】开始初始化数据库连接");
                initMultPool();
                logger.info("【数据连接】初始化数据库连接完成");
            } catch (Exception var11) {

    这里就是的static 代码块读取了jdbc.prperties的属性

    一文理解class.getClassLoader().getResourceAsStream(file)和ass.getResourceAsStream(file)区别

  • 相关阅读:
    看我如何破解一台自动售货机
    充满未来和科幻的界面设计FUI在国内还没有起步在国外早起相当成熟
    libuv之介绍
    纯净版xp系统在局域网共享需要密码如何解决
    xp局域网共享设置
    Qt5设置应用程序图标
    我们为什么以及是如何从 Angular.js 迁移到 Vue.js?
    [转]聊聊技术选型
    VueJS如何引入css或者less文件的一些坑
    tomcat启动不成功(点击startup.bat闪退)的解决办法
  • 原文地址:https://www.cnblogs.com/zytcomeon/p/14035278.html
Copyright © 2011-2022 走看看