在 jTextField 中显示数据库记录
Display database records in jTextField
我想显示一些问题及其答案。所以为了测试我只是试图显示问题编号和问题但是有
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
错误,我不知道下一步该怎么做。
1. 我想用下一步按钮显示下一条记录。
2. seteditable 不工作(给出错误)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String qid=jTextField1.setEditable(false);
String qid=jTextField1.getText();
String ques=jTextField2.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","");
PreparedStatement ps = con.prepareStatement("select * from qc where qid=1");
ResultSet rs=ps.executeQuery();
if(rs.next()){
jTextField1.setText(rs.getString("qid"));
jTextField2.setText(rs.getString("ques"));
}
}
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
}
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
确保您的 class 路径中有 MySql-驱动程序。
您可以在这里下载:https://dev.mysql.com/downloads/connector/j/5.0.html
配置您的 class 路径取决于您的环境。如果您 运行 您的代码来自 eclipse,您可以按照以下步骤操作:
- 下载jdbc驱动程序
- 将 jdbc 驱动程序(例如
mysql-connector-java-5.0.8-bin.jar
)放入您的 eclipse 项目中
- 右击它,
Build Path
,Add to Build Path
使用 netbeans:
- 下载jdbc驱动程序
- 将 jdbc 驱动程序(例如
mysql-connector-java-5.0.8-bin.jar
)放入您的 netbeans 项目中
- 右键单击项目,Properties,转到Libraries,选择运行-time libraries
- 将 jar 添加到列表
跳转到下一项,有几个选项。
一个解决方案可能如下所示:
将此代码添加到 class 的顶部:
// private JTextField jTextField1;
// private JTextField jTextField2;
// ...
private int currentQid; // add this line to declare a new field of type int
然后在你的 actionlistener 方法中:
PreparedStatement ps = con.prepareStatement("SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1");
ps.setInt(1, currentQid);
ResultSet rs=ps.executeQuery();
if(rs.next()){
currentQid = rs.getInt("qid");
jTextField1.setText(Integer.toString(currentQid));
jTextField2.setText(rs.getString("ques"));
}
详细:
SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1
将 select 记录,qid 在 ?
旁边
ps.setInt(1, currentQid);
将查询的第一个参数(?
)设置为提供的值
currentQid = rs.getInt("qid");
会在实例字段中保存下一个qidcurrentQid
Integer.toString(currentQid)
会将 currentQid
转换为文本
jTextField1.setText(...);
将显示 jTextField1
内的文本
我想显示一些问题及其答案。所以为了测试我只是试图显示问题编号和问题但是有
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
错误,我不知道下一步该怎么做。 1. 我想用下一步按钮显示下一条记录。 2. seteditable 不工作(给出错误)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String qid=jTextField1.setEditable(false);
String qid=jTextField1.getText();
String ques=jTextField2.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","");
PreparedStatement ps = con.prepareStatement("select * from qc where qid=1");
ResultSet rs=ps.executeQuery();
if(rs.next()){
jTextField1.setText(rs.getString("qid"));
jTextField2.setText(rs.getString("ques"));
}
}
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
}
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
确保您的 class 路径中有 MySql-驱动程序。
您可以在这里下载:https://dev.mysql.com/downloads/connector/j/5.0.html
配置您的 class 路径取决于您的环境。如果您 运行 您的代码来自 eclipse,您可以按照以下步骤操作:
- 下载jdbc驱动程序
- 将 jdbc 驱动程序(例如
mysql-connector-java-5.0.8-bin.jar
)放入您的 eclipse 项目中 - 右击它,
Build Path
,Add to Build Path
使用 netbeans:
- 下载jdbc驱动程序
- 将 jdbc 驱动程序(例如
mysql-connector-java-5.0.8-bin.jar
)放入您的 netbeans 项目中 - 右键单击项目,Properties,转到Libraries,选择运行-time libraries
- 将 jar 添加到列表
跳转到下一项,有几个选项。
一个解决方案可能如下所示:
将此代码添加到 class 的顶部:
// private JTextField jTextField1;
// private JTextField jTextField2;
// ...
private int currentQid; // add this line to declare a new field of type int
然后在你的 actionlistener 方法中:
PreparedStatement ps = con.prepareStatement("SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1");
ps.setInt(1, currentQid);
ResultSet rs=ps.executeQuery();
if(rs.next()){
currentQid = rs.getInt("qid");
jTextField1.setText(Integer.toString(currentQid));
jTextField2.setText(rs.getString("ques"));
}
详细:
SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1
将 select 记录,qid 在?
旁边
ps.setInt(1, currentQid);
将查询的第一个参数(?
)设置为提供的值currentQid = rs.getInt("qid");
会在实例字段中保存下一个qidcurrentQid
Integer.toString(currentQid)
会将currentQid
转换为文本jTextField1.setText(...);
将显示jTextField1
内的文本