【问题标题】:Compilation error - com.mysql.jdbc.Driver cannot be resolved to a variable编译错误 - com.mysql.jdbc.Driver 无法解析为变量
【发布时间】:2012-11-20 04:02:21
【问题描述】:

我对预先捆绑的 STS 几乎不熟悉。我正在 Fedora 17 上的 Eclipse/Spring 中尝试 JDBC for MySQL

已下载 mysql JDBC 驱动程序 (mysql-connector-java-5.1.22-bin.jar)。然后在IDE中

  1. 创建了一个项目并将其命名为 JDBC
  2. 在项目下创建了一个名为“lib”的文件夹
  3. 进入项目 > 属性。选择 Java 构建路径,然后选择“库”选项卡。单击“添加罐子”选择 JDBC > lib > mysql---.jar 并单击确定。这在 Project Explorer 窗格下添加了一个“Referenced Libraries”,我在其下看到了 mysql jar 文件。
  4. 在项目下写了如下代码

我有点认为我已经完成了编译所需的工作。但是,我看到了

Class.forName(com.mysql.jdbc.Driver);

com.mysql.jdbc.Driver 无法解析为变量

你能告诉我这里出了什么问题吗?

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;


    public class TestJDBC {

        /**
         * @param args
         */
        public static void main(String[] args)  throws Exception{
            // TODO Auto-generated method stub
            Connection connection = null;
            Statement statement = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                Class.forName(com.mysql.jdbc.Driver);
                connection = DriverManager.getConnection("jdbc:mysql://localhost/testdb?" + 
                             "user=myuser&password=mypwd");
                if (connection != null) {
                    System.out.println ("Connected may be?");
                    connection.close();
                }
                else {
                    System.out.println ("Not connected?");
                }
            }
            catch (Exception e) {
                connection.close();
            }
        }
    }

【问题讨论】:

    标签: java eclipse jdbc


    【解决方案1】:
    Class.forName("com.mysql.jdbc.Driver");
    

    Class.forName(com.mysql.jdbc.Driver.class.getName());
    

    会更好。 (第二个编译但没有真正意义,因为它假设类已经加载:)

    【讨论】:

    • 我没有意识到我错过了双引号。好吧,我已经为没有注意到它付出了代价。谢谢
    【解决方案2】:

    你想使用:

    Class.forName("com.mysql.jdbc.Driver");
    

    以后,请注意编译器会告诉您它所期望的:一个变量。您只需要弄清楚如何修改或将您拥有的东西转换成它想要的东西。在这种情况下,可以使用任何转换为​​值(常量、变量或返回值的方法)的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 2011-10-12
      • 2013-07-02
      • 2014-08-09
      • 2014-09-01
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多