ClassNotFoundException:com.mysql.jdbc.GoogleDriver

时间:2013-11-24 09:30:24

标签: mysql mysql-workbench

我想知道在APP ENGINE中托管我的项目时是怎么抛出这个错误的,为了分析起见,我添加了大量的日志记录。当我使用来自我本地的ip的com.mysql.jdbc.Driver时,它可以工作。请帮助!!

    String name = "Vinodh";
    String url = null;
    try {
        Class.forName("com.mysql.jdbc.GoogleDriver");
        url = "jdbc:google:mysql://xxxxxxx:xxxxxx/vinodh?user=root&password=xxxxxx";

        // Statements allow to issue SQL queries to the database
        log.info("Initiate Connection");
        Connection conn = DriverManager.getConnection(url);
        log.info("Got Connection");
        Statement statement = conn.createStatement();
        // Result set get the result of the SQL query
        ResultSet resultSet = statement

                .executeQuery("select * from Family");
        log.info("Entering While");
        while(resultSet.next()){
             log.info("Entered While");
            String test = resultSet.getString("Name");
            System.out.println(test);

            name = test+test+test;
        }

1 个答案:

答案 0 :(得分:2)

如本教程所示,在开发过程中你应该使用普通的mysql驱动程序,只使用appengine使用Google mysql驱动程序

  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");
    url = "jdbc:google:mysql://your-project-id:your-instance-name/guestbook?user=root";
  } else {
    // Local MySQL instance to use during development.
    Class.forName("com.mysql.jdbc.Driver");
    url = "jdbc:mysql://127.0.0.1:3306/guestbook?user=root";
  }

另外请仔细检查您是否为您的应用启用了 MySQL Connector / J (默认情况下没有启用)

https://developers.google.com/appengine/docs/java/cloud-sql/#enable_connector_j

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  ...
  <use-google-connector-j>true</use-google-connector-j>
</appengine-web-app>