从Java中的sqlite数据库加载数据?

时间:2015-07-18 17:55:29

标签: java sqlite

我是Java和sqlite数据库的新手。我正在尝试使用eclipse中的java将数据从数据库加载到表格视图中的一些代码。现在,这就是当我从数据库加载数据时,我想添加一个包含复选框(未选中)的额外列。有人可以建议我如何实现它?请注意,当我运行代码时,它工作得非常好并且没有显示错误....我能够看到表中的所有记录而没有任何错误。只是想要一个未选中的复选框添加到每一行,以便当我点击它时,我可以做一些事情。多数民众赞成我的目标..

这是我到目前为止所尝试的内容..我有两个课程: - 1. sqliteConnection.java(用于连接) 2. employeeinfo.java类,用于将数据库中的数据加载到表和其他功能中。

import java.sql.*;
import javax.swing.*;
public class sqliteConnection {

    Connection conn = null;

    public static Connection dbConnector()
    {
        try{
            Class.forName("org.sqlite.JDBC");
            Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\user\\Downloads\\Documents\\MyJavaProjects\\Phone\\Employee.sqlite");
            JOptionPane.showMessageDialog(null, "Connection Succesful");

            return conn;

        }

        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, e);
            return null;
        }
    }

    public sqliteConnection() {
        // TODO Auto-generated constructor stub
    }

}

employeeinfo.java -

import java.awt.BorderLayout;
public class employeeinfo extends JFrame {

    private JPanel contentPane;
    private JTable table;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    employeeinfo frame = new employeeinfo();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    Connection connection = null;
    private JTextField textField;
    private JTextField textField_1;
    private JTextField textField_2;
    private JTextField textField_3;

    public employeeinfo() {
        connection = sqliteConnection.dbConnector();

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 842, 457);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblJframe = new JLabel("Jframe2");
        lblJframe.setBounds(47, 37, 46, 14);
        contentPane.add(lblJframe);

        JButton btnLoad = new JButton("Load");
        btnLoad.addActionListener(new ActionListener() {
            PreparedStatement pat;

            public void actionPerformed(ActionEvent arg0) {
                try {
                    String query = "select eid,Name,Surname,Age from EmployeeInfo ";
                    pat = connection.prepareStatement(query);

                    ResultSet rs = pat.executeQuery();
                    table.setModel(DbUtils.resultSetToTableModel(rs));





                }

                catch (Exception e)
                {

                }
            }
        });
        btnLoad.setBounds(104, 33, 89, 23);
        contentPane.add(btnLoad);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(429, 48, 370, 232);
        contentPane.add(scrollPane);

        table = new JTable();
        scrollPane.setViewportView(table);

        JLabel lblName = new JLabel("EID");
        lblName.setBounds(10, 98, 46, 21);
        contentPane.add(lblName);

        textField = new JTextField();
        textField.setBounds(107, 99, 126, 20);
        contentPane.add(textField);
        textField.setColumns(10);

        JLabel lblName_1 = new JLabel("Name");
        lblName_1.setBounds(10, 154, 46, 14);
        contentPane.add(lblName_1);

        textField_1 = new JTextField();
        textField_1.setColumns(10);
        textField_1.setBounds(107, 151, 126, 20);
        contentPane.add(textField_1);

        JLabel lblSurname = new JLabel("Surname");
        lblSurname.setBounds(10, 204, 46, 14);
        contentPane.add(lblSurname);

        textField_2 = new JTextField();
        textField_2.setColumns(10);
        textField_2.setBounds(104, 201, 126, 20);
        contentPane.add(textField_2);

        JLabel lblAge = new JLabel("Age");
        lblAge.setBounds(10, 278, 46, 14);
        contentPane.add(lblAge);

        textField_3 = new JTextField();
        textField_3.setColumns(10);
        textField_3.setBounds(104, 275, 126, 20);
        contentPane.add(textField_3);

        JButton btnSave = new JButton("Save");
        btnSave.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                PreparedStatement pat;
                try {
                    String query = "insert into EmployeeInfo(EID,name,surname,age) values(?,?,?,?)";
                    pat = connection.prepareStatement(query);

                     pat.setString(1, textField.getText());
                      pat.setString(2, textField_1.getText());
                      pat.setString(3, textField_2.getText());
                        pat.setString(4, textField_3.getText());
                        pat.execute();

                        JOptionPane.showMessageDialog(null, "Data Saved successfully");


                    pat.close();




                }

                catch (Exception e)
                {
                    e.printStackTrace();

                }
            }
        });
        btnSave.setBounds(72, 349, 89, 23);
        contentPane.add(btnSave);

        JButton btnClear = new JButton("Clear");
        btnClear.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText("");
                textField_1.setText("");
                textField_2.setText("");
                textField_3.setText("");



            }
        });
        btnClear.setBounds(206, 349, 89, 23);
        contentPane.add(btnClear);

        JButton btnUpdate = new JButton("Update");
        btnUpdate.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                try
                {

                    String query="Update EmployeeInfo set EID='"+textField.getText()+"',Name='"+textField_1.getText()+"'"
                            +",Surname='"+textField_2.getText()+"',Age='"+textField_3.getText()+"'where EID='"+textField.getText()+"'";
                    // JOptionPane.showMessageDialog(null, query);

                    PreparedStatement pst=connection.prepareStatement(query);


                    pst.execute();

                    JOptionPane.showMessageDialog(null, "Data Saved successfully");

                    pst.close();


                }
                catch(Exception f)
                {
                    f.printStackTrace();
                }
            }
        });
        btnUpdate.setBounds(323, 349, 89, 23);
        contentPane.add(btnUpdate);

        JButton btnDelete = new JButton("Delete");
        btnDelete.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try
                {

                    String query="delete from EmployeeInfo where EID='"+textField.getText()+"'";
                    // JOptionPane.showMessageDialog(null, query);

                    PreparedStatement pst=connection.prepareStatement(query);


                    pst.execute();

                    JOptionPane.showMessageDialog(null, "Data deleted successfully");

                    pst.close();


                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
            }
        });
        btnDelete.setBounds(453, 349, 89, 23);
        contentPane.add(btnDelete);
    }
}

1 个答案:

答案 0 :(得分:0)

我建议您首先浏览this article,这是一种将数据从ResultSet加载到DefaultTableModel的简单方法。在此之后,您必须进行一些小的更改,例如,您必须向ColumnNames的Vector添加另一个列标题,并为复选框添加一列。然后,当您从ResultSet处理每一行时,您需要使用复选框向行Vector添加一个布尔值。

相关问题