终于连接上了BAE的是mysql。总结一下:
1.没有用到BAE的Eclipse,个人认为关键在于BAE原来的Eclipse以及BAE-APP project的概念可能不适用与3.0了,所以没有必要了。
2.最重要的是JDBC的使用(mysql-connector-java-5.1.35-bin.jar),应该讲jar文件放到WEB-INF的lib目录下,然后再project>porperties>buildpath中添加。
3.jar包的source并非必要,不查看源码也能使用,相当于封装好的类,既然概念就是封装,何必查看源码呢。
4.BAE的JDK是1.7,编译器要用1.7的,project>porperties>java compilor。
5.@WebSevlet("name"),可以免去很多web.xml的配置的麻烦
6.如果用form的action,action="name"就可以 不用其他相对地址设置;ajax则要有完整的路径,例如"./Login"
package baetest;
//百度的测试示例 ResultSet没有用到
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
//import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MySQLBasic
*/
@WebServlet("/MySQLBasic")
public class MySQLBasic extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@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 = "nZYqSfNTDWDPUAwlvmjy";
String host = "sqld.duapp.com";
String port = "4050";
String username = "DB9b0f8c583e194fb7a8f013a56805f6"; //用户AK
String password = "F52a23174257df9a4e455cd5149bac42"; //用户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) {
e.printStackTrace(resp.getWriter());
}
}
}