尝试以下方法:
String dataSourceName = "my_ODBC_DSN_name";
String username = "username";
String password = "password";
String url = "jdbc:odbc:" + dataSourceName;
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, username, password);
PreparedStatement pst = con.prepareStatement("INSERT INTO Scores "
+ "(Name, Difficulty, Characters, Accuracy, Time, Score) "
+ "VALUES (?, ?, ?, ?, ?, ?)");
pst.setString(1, "Name String");
pst.setString(2, "Difficulty String");
pst.setInt(3, 20);
pst.setString(4, "Acurracy String");
pst.setString(5, "Time String");
pst.setString(6, "Score String");
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (con != null)
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
您必须先在 Windows 控制面板中设置 ODBC DSN。它位于控制面板 -> 管理工具 -> 数据源。
除了您的主要问题之外,我还赞同 Russ Cam 的意见,即您可能应该修改您的数据库架构,以便为时间和分数列使用适当的列类型,并可能为准确性和难度使用适当的列类型。在规范化设计中,“姓名”也将是另一个表的外键(类似于 player_id),该表将保存每个玩家的详细信息。