即使语句有效且相应的数据, ResultSet rs.next()
方法也始终返回false。
我在JAVA Eclipse IDE中使用SQLite。
连接类:
import java.sql.*;
import javax.swing.*;
public class sqliteConnection {
Connection con = null;
public static Connection dbconnector() {
try {
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Ishmeet\\workspace\\costumers.sqlite");
return con;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}
主程序:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import restaurant.sqliteConnection;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Label;
import java.sql.*;
import javax.swing.*;
public class demo extends JFrame {
private JPanel contentPane;
private JTextField t1;
private JTextField t2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
demo frame = new demo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
Connection con=null;
private JTextField t3;
public demo() {
con = sqliteConnection.dbconnector();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblV = new JLabel("v1");
lblV.setBounds(82, 79, 46, 14);
contentPane.add(lblV);
JLabel lblV_1 = new JLabel("v2");
lblV_1.setBounds(82, 128, 46, 14);
contentPane.add(lblV_1);
t1 = new JTextField();
t1.setBounds(138, 76, 86, 20);
contentPane.add(t1);
t1.setColumns(10);
t2 = new JTextField();
t2.setBounds(138, 125, 86, 20);
contentPane.add(t2);
t2.setColumns(10);
JButton btnCheck = new JButton("match");
btnCheck.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
String vo="v2";
String vz="v3";
String query = ("SELECT * FROM v where v1=? ");
PreparedStatement pst=con.prepareStatement(query);
pst.setString(1, t1.getText());
ResultSet rs = pst.executeQuery();
if(rs.next())
{
t2.setText(rs.getString("v2"));
t3.setText(rs.getString("v3"));
}
else{
JOptionPane.showMessageDialog(null, "NO DATA FOR THIS ID");
}
rs.close();
pst.close();
con.close();
}catch(Exception e1)
{
JOptionPane.showMessageDialog(null, e1);
}
}
});
btnCheck.setBounds(204, 197, 89, 23);
contentPane.add(btnCheck);
t3 = new JTextField();
t3.setBounds(138, 156, 86, 20);
contentPane.add(t3);
t3.setColumns(10);
Label label = new Label("v3");
label.setBounds(66, 154, 62, 22);
contentPane.add(label);
}
}