编译错误 - com.mysql.jdbc.Driver无法解析为变量

时间:2012-12-02 15:08:12

标签: java eclipse jdbc

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

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

  1. 创建了一个项目并将其命名为JDBC
  2. 在项目
  3. 下创建了一个名为“lib”的文件夹
  4. 去项目>属性。选择Java Build Path,然后选择'Libraries'选项卡。点击'Add Jars'Selected JDBC> lib> mysql --- .jar并单击OK。这在Project Explorer窗格下添加了一个'Referenced Libraries',在其下面我看到了mysql jar文件。
  5. 在项目
  6. 下编写以下代码

    我觉得我已经完成了编译所需的工作。但是,我正在看

    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();
                }
            }
        }
    

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:4)

您想使用:

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

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