我必须通过jFrame中的上一个和下一个按钮查看数据库行。
所以我使用结果集方法rs.next(
)和rs.prvious()这些代码很好,但我不知道如何为jFrame开始运行时连接到数据库的数据库连接创建一个单独的类。现在我编写完整的代码用于创建连接并在这些按钮内前进/后退方法(向前和向后按钮),所以每次按向前或向后按钮它将开始创建新连接并仅显示第一行数据库。遍历我有最初连接数据库,我必须从这些按钮删除数据库创建连接代码如何可能?我的代码在下面给出的前进按钮中
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
//Here each time button press it newly create a connection i want to avoid that
// I want to connect with database when jFrame start to run
//Checking Driver
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
String s1 ="jdbc:mysql://localhost:3306/store";
String user1="root";
String pass="root";
Statement stmt;
ResultSet rs;
Connection con;
con=DriverManager.getConnection(s1, user1, pass);
String q5 ="SELECT p_id,p_name,p_cata,p_brand,real_price,p_price,p_qty FROM PRODUCTS";
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(q5);
if (rs == null)
{
System.out.println("sorry no data");
}
if (rs!=null)
{
if(rs.next())
{
//assigning values to strings from
String x0 =rs.getString("p_id");
String x1 =rs.getString("p_name");
String x2 =rs.getString("p_cata");
String x3=rs.getString("p_brand");
Float xs5=rs.getFloat("real_price");
String x5= Float.toString(xs5);
Float xs6=rs.getFloat("p_price");
String x6 =Float.toString(xs6);
int xs7 =rs.getInt("p_qty");
String x7 =Integer.toString(xs7);
//set values to jlabel
jLabel13.setText(x0);
jLabel15.setText(x1);
jLabel17.setText(x2);
jLabel19.setText(x3);
jLabel21.setText(x5);
jLabel23.setText(x6);
jLabel27.setText(x7);
}
else{
rs.previous();
jLabel8.setText("End of Database");
}
}
}
catch(SQLException e)
{
e.printStackTrace();
}
答案 0 :(得分:0)
我相信您可以连接到数据库一次,将 ResultSet 数据存储在集合中,每次按后退/前进按钮时,只显示部分您需要的集合。
关于连接方面,请检查我的代码here,看看我做了什么以及它对您有帮助。
然后,在我的主屏幕中,我只创建一个BlahSQL对象来处理对数据库的SQL查询。