使用SQL创建createStatement时出错 - JDBC

时间:2016-10-27 05:51:19

标签: java mysql sql jdbc

首先,我来自乌拉圭,我的母语是西班牙语,很抱歉我的英语:)

问题是:Here is the problem in an image

您好,我是在Java中使用SQL的新手。我在尝试执行查询时遇到问题,问题是我发现如何连接到数据库,没关系,但是当我尝试在连接类之外进行查询时,我收到错误...

Statement query = connection.createStatement();
ResultSet rs = query.executeQuery("SELECT Nombre FROM Usuarios WHERE Tele = 2001");

此处“连接”有错误

这就是我连接到数据库的方式(这是在public void main中):

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("¿Dónde está el driver?");
            e.printStackTrace();
            return;
        }

        System.out.println("Driver encontrado");
        Connection connection = null;

        try {
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/java_project","root", "usbw");
            System.out.println("Variable 'connection' = " + connection);


        } catch (SQLException e) {
            System.out.println("La conexión falló, mire los errores en consola.");
            e.printStackTrace();
            return;
        }

        if (connection != null) {
            System.out.println("Conexión a la base de datos establecida");
        } else {
            System.out.println("La conexión falló");
        }

可能这对你来说很容易,但我尝试了很多东西而且我没有得到它。如果有人可以帮助我,我将很高兴,感谢你的时间,Gonzalo。

1 个答案:

答案 0 :(得分:0)

根据您的屏幕截图,您尚未定义连接。请用这种方式安排代码。也不要使用很多try catch块。使用代码如下。也 删除com.mysql.jdbc。*并使用import java.sql。*。此外,根据您的代码,您没有以正确的方式将连接作为参数传递。 我在这里更改了您的代码:http://pastebin.com/6wftE9tp

Connection connection = null;
           Statement query = null;
           try{
              //STEP 2: Register JDBC driver
              Class.forName("com.mysql.jdbc.Driver");

              //STEP 3: Open a connection
              System.out.println("Connecting to a selected database...");
              connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/java_project","root", "usbw");
              System.out.println("Connected database successfully...");

              //STEP 4: Execute a query
              System.out.println("Creating statement...");
              query = connection.createStatement();


              ResultSet rs = query.executeQuery("SELECT Nombre FROM Usuarios WHERE Tele = 2001");
              //STEP 5: Extract data from result set
              while(rs.next()){
                 //Retrieve data

              }
              rs.close();
           }catch(SQLException se){
              //Handle errors for JDBC
              se.printStackTrace();
           }catch(Exception e){
              //Handle errors for Class.forName
              e.printStackTrace();
           }finally{
              //finally block used to close resources
              try{
                 if(query!=null)
                     connection.close();
              }catch(SQLException se){
              }// do nothing
              try{
                 if(connection!=null)
                     connection.close();
              }catch(SQLException se){
                 se.printStackTrace();
              }//end finally try
           }//end try

请参考:https://www.tutorialspoint.com/jdbc/jdbc-select-records.htm