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

本文记录了在BAE环境中使用MySQL遇到的问题及解决过程,包括ClassNotFoundException和ProtocolPacketInvalid等错误,最终确定需要使用mysql-connector-java-5.1.18版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人使用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 版本的驱动,这才一举解决问题!


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

祝各位好运!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值