Java 随机数猜测游戏-玩家日志
我创建了这个随机数字猜测游戏,发现我需要存储用户名、用户玩的时间和日期以及他的分数 以下是我编写的关于我试图创建的逻辑的代码: 这是连接的代码:Java 随机数猜测游戏-玩家日志,java,database-connection,Java,Database Connection,我创建了这个随机数字猜测游戏,发现我需要存储用户名、用户玩的时间和日期以及他的分数 以下是我编写的关于我试图创建的逻辑的代码: 这是连接的代码: Connection cn=null; ResultSet rs=null; Statement stat=null; Statement statement=null; insert语句正在使用: int ok; try { ok=stateme
Connection cn=null;
ResultSet rs=null;
Statement stat=null;
Statement statement=null;
insert语句正在使用:
int ok;
try
{
ok=statement.executeUpdate("INSERT INTO Table1(Player_name,Play_date, Player_score) VALUES("+'"'+username+","+datetime+","+scoretodb+'"'+")");
}catch(SQLException bleh){}
public void setConnection()
{
try
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection("jdbc:odbc:db1");
stat=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stat.executeQuery("Select Player_name,Play_date,Player_score from Table1");
rs.next();
}catch(ClassNotFoundException cnfe){}
}catch(SQLException sqle){}
}
下面是我使用的连接函数:
int ok;
try
{
ok=statement.executeUpdate("INSERT INTO Table1(Player_name,Play_date, Player_score) VALUES("+'"'+username+","+datetime+","+scoretodb+'"'+")");
}catch(SQLException bleh){}
public void setConnection()
{
try
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection("jdbc:odbc:db1");
stat=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stat.executeQuery("Select Player_name,Play_date,Player_score from Table1");
rs.next();
}catch(ClassNotFoundException cnfe){}
}catch(SQLException sqle){}
}
我在这里尝试的逻辑是,每次单击按钮时,我都会将一条新记录写入我的数据库,其中包含以下字段:
Player_name, Play_date, Play_score
这显然需要玩家的用户名、日期和时间以及他/她的分数
但是,当我执行上述查询(代码)并单击指定用于写入新记录的按钮时,按钮会粘在面板上(这显然是一个错误的标志,我仍在考虑它可能是什么类型),并且数据库没有我输入的值。顺便说一下,我的数据库已经连接到我的程序。用户名来自JTextField=txtaser,日期/时间来自以下代码:
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//get current date time with Date()
Date date = new Date();
用户的分数来自userscore=Integer
我如何让它将新记录写入数据库?我在这个问题上提供的代码是否可能做到这一点?首先,您不应该像现在这样忽略异常:
}catch(ClassNotFoundException cnfe){}
}catch(SQLException sqle){}
试着这样做:
}catch(ClassNotFoundException cnfe){
cnfe.printStackTrace();
}
}catch(SQLException sqle){
sqle.printStackTrace();
}
这样,如果try
块出现问题,软件至少有机会给您一些反馈。(请注意,您的程序必须使用“java.exe”(而不是“javaw.exe”)运行,以便您可以看到打印到控制台的异常。)
此外,按钮向下的事实表明按钮操作处理程序代码正在引发异常。因此,在按钮操作处理程序中编写一个try/catch块:
public void actionPerformed(java.awt.event.ActionEvent evt) {
try
{
// your code here
}
catch(Throwable t)
{
t.printStackTrace();
}
}
希望您开始看到异常和堆栈跟踪,这通常是隔离问题的第一步。您有错误吗?问题是什么?StackTrace中是否有错误?\u错误点位于时段。是什么引起的?我不明白你的问题。如果你有一个堆栈跟踪,复制并粘贴它。我有一个堆栈跟踪。我试过了,因为您建议它可以捕获代码中出现的错误。但是t.printStackTrace();我的意思是,错误是指“t”之后的句点。对不起,我不知道为什么会发生这种情况。代码对我来说很好用。