我想展示一些问题和答案。所以为了测试我只是试图显示问题编号和问题,但是那里有
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
错误,我不知道接下来该做什么。 我想用下一个按钮显示下一条记录。 2. seteditable is not work(给出错误)
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:
}
答案 0 :(得分:0)
确保您的类路径中有MySql-Driver。
您可以在此处下载:https://dev.mysql.com/downloads/connector/j/5.0.html
配置类路径取决于您的环境。如果您在eclipse中运行代码,可以按照以下步骤操作:
mysql-connector-java-5.0.8-bin.jar
)放入您的eclipse项目Build Path
,Add to Build Path
使用netbeans:
mysql-connector-java-5.0.8-bin.jar
)放入netbeans项目要跳转到下一个项目,有几个选项。
一个解决方案可能如下所示:
在您的课程顶部添加此代码:
// 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
将选择记录,并在?
ps.setInt(1, currentQid);
会将查询的第一个参数(?
)设置为提供的值currentQid = rs.getInt("qid");
会将下一个qid保存在实例字段currentQid
Integer.toString(currentQid)
会将currentQid
转换为文字jTextField1.setText(...);
会在jTextField1