ResultSet不返回任何值

时间:2015-10-15 19:54:44

标签: java sqlite database-connection resultset

即使语句有效且相应的数据, 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);
    }
}

0 个答案:

没有答案