这是我在Eclipse中编写的Java代码,用于从MySQL数据库中检索信息。但编译器发出错误,说conn无法解析为某种类型..任何人都可以告诉我,我可能会做什么? ?
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");
}
}
}
答案 0 :(得分:1)
从您的代码行中删除new
关键字。您需要将Statement
作为:
s= conn.createStatement(); // createStatement doesn't take a String argument
DriverManager.getConnection()
已经返回Connection
个对象,您已使用标识符conn
引用该对象,因此使用它来获取Statement
。
如果要传递sql查询字符串,请使用PreparedStatement
而不是Statement
。
那是Connection#prepareStatement(sql)
。
声明:
final String st= "select * from users;";
Statement s = conn.createStatement();
ResultSet rs = stmt.executeQuery(st);
<强>的PreparedStatement:强>
final String st= "select * from users;";
PreparedStatement preparedStatement = conn.prepareStatement(st);
ResultSet rs = preparedStatement.executeQuery();
答案 1 :(得分:1)
这一行
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);
答案 2 :(得分:0)
更改此行
s= new conn.createStatement(st);//ERROR.. why??
到
s= conn.createStatement();
返回一个新的默认Statement对象。
答案 3 :(得分:0)
只需conn.createStatement();
。不要把new
放在这里,因为你没有实例化一个类。
您应该只在类的名称前面写new
,因为它会创建该类的对象。但是在这里,conn
不是类的名称 - 它只是引用某个类的现有对象的变量的名称。
答案 4 :(得分: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");
}
}
答案 5 :(得分:0)
我遇到了同样的问题,并且通过互联网进行网上冲浪以获得解决方案而没有成功我将这些进口产品放入其中并且它对我有用。
import java.sql.*;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
我希望这可以帮助更多人。