那么为游戏编写登录检查器,并从C#切换到java.问题是我使用旧代码作为例子,但是通过从连接创建语句来继续解决这个问题.我得到“找不到”createStatement()符号“.是否有新的方法来执行SQL语句或是否有其他错误?
这是源代码.
import java.sql.*;
public class SQLCheck {
public Connection con;
public void connect(){
String host = "somewhereoutthere";
String username = "stuff";
String pass = "haclmolg";
String db = "users";
try{
Class.forName("com.mysql.jdbc.Driver");
String connectionUrl = "jdbc:mysql://"+host+"/"+db+"?";
con = (Connection) DriverManager.getConnection(connectionUrl,username,pass);
System.out.println("Server: Connected to MYSQL");
} catch(SQLException e){
System.out.println("Server: SQL EXECEPTION: " + e.toString());
} catch (ClassNotFoundException cE){
System.out.println("Server: Class not found: " + cE.toString());
}
}
boolean checkLogin(String userName, String password){
boolean correct = false;
Statement s = con.createStatement();
}
}
解决方法:
您不应该为自己的类重用名称Connection.当您声明Connection类型的对象时,您没有使用SQL,您正在使用自己的.
因此,当您声明变量con时,您将声明一个tankgrid.Connection,而不是java.sql.Connection.演员也一样.当你调用con.createStatement()时,你编写的类没有这样的方法.
编辑:
使用源代码更新时,代码仍然存在问题:您需要捕获可能由createStatement()抛出的SQLException. (此外,该方法需要返回一个布尔值.)Eclipse没有看到源的任何其他问题.
标签:java,sql,mysql
来源: https://codeday.me/bug/20190723/1516630.html