您的位置:首页 > 编程语言 > Java开发

java连接百度云BAE的mysql拓展服务失败原因

2016-09-27 11:51 399 查看
本人使用BAE环境是java7+tomcat7,并且使用的是BAE的拓展服务中的mysql

昨日开始尝试通过官方文档的例子连接BAE的mysql数据库

官方连接示例:

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
String sql = null;

try {
/***** 填写数据库相关信息(请查找数据库详情页) *****/

String databaseName = "你自己的数据库名";
String host = "sqld.duapp.com";
String port = "4050";
String username = "你的Access Key ID"; // 用户AK
String password = "你的Secret Key ID<span style="font-family: Arial, Helvetica, sans-serif;">"; // 用户SK</span>
String driverName = "com.mysql.jdbc.Driver";
String dbUrl = "jdbc:mysql://";
String serverName = host + ":" + port + "/";
String connName = dbUrl + serverName + databaseName;

/****** 接着连接并选择数据库名为databaseName的服务器 ******/
Class.forName(driverName);
connection = DriverManager.getConnection(connName,
username, password);
stmt = connection.createStatement();
/****** 至此连接已完全建立,就可对当前数据库进行相应的操作了 *****/
/****** 接下来就可以使用其它标准mysql函数操作进行数据库操作 *****/
// 创建一个数据库表
sql = "create table if not exists test_mysql("
+ "id int primary key auto_increment,"
+ "no int, " + "name varchar(1024),"
+ "key idx_no(no))";
stmt.execute(sql);
} catch (Exception e) {
System.out.println(resp.getWriter().toString());
e.printStackTrace(resp.getWriter());
}
}


但是执行总是一直出现如下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

之前在网上看到的BAE环境中内置了mysql驱动,所以就没有自己添加驱动!但是这个错误告诉我们BAE环境并没有内置mysql驱动,必须要自己添加

于是我就添加了一个5.1.7版本的驱动,结果有出错了

Protocol Packet Invalid:驱动包错误

感觉这个就有点扯了,文档里明明说了下面这句话:

支持各语言原生的SDK访问数据库。

而且并没有看到有说需要哪个版本的mysql驱动

最后好不容易查到需要mysql-connector-java-5.1.18 版本的驱动,这才一举解决问题!

另外建议上官网下载该版本或者从我的CSDN资源里下载,因为我第一次在网上找的该版本并没有成功!

祝各位好运!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BAE mysql 连接数据库