你的程序里用的是JDBC连接,你要连到百度的数据库上,你就需要使用百度提供的数据库开放API, 以及相应的接口。那么百度自己的数据库是按照JDBC的形式开发的么? 如果不是的话你就要重写数据库连接和操作的代码。

解决方案 »

  1.   

    百度给的例子是这样的,貌似是JSP文件啊,我想弄成java的,就是用一个类管理数据库操作的。
    不知道咋修改,请大神一定帮帮忙!我的百度平台数据库名字是:XvcHUKJAEYILyQtkXebj
     项目域名是:tedrenren.duapp.com<%
            //(1)指定服务地址,其中dbname需要自己修改
            //String dbUrl = "jdbc:mysql://sqld.duapp.com:4050/dbname";
            //(2)直接从请求header中获取ip、端口、用户名和密码信息
    //String host = request.getHeader("BAE_ENV_ADDR_SQL_IP");
    //String port = request.getHeader("BAE_ENV_ADDR_SQL_PORT");
    //String username = request.getHeader("BAE_ENV_AK");
    //String password = request.getHeader("BAE_ENV_SK");
           //(3)从线程变量BaeEnv接口获取ip、端口、用户名和密码信息
    String host = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_ADDR_SQL_IP);
    String port = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_ADDR_SQL_PORT);
    String username = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_AK);
    String password = BaeEnv.getBaeHeader(BaeEnv.BAE_ENV_SK);
    String driverName = "com.mysql.jdbc.Driver";
    String dbUrl = "jdbc:mysql://";
    String serverName = host + ":" + port + "/";
     
            //从平台查询应用要使用的数据库名
    String databaseName = "mCMiaZybhmnkeuAMtBSq";
    String connName = dbUrl + serverName + databaseName;
    String sql = "select * from mxs_test_table";
     
    Connection connection = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
    Class.forName(driverName);
                    //具体的数据库操作逻辑
    connection = DriverManager.getConnection(connName, username,
    password);
    stmt = connection.createStatement();
    rs = stmt.executeQuery(sql);
    String id = "", name = "", pwd = "";
    while (rs.next()) {
    id = rs.getString("id");
    name = rs.getString("uname");
    pwd = rs.getString("pwd");
    }
    } catch (ClassNotFoundException ex) {
    // 异常处理逻辑
    } catch (SQLException e) {
    // 异常处理逻辑
     
    } finally {
    try {
    if (connection != null) {
    connection.close();
    }
    } catch (SQLException e) {
     
    }
    }
     %>
      

  2.   

    我是一个大三学生,做了个JSP小网站,想把它弄在百度平台上。结果卡在数据库这块了。
      

  3.   

    最开始我的代码能在本地的tomcat下运行。就是想把它弄在网上。
      

  4.   

    试验了一番,貌似相当之麻烦,你需要:1. 申请一个百度账户,并创建一个Web应用
    2. 将应用托管到BAE平台(采用Java模式)
    3. 选择创建一个MySQL数据库(一个月免费1G容量, 256m内存)
    4. 编写Web程序,并通过SVN上传到BAE托管项目地址相信前三步你已经搞定了,第四步需要用的SVN由于百度BAE指明了不支持jndi, 所以你的本地程序的ctx肯定是不能用的。
    关于百度给出的JSP的那个例子,其中的(2)和(3)都需要在运行时获取BAE,然后再调用,所以明显不适合你本机调试,因此(1)中的方法比较实用,直接用域名+用户名和密码不过百度Web应用直接通过域名+用户名和密码的方式我还没有试验出来,根据百度的说明,我都不知道他们是不是关闭了散户应用的域名,这些还有待研究。另外,百度应用主页上有个SSH的例子,说是上传了就能用,你可以试一试
      

  5.   


    先谢谢你这么认真回答我们新手的问题!
    每个项目百度都分配了域名的,我的项目就是:tedrenren.duapp.com我一会儿去主页上看看~
      

  6.   

    不知道 楼主解决了  没有?能否分享下,我也是这样的问题,对百度很无语,还是怪自己的能力问题。想在本地调试,不想写个jsp。
      

  7.   


    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了
      

  8.   


    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~
      

  9.   


    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~
    这样可以了吗?
      

  10.   

     
    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~谢谢。。这样是可以的。
      

  11.   

    import com.baidu.bae.api.util.BaeEnv;请问楼主这个包在哪里下载,我找了半天没找到也许这个问题很白痴,麻烦楼主了,谢谢
      

  12.   


    这个把eclipse插件配置好就带有相关包了,也包含这个包。http://developer.baidu.com/wiki/index.php?title=docs/cplat/ide/install这是插件配置的相关介绍,可以参考一下。
      

  13.   


    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~谢谢。。这样是可以的。
    我的老是这样的问题
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    怎么解决呢
      

  14.   

    怎么把ssh2的项目发到BAE上面
      

  15.   

    我也是一名大三学生,http://blog.csdn.net/df1012890048/article/details/14424401希望对你有帮助
      

  16.   

    我也是一名大三学生,http://blog.csdn.net/df1012890048/article/details/14424401希望对你有帮助你好,我也在学BAE,可以给个QQ联系交流一下吗,我有些入门的问题想问一下
      

  17.   


    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~
    这样可以了吗?这是我部署的一个商城。。 http://taoshu123.duapp.com 也是java的
      

  18.   

    来晚了
    不知道楼主问题解决没有?
    其实不用这么麻烦,数据库的url、user、password都是不会变的。
    private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://sqld.duapp.com:4050/GUZhpiTXihEJJgYpIWHz";
    private static final String USER = "t8gCcU8htrF2nErhKlggXIKt";
    private static final String PWD = "VBdqaX2VYrjcaSWeLEEEfENN5X9mDzeb";
    URL后面的数据库名只有你自己能看到,前面那一段相同
    USER就是API Key
    PWD就是Secret Key//这两个东西你在web应用管理那可以看到,那里还有个重置按钮可以重置这两个东西,看到没?
    没找到的话你可以import com.baidu.bae.api.util.BaeEnv; 导入这个包,按照它提示的来。只是BaeEnv这个类你没办法导入到本地。
    反正我是直接写成常量了我晕,数据库暴露了,求不黑~
    这样可以了吗?请教下 为什么我这样写不行 还会报错啊