bae云数据库访问及使用方法

来源:互联网 发布:淘宝二手苹果回收 编辑:程序博客网 时间:2024/05/18 12:30

经过苦苦摸索,已经调通了云数据库的使用方法,现在总结如下

bae云数据库分访问方式只有两种:1、通过phpMyadmin使用其云数据库,主要是在线管理数据库 2、在云环境应用中使用,即自己的项目部署到云端后才能使用根据官方提供的demo,数据库的host,port,username,password必须通过BaeEnv云环境请求获取,那么我们该如何在本地测试数据库,然后在云端同步使用呢?为方便我们使用和测试,可以采用如下方法实现:编写数据库辅助类:DBUtil.java
public class DBUtil {    private static String dbUrl = "jdbc:";    public static String port;    public static String host;    public static String username;    public static String password;    public static String databaseName = "IjhBtVDLptcVQsn";//云数据库名    //拒绝new一个实例     private DBUtil() {};     static {//注册驱动         try {             Class.forName("com.mysql.jdbc.Driver");         } catch (Exception e) {             throw new ExceptionInInitializerError(e);        }     }     public static Connection getConnection() throws SQLException {        String connName = dbUrl + host + ":" + port + "/" + databaseName;        return DriverManager.getConnection(connName, DBUtil.username, DBUtil.password);    } }
由于云端数据库的访问必须通过请求获取,因此我们编写一个过滤器来实现host,port等基本信息的初始化,DBFilter如下:
public class DBFilter implements Filter {    /**     * Default constructor.     */    public DBFilter() {        // TODO Auto-generated constructor stub    }    /**     * @see Filter#destroy()     */    public void destroy() {        // TODO Auto-generated method stub    }    /**     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)     */    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        DBUtil.host = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_ADDR_SQL_IP);         //云环境使用的host,port等信息获取        DBUtil.port = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_ADDR_SQL_PORT);    //当我们将代码部署到云端时,使用这些配置        DBUtil.username = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_AK);        DBUtil.password = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_SK);        /*DBUtil.host = "localhost";                                                       //当我们在本地mysql数据库测试时,使用这些配置,        DBUtil.port = "3306";                                                               //将云端数据库配置注释即可        DBUtil.username = "root";        DBUtil.password = "123456";        DBUtil.databaseName = "kit";*/        chain.doFilter(request, response);    }    /**     * @see Filter#init(FilterConfig)     */    public void init(FilterConfig fConfig) throws ServletException {    }}
web.xml配置如下:
<!-- 用于访问mysql数据库过滤,主要用于访问bae云数据库 -->  <filter>    <display-name>DBFilter</display-name>    <filter-name>DBFilter</filter-name>    <filter-class>com.knowave.kit.filter.DBFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>DBFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>
通过如上配置,即可在本地数据库与云端数据库自由切换了,经过测试是成功有效的。
0 0
原创粉丝点击