LoginAuthServlet.java
Class.forName("com.mysql.jdbc.GoogleDriver");
String url="jdbc:google:mysql://Instance_connection_name/dbname?user=xyz&password=abc";
Connection conn = DriverManager.getConnection(url);
String query = "SELECT "
+ " * "
+ " FROM "
+ " users "
+ " WHERE "
+ " user_username = ? AND user_password = ? AND user_status = '1' "
/*+ " user_type = ? "*/
+ " limit 0,1";
PreparedStatement stmtLogin = conn.prepareStatement(query);
stmtLogin.setString(1, username);
stmtLogin.setString(2, userPassword);
ResultSet resource = stmtLogin.executeQuery();
if(resource.next()){
HttpSession sess = req.getSession();
sess.setAttribute("isLogin", "true");
sess.setAttribute("userId", resource.getString("user_id"));
sess.setAttribute("userName", resource.getString("user_username"));
sess.setAttribute("userType", resource.getString("user_type"));
sess.setMaxInactiveInterval(30*60);
resp.sendRedirect("BusinessList.jsp");
}
appengine-web.xml
<use-google-connector-j>true</use-google-connector-j>
当我部署此项目并尝试登录时,给出的响应是 {}..... 我包含了所有 jar 文件,如果我尝试使用 IPV4 地址在本地连接,那么它可以正常工作,但是如果我部署项目,那么它就不起作用,我完成了所有操作,但我的项目无法与 google cloud sql 连接。
最佳答案
如果您使用的是第二代实例,为了从 appengine 连接,您还需要包含区域 JDBC url,如下所示:
String url="jdbc:google:mysql://[PROJECT-ID]:[REGION]:[INSTANCE-NAME]/dbname?user=xyz&password=abc";
这里他们提供了一些例子: https://cloud.google.com/appengine/docs/java/cloud-sql/
关于java - 谷歌云sql未与我的项目连接(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068951/