通过反射获取DataSource里数据源的账号密码


public Connection getDbConnection()
    {
        Connection conn = null;
        // 获得连接
        DataSource ds = null;
        try
        {
            Context ctx = new InitialContext();
            ds = (DataSource) ctx.lookup("java:comp/env/PCMSDB");
           //ds = (DataSource) ctx.lookup("PCMSJN");// weblogic环境配置数据源
            Class c = ds.getClass();
            //Object invokeTest = c.newInstance();
            Method getPassword = c.getMethod("getPassword", null);
            Method getUsername = c.getMethod("getUsername", null);
            
            Object pwd = getPassword.invoke(ds, null);
            Object username = getUsername.invoke(ds, null);
            //测试输出
            System.out.println("getDbConnection pwd:"+pwd.toString());
            System.out.println("getDbConnection username:"+username.toString());
        }
        catch (Exception e)
        {
            System.out.println("getDbConnection Exception "+e.getMessage());
            e.printStackTrace();
        }
        try
        {
            conn = ds.getConnection();
        }
        catch (SQLException e)        
        {            
            System.out.println("getDbConnection SQLException "+e.getMessage());
        }
        return conn;

    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM