分享

微信公众平台开发(数据库连接)

 人人驿站 2015-05-10

关于微信公众平台确实是个很好的东西,鉴于需要完成这样一个作业花了2天时间来研究这个,做出了一个简单的东西。


       我们选择的语言是JAVA(当然PHP开发这个更简单,不过我没学,考虑时间成本而继续用自己熟悉的),所用的服务器是SAE(BAE也可以),以及一个微信公众平台测试账号。http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,点击此处进入,用自己的微信扫描二维码就可以申请到一个测试号,高级接口都可以使用,仅仅用来测试是没有任何问题的。

       

       关于微信公众号的基础知识以及基础框架的搭建,请大家参考柳峰老师的博客:http://blog.csdn.net/lyq8479?viewmode=contents,非常全面,绝对可用。按照老师的代码就可以做出下图的效果:



       下面我主要说一下刘峰老师所没有的讲到的数据库连接的部分,我在网上查了不少资料结果越查越糊涂,折腾了好久,所以我特意把自己的悲催经历分享出来,让陷入此中的童鞋可以快速顿悟,以及给在学习的童鞋一个参考,不要误入歧途。


       我原本是在BAE通过简单的JDBC试过,但是可能某个地方失误,微信公众平台最大的缺点就是调试很困难,我花的时间不多,没找到什么调试的方法,悲催的无法成功,又不会调试,百度,看到很多通过request.get("...")或者BaeEnv.getBaeHeader(BaeEnv.BAE_ ENV_ADDR_SQL_IP)等方式获取host,port,username, password的文章,几乎全试过了,都不行。最终的结果却是这样简单,╮(╯▽╰)╭。


       其实很简单,就是和我们平常在本地连接数据库没有任何区别,下面直接贴代码,(SAE的):

  1. import java.sql.Connection;  
  2. import java.sql.SQLException;  
  3. import java.sql.DriverManager;  
  4.   
  5. public class JDBCUtil {  
  6.     private String dbDriver = "com.mysql.jdbc.Driver"// 与本地设置相同  
  7.     private String dbUrl = "jdbc:mysql://w.rdc.sae.sina.com.cn:3307/数据库名称"; // app_yanzel为新浪app数据库名称,开通mysql服务后,通过[服务管理]-〉[MySql]->[管理MySql]中,查看数据库名称  
  8.     private String dbUser = "新浪的access key"// 为[应用信息]->[汇总信息]->[key]中的access key  
  9.     private String dbPassword = "新浪的secret"// 为[应用信息]->[汇总信息]->[key]中的secret  
  10.   
  11.     public Connection createConnection() throws Exception {  
  12.         Connection connection = null;  
  13.         try {  
  14.             Class.forName(this.dbDriver);  
  15.         } catch (ClassNotFoundException e) {  
  16.             e.printStackTrace();  
  17.             throw e;  
  18.         }  
  19.   
  20.         try {  
  21.             connection = DriverManager.getConnection(dbUrl, dbUser,  
  22.                     dbPassword);  
  23.         } catch (SQLException e) {  
  24.             e.printStackTrace();  
  25.             throw e;  
  26.         }  
  27.         return connection;  
  28.     }  
  29.       
  30.   
  31. }  


BAE的数据库连接代码如下:

  1. public class JDBCUtil {  
  2.       
  3.     Connection conn = null ;  
  4.       
  5.     private Connection getConn(){  
  6.           
  7.         try {  
  8.             /*****1. 填写数据库相关信息(请查找数据库详情页)*****/  
  9.             String databaseName = "数据库名";   
  10.             String host = "sqld.duapp.com";  
  11.             String port = "4050";  
  12.             String username = "用户名";//用户名(api key);  
  13.             String password = "用户密码";//密码(secret key)  
  14.             String driverName = "com.mysql.jdbc.Driver";  
  15.             String dbUrl = "jdbc:mysql://";  
  16.             String serverName = host + ":" + port + "/";  
  17.             String connName = dbUrl + serverName + databaseName;  
  18.                
  19.             /******2. 接着连接并选择数据库名为databaseName的服务器******/  
  20.             try {  
  21.                 Class.forName(driverName);  
  22.             } catch (ClassNotFoundException e) {  
  23.                 // TODO Auto-generated catch block  
  24.                 e.printStackTrace();  
  25.             }  
  26.             conn = DriverManager.getConnection(connName, username, password);  
  27.         }catch(SQLException e){  
  28.             e.printStackTrace() ;  
  29.         }  
  30.         return conn;  
  31.     }  
  32.     /** 
  33.      * 关闭连接 
  34.      * @param conn 
  35.      * @param stmt 
  36.      * @param rs 
  37.      * @throws Exception 
  38.      */  
  39.     private void close(Connection conn)throws Exception{  
  40.         if(conn != null){  
  41.             conn.close();  
  42.             conn=null ;  
  43.         }  
  44.     }  
  45. }  

        以上的代码就可以获取到Connection对象,然后在业务层中调用就可以了,之后就是CRUD操作。


        通过微信公众平台的开发,我们了解了这种新型的自媒体,确实很强大,而且也挺好玩,还有很多功能等待我们去探索。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约