1

取得した接続オブジェクトを作成しようとしているときに、jdbc と cloudsql に取り組んでいます

ユーザー ''@'localhost' のデータベース ''test-qa' へのアクセスが拒否されました。この例外..以下のコードを確認してください。

        import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.logging.Logger;

    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.cloudcodes.ErrorHandler;
    import com.google.appengine.api.utils.SystemProperty;


    public class GuestbookServlet extends HttpServlet {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        final  Logger logger=Logger.getLogger(this.getClass().getName());
      @Override
      public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        String url = null;
        try {
            System.out.println(SystemProperty.environment.value()+".."+ SystemProperty.Environment.Value.Production);
            logger.warning(SystemProperty.environment.value()+".."+ SystemProperty.Environment.Value.Production);
            if (SystemProperty.environment.value() ==
                    SystemProperty.Environment.Value.Production) {
                  // Load the class that provides the new "jdbc:google:mysql://" prefix.
                  Class.forName("com.mysql.jdbc.GoogleDriver");
                  logger.warning("class loaded sucessfullyl....");
                  url = "jdbc:google:mysql://myinstanceName/mydatabasename(test-qa)";
                } else {
                  // Local MySQL instance to use during development.
                  /*Class.forName("com.mysql.jdbc.Driver");
                  logger.warning("2nd class loaded sucessfullyl....");
                  url = "jdbc:mysql://localhost/guestbook";*/
                }



        } catch (Exception e) {
             ErrorHandler.errorHandler(this.getClass().getSimpleName(),e);
            e.printStackTrace();
             System.out.println(e.getLocalizedMessage());
          return;
        }

        PrintWriter out = resp.getWriter();
        try {
            logger.warning("the url is..."+url);
          Connection conn = DriverManager.getConnection(url);
          try {


              String statement = "INSERT INTO Emp (empNo, empName) VALUES( ? , ? )";
              PreparedStatement stmt = conn.prepareStatement(statement);
              stmt.setString(1, "1");
              stmt.setString(2, "bhanuprasad");
              int success = 2;
              success = stmt.executeUpdate();
              if (success == 1) {
                out.println(
                    "<html><head></head><body>Success! Redirecting in 3 seconds...</body></html>");
              } else if (success == 0) {
                out.println(
                    "<html><head></head><body>Failure! Please try again! " +
                    "Redirecting in 3 seconds...</body></html>");

            }
          } finally {
            conn.close();

          }
        } catch (SQLException e) {
          e.printStackTrace();
          ErrorHandler.errorHandler(this.getClass().getSimpleName(),e);
        }
        resp.setHeader("Refresh", "3; url=/guestbook.jsp");
      }
    }

同じインスタンス名とデータベース名で、Spring アプリケーションと Hibernet アプリケーションを使用していますが、正常に動作していますが、次のようになります。データベースへのユーザー ''@'localhost' のアクセスが拒否されました。adminapiconsoleからこのデータベースをチェックすると、これらのテーブルが見つかります。これを解決できますか?誰か助けてください

4

0 に答える 0