appfog java jdbc mysql鏈接

  原本用得好好的openshift被牆了,無奈只能找過一個免費的空間。同窗推薦appfog,appfog的確是一個很好用的空間,支持幾乎全部主流的技術。我本身喜歡寫點java,恰好我就開始使用了。appfog有一個ruby開發的工具af很好地管理本身的app。寫好了app直接使用af上傳也是很是的方便。web應用數據庫固然少不了,我本身一直比較喜歡使用jdbc鏈接數據庫。以前本身寫的一個爬蟲程序搞了一個音樂的數據,也在openshift上面搞過一個簡單的音樂網站。我一開始就打算能不能直接把本身在openshift上面的app直接遷移過來。代碼遷移是很是方便的,數據庫也能夠經過文件的形式進行導入和導出。我遇到的問題是數據庫鏈接的方式不一樣,在openshift上面數據庫的鏈接是採用硬編碼的方式來輸入數據庫信息的,而在appfog上面則是採用一個動態的變量,這個變量實際上是一個json數據。java

  菜鳥一個,一開始對json數據怎麼解析都不是很清楚。花了一點功夫去研究json數據的解析。json解析的包須要本身去json的官網弄一個。我去網上下載了一個jar包,開了了嘗試之旅。其實json的解析是很簡單的,只是本身不熟悉因此花了一些時間。後來json也解析出來了,可是一直鏈接不上去。上網google和baidu了好久,聽有人說是mysql connector版本的問題,也就換了好幾個connector也是鏈接不上。我一度懷疑又是防火牆的問題。。。糾結了好久,我也調試了肯定json數據解析沒有問題。後來仔細看代碼原來是本身的代碼的確出了一點弱智的問題=。=。這裏貼一下個人解析代碼,本身測試過沒有問題,但願可以幫助到一樣適用appfog的一些朋友:mysql

String databaseInfo = java.lang.System.getenv("VCAP_SERVICES");

        if (databaseInfo != null) {
            try {
                JSONObject jsonObject = new JSONObject(databaseInfo);
                JSONObject mysqlObj = jsonObject.getJSONArray("mysql-5.1").getJSONObject(0);
                JSONObject credentials = mysqlObj.getJSONObject("credentials");

                this.ServerHost = credentials.getString("hostname");
                this.port = String.valueOf(credentials.getInt("port"));
                this.DatabaseName = credentials.getString("name");
                this.userName = credentials.getString("username");
                this.passWord = credentials.getString("password");

            } catch (JSONException ex) {
                Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

  最後推薦你們使用af 的tunnel功能,可使用本地mysql工具鏈接appfog上面的mysql服務也是很是的方便。web

相關文章
相關標籤/搜索