本来用得好好的openshift被墙了,无奈只能找过一个免费的空间。同学推荐appfog,appfog的确是一个很好用的空间,支持几乎所有主流的技术。我自己喜欢写点java,刚好我就开始使用了。appfog有一个ruby开发的工具af很好地管理自己的app。写好了app直接使用af上传也是非常的方便。web应用数据库当然少不了,我自己一直比较喜欢使用jdbc连接数据库。之前自己写的一个爬虫程序搞了一个音乐的数据,也在openshift上面搞过一个简单的音乐网站。我一开始就打算能不能直接把自己在openshift上面的app直接迁移过来。代码迁移是非常方便的,数据库也可以通过文件的形式进行导入和导出。我遇到的问题是数据库连接的方式不同,在openshift上面数据库的连接是采用硬编码的方式来输入数据库信息的,而在appfog上面则是采用一个动态的变量,这个变量其实是一个json数据。

  菜鸟一个,一开始对json数据怎么解析都不是很清楚。花了一点功夫去研究json数据的解析。json解析的包需要自己去json的官网弄一个。我去网上下载了一个jar包,开了了尝试之旅。其实json的解析是很简单的,只是自己不熟悉所以花了一些时间。后来json也解析出来了,但是一直连接不上去。上网google和baidu了很久,听有人说是mysql connector版本的问题,也就换了好几个connector也是连接不上。我一度怀疑又是防火墙的问题。。。纠结了很久,我也调试了确定json数据解析没有问题。后来仔细看代码原来是自己的代码的确出了一点弱智的问题=。=。这里贴一下我的解析代码,自己测试过没有问题,希望能够帮助到同样适用appfog的一些朋友:

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服务也是非常的方便。

appfog java jdbc mysql连接的更多相关文章

  1. Java 与 Mysql连接,并分页显示

    这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...

  2. 让Java和MySQL连接起来

    Java 连接 MySQL 需要驱动包,可以下载菜鸟教程提供的 jar 包:http://static.runoob.com/download/mysql-connector-java-5.1.39- ...

  3. java与mysql连接

    package DBHelper; import java.sql.*; public class Demo { public static void main(String[] args) { St ...

  4. Java JDBC MySQL

    一.驱动 下载地址:https://dev.mysql.com/downloads/connector/j/ 二.数据库连接配置 jdbc:mysql://address:port/database? ...

  5. java jdbc dbcp连接SQL Server

    使用到的jar: commons-collections-3.1.jar commons-dbcp-1.4.jar commons-pool-1.5.6.jar sqljdbc4.jar dbcp配置 ...

  6. java JDBC (八) 连接池 DBCP

    package cn.sasa.demo1; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; ...

  7. Java -- JDBC mysql读写大数据,文本 和 二进制文件

    1. 往mysql中读写字符文本 public class Demo1 { /* 创建数据库 create database LOBTest; use LOBTest; create table te ...

  8. JDBC + MySQL 示例

    jdbc mysql connection 教程 翻译自:JDBC MySQL Connection Tutorial Java Database Connectivity (JDBC) 是一个基于J ...

  9. java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)

    java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver) 1.往项目中添加mysql-conne ...

随机推荐

  1. cocos2d-x plist在拍照

    if(!CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("scrollicon_bg.png" ...

  2. 泛型委托及委托中所涉及到匿名方法、Lambda表达式

    泛型委托及委托中所涉及到匿名方法.Lambda表达式 引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到 ...

  3. C#中使用REDIS

    C#中使用REDIS 上一篇>> 摘要 上一篇讲述了安装redis客户端和服务器端,也大体地介绍了一下redis.本篇着重讲解.NET4.0 和 .NET4.5中如何使用redis和C# ...

  4. .net4.5的弱事件

    .net4.5的弱事件 没有伟大的愿望,就没有伟大的天才--Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 事件-我的讲法 老师常告诉我,事件是特殊的委托,为委托提供 ...

  5. Installshield获取安装包版本的系统变量是IFX_PRODUCT_VERSION

    原文:Installshield获取安装包版本的系统变量是IFX_PRODUCT_VERSION Installshield获取安装包版本的系统变量为IFX_PRODUCT_VERSION 当笔记记下 ...

  6. expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash

    expected number,sequence,or string.map evaluated instead of freemarker.template.smplehash 使用freemark ...

  7. Math.random引发的骗术,绝对是用随机数骗前端妹纸的最佳方法

    我觉得今天我运气特好,今天我们来赌一赌,我们来搞个随机数,Math.floor(Math.random() * 10),如果这个数等于0到7,这个月的饭,我全请了,如果是8或9,你就请一个礼拜成不?于 ...

  8. JS获取标签方法及兼容处理

    document.getElementById('Id名');  // 所有浏览器 document.getElementsByTagName('标签名'); // 所有浏览器 document.ge ...

  9. 快速构建Windows 8风格应用3-打包发布应用

    原文:快速构建Windows 8风格应用3-打包发布应用 本篇博文主要介绍如何打包应用程序,成功后如何部署应用程序,最后介绍如何发布应用程序到应用商店中. 如何打包Windows 8风格应用程序呢? ...

  10. CF:Problem 427C - Checkposts良好的沟通 Tarjan算法

    tarjan算法的第一个问题 喷我的脸....手写叠式开成BOOL,我一直在找错了... #include<cstdio> #include<cstring> #include ...