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

本人使用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"; // 用户SK
			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,连接数据库)