package jdbc;
import java.sql.*;
import java.util.Scanner;
class driver{
public static void main(String args[]){
while(true)
{
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/countries","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from countries");
int count = 1;
Scanner scan = new Scanner(System.in);
System.out.println("What county");
String info = scan.next();
{
while(rs.next() )
{
if(rs.getString("name").charAt(rs.getString("name").length() -1) == info.charAt(0) && rs.getString("name").equalsIgnoreCase((info)))
{
System.out.println("success" + rs.getString("name"));
}
}
}
}
catch(Exception e){ System.out.println(e);
}
}
}
}
我的代码obove连接到具有所有国家/地区名称的数据库。当最后给出的国家的最后一个字母等于下一轮给出的国家的第一个字母时,我的游戏就会成功。例如我输入加拿大,下一个输入是安哥拉等...
答案 0 :(得分:1)
您正在比较"最后一个国家"的最后一个字符的数据,如果输入数据是国家/地区,则使用结果集中的相同行。
另外,我不会这样做。您将整个表从数据库提取到运行应用程序的位置,只是将其逐个与用户输入进行比较。你应该用SQL做到这一点。
此外,"最后一个国家"的定义是什么?在您的代码中,最后一个国家/地区是表中所有可用的国家如果这是某种单词关联游戏,则需要存储用户输入的最后一个国家。