1

this is a Java Code i wrote in Eclipse to retrieve information from a MySQL Database.. But the Compiler is giving an error saying conn cannot be resolved to a type.. can anyone pls tel me what i may be doin wrng??

import java.sql.*;

public class plh {

static Connection conn=null;
static Statement s=null;

public static void main(String[] args){


    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/wonkashop","root", "");
        String st= new String("select * from users;");
        s= new conn.createStatement(st);//ERROR.. why??

    }
    catch (Exception e) {
        System.out.println("Unable to connect to Database");
    }
}

}
4

6 回答 6

2

在这里排队

   s= new conn.createStatement(st);//ERROR.. why??

不需要新的keyword

喜欢

  Class.forName("com.mysql.jdbc.Driver");
  conn = DriverManager.getConnection(credentials);
  stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(st);
于 2013-08-24T06:25:04.403 回答
2

我遇到了同样的问题,通过互联网冲浪试图获得一个没有成功的解决方案,我把这些进口产品放进去,它对我有用。

import java.sql.*;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

我希望这可以帮助更多的人。

于 2016-02-08T17:23:13.540 回答
1

从您的代码行中删除new关键字。你需要得到Statementas :

 s= conn.createStatement(); // createStatement doesn't take a String argument

DriverManager.getConnection()已经返回一个Connection对象,您已通过标识符引用该对象,conn因此使用它来获取Statement.

如果要传递 sql 查询字符串,请使用 aPreparedStatement而不是 a Statement。那就是Connection#prepareStatement(sql)

陈述 :

final String st= "select * from users;";
Statement s = conn.createStatement();
ResultSet rs = stmt.executeQuery(st);

准备好的声明:

final String st= "select * from users;";
PreparedStatement preparedStatement = conn.prepareStatement(st);
ResultSet rs = preparedStatement.executeQuery();
于 2013-08-24T06:24:00.963 回答
0

更改此行

s= new conn.createStatement(st);//ERROR.. why??

s= conn.createStatement();

连接#createStatement

返回一个新的默认 Statement 对象。

于 2013-08-24T06:24:08.590 回答
0

只是conn.createStatement();。不要放在new这里,因为你没有实例化一个类。

你应该只写new在一个类的名字之前,因为它创建了那个类的一个对象。但在这里,conn不是类的名称 - 它只是引用某个类的现有对象的变量的名称。

于 2013-08-24T06:24:13.393 回答
0
    try {
           Class.forName("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/wonkashop", "root", "");
           st= "select * from users";
           s =  conn.createStatement();// fixed
           ResultSet rs = s.executeQuery(st);
           while(rs.next()){
               //Retrieve by column name
               int id  = rs.getInt("id");
               String name = rs.getInt("name");

          }

    }
于 2013-08-24T06:38:48.780 回答