How to delete and update from Jtable cell in swing app

Ads
 

How to delete and update from Jtable cell in swing app

Hii Sir, I am developing a swing app for adding,updating and deleting from jtable cells to database but i am getting following problems

  1. Whenever i click on delete button on selecting particular row which has to be deleted then last row is getting removed from the jtable but selected row is getting deleted from the database . I want to remove and delete the same row which is selected for the dletion.

  2. updation is happening for state column only and not happening for id,First name,Last name etc..

My Database column structure is :presid(int),firstname(varchar),last name(varchar),state(varchar),date(date).

plz sir help me to solve this problem.I am posting my code. Thanx in advance.

`

import java.awt.BorderLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;

import java.sql.*; import java.text.ParseException;

import java.text.SimpleDateFormat;

import javax.swing.*; import javax.swing.table.DefaultTableModel;

public class Lesson38 extends JFrame {

static JLabel lFirstName, lLastName, lState, lBirthDate;
static JTextField tfFirstName, tfLastName, tfState, tfBirthDate;
static java.util.Date dateBirthDate, sqlBirthDate;
static ResultSet rows;
// Holds row values for the table
static Object[][] databaseResults;
// Holds column names for the table
static Object[] columns = {"ID", "First Name", "Last Name", "State", "Birth Date"};
// DefaultTableModel defines the methods JTable will use
// I'm overriding the getColumnClass
static DefaultTableModel dTableModel = new DefaultTableModel(databaseResults, columns) {

    public Class getColumnClass(int column) {
        Class returnValue;

        // Verifying that the column exists (index > 0 && index < number of columns

        if ((column >= 0) && (column < getColumnCount())) {
            returnValue = getValueAt(0, column).getClass();
        } else {

            // Returns the class for the item in the co6lumn  

            returnValue = Object.class;
        }
        return returnValue;
    }
};
// Create a JTable using the custom DefaultTableModel
static JTable table = new JTable(dTableModel);

public static void main(String[] args) {

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // A connection object is used to provide access to a database

    Connection conn = null;

    try {
        // The driver allows you to query the database with Java
        // forName dynamically loads the class for you

        Class.forName("com.mysql.jdbc.Driver");

        // DriverManager is used to handle a set of JDBC drivers
        // getConnection establishes a connection to the database
        // You must also pass the userid and password for the database
        conn = DriverManager.getConnection("jdbc:mysql://localhost/techsoft", "root", "techsoft");

        // Statement objects executes a SQL query
        // createStatement returns a Statement object

        Statement sqlState = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                ResultSet.CONCUR_UPDATABLE);

        // This is the query I'm sending to the database

        String selectStuff = "Select pres_id, first_name, last_name, state, birth from president";

        // A ResultSet contains a table of data representing the
        // results of the query. It can not be changed and can
        // only be read in one direction

        rows = sqlState.executeQuery(selectStuff);

        // Temporarily holds the row results

        Object[] tempRow;

        // next is used to iterate through the results of a query

        while (rows.next()) {

            tempRow = new Object[]{rows.getInt(1), rows.getString(2), rows.getString(3), rows.getString(4), rows.getDate(5)};


            /*
             * You can also get other types 124 * int getInt() 125  * boolean
             * getBoolean() 126 * double getDouble() 127    * float getFloat()
             * 128  * long getLong() 129    * short getShort() 130
             */
            // Add the row of data to the JTable                     
            dTableModel.addRow(tempRow);
        }
    } catch (SQLException ex) {

        // String describing the error

        System.out.println("SQLException: " + ex.getMessage());

        // Vendor specific error code

        System.out.println("VendorError: " + ex.getErrorCode());
    } catch (ClassNotFoundException e) {
        // Executes if the driver can't be found
        e.printStackTrace();
    }

    // Increase the font size for the cells in the table

    table.setFont(new Font("Serif", Font.PLAIN, 15));

    // Increase the size of the cells to allow for bigger fonts

    table.setRowHeight(table.getRowHeight() + 12);
    // Allows the user to sort the data

    table.setAutoCreateRowSorter(true);

    // Adds the table to a scrollpane

    JScrollPane scrollPane = new JScrollPane(table);

    // Adds the scrollpane to the frame

    frame.add(scrollPane, BorderLayout.CENTER);

    // Creates a button that when pressed executes the code
    // in the method actionPerformed

    JButton addPres = new JButton("Add President");

    addPres.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            String sFirstName = "", sLastName = "", sState = "", sDate = "";
            // getText returns the value in the text field

            sFirstName = tfFirstName.getText();
            sLastName = tfLastName.getText();
            sState = tfState.getText();
            sDate = tfBirthDate.getText();

            sqlBirthDate = getADate(sDate);

            try {

                // Moves the database to the row where data will be placed                       
                rows.moveToInsertRow();

                // Update the values in the database

                rows.updateString("first_name", sFirstName);
                rows.updateString("last_name", sLastName);

                rows.updateString("state", sState);
                rows.updateDate("birth", (Date) sqlBirthDate);

                // Inserts the changes to the row values in the database

                rows.insertRow();

                // Directly updates the values in the database

                rows.updateRow();
            } catch (SQLException e1) {

                e1.printStackTrace();
            }

            int presID = 0;

            try {

                // Go to the last row inserted and get the id

                rows.last();
                presID = rows.getInt(1);
            } catch (SQLException e1) {

                e1.printStackTrace();
            }

            Object[] president = {presID, sFirstName, sLastName, sState, sqlBirthDate};
            // Add the row of values to the JTable

            dTableModel.addRow(president);

        }
    });

    JButton removePres = new JButton("Remove President");

    removePres.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            // Will remove which ever row that is selected

            dTableModel.removeRow(table.getSelectedRow()+1);
                System.out.println(table.getSelectedRow());
            try {
                // Moves the database to the row currently selected
                // getSelectedRow returns the row number for the selected row

                rows.absolute(table.getSelectedRow()+1);
                // Deletes the selected row from the database
                System.out.println(table.getSelectedRow());
                rows.deleteRow();

            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        }
    });

    // Define values for my labels           
    lFirstName = new JLabel("First Name");
    lLastName = new JLabel("Last Name");
    lState = new JLabel("State");
    lBirthDate = new JLabel("Birthday");

    tfFirstName = new JTextField(15);
    tfLastName = new JTextField(15);
    tfState = new JTextField(15);
    // Set default text and size for text field

    tfBirthDate = new JTextField("yyyy-MM-dd", 10);

    // Create a panel to hold editing buttons and fields
    JPanel inputPanel = new JPanel();

    // Put components in the panel

    inputPanel.add(lFirstName);
    inputPanel.add(tfFirstName);
    inputPanel.add(lLastName);
    inputPanel.add(tfLastName);
    inputPanel.add(lState);
    inputPanel.add(tfState);
    inputPanel.add(lBirthDate);
    inputPanel.add(tfBirthDate);
    inputPanel.add(addPres);
    inputPanel.add(removePres);

    // Add the component panel to the frame

    frame.add(inputPanel, BorderLayout.SOUTH);

    // When the user clicks on a cell they'll be able to change the value

    table.addMouseListener(new MouseAdapter() {

        public void mouseReleased(MouseEvent me) {
            String value = JOptionPane.showInputDialog(null, "Enter Cell Value:");

            // Makes sure a value is changed only if OK is clicked

            if (value != null) {
                table.setValueAt(value, table.getSelectedRow(), table.getSelectedColumn());
            }


            try {
                // Move to the selected row

                rows.absolute(table.getSelectedRow() + 1);

                // Get the name of the selected column
                String updateCol = dTableModel.getColumnName(table.getSelectedColumn());
                System.out.println(updateCol);
                // Previous to Java 1.7 you couldn't use Strings in a Switch
                // If you get an error here it is because you aren't using Java 1.7

                switch (updateCol) {

                    // Uses a different update method depending on the data type

                    case "birth":
                        sqlBirthDate = getADate(value);
                        rows.updateDate(updateCol, (Date) sqlBirthDate);
                        rows.updateRow();
                        break;

                    default:
                        rows.updateString(updateCol, value);
                        System.out.println("Current Row: " + rows.getRow());
                         System.out.println(value);
                        rows.updateRow();
                        break;

                }


            } catch (SQLException e) {
                // Commented out so the user can delete rows
                // e.printStackTrace();                 }
            }
        }
    });


    frame.setSize(1200, 500);
    frame.setVisible(true);

}

// Will convert from string to date
public static java.util.Date getADate(String sDate) {

    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");

    try {
        dateBirthDate = dateFormatter.parse(sDate);
        sqlBirthDate = new java.sql.Date(dateBirthDate.getTime());
    } catch (ParseException e1) {

        e1.printStackTrace();
    }

    return sqlBirthDate;

}

} `

View Answers

Ads









Related Tutorials/Questions & Answers:
How to delete and update from Jtable cell in swing app
How to delete and update from Jtable cell in swing app  Hii Sir, I am developing a swing app for adding,updating and deleting from jtable... is getting removed from the jtable but selected row is getting deleted from
How to update,Delete database values from jtable cells ..
How to update,Delete database values from jtable cells ..  hello Sir... from database into jtable of a jpanel.. Now Sir, According to my need i have to update the cell values from there only means that whatever values i ma entering
Advertisements
How to update,Delete database values from jtable cells ..
How to update,Delete database values from jtable cells ..  Hello Sir... from database to jtable .Now as per my requirement i need to update and delete the database records from the table cells by entering new values there only
How to update,Delete database values from jtable cells ..
How to update,Delete database values from jtable cells ..  Hello Sir, I am working on a project in which i have to fetch the values from database to jtable .Now as per my requirement i need to update and delete the database
how to make JTable to add delete and update sql database table
how to make JTable to add delete and update sql database table  Hello all I want to know how to make JTable to act actively to add delete and update database table. i am struck ed here from long time please help me
How to insert and update all column values of database from jtable.
How to insert and update all column values of database from jtable.  ... ,update,delete database values from jtable only so i added three buttons add,update,delete .. mydatabase contains five columns id,name,address,contact,email
delete app from iphone
delete app from iphone  How to delete an existing app from itunes
How to insert and update all column values of database from jtable.
How to insert and update all column values of database from jtable.  ... ,update,delete database values from jtable only so i added three buttons add,update...; JButton update; JButton insert; JButton delete; JPanel p; MyTableModel tm
How to insert and update all column values of database from jtable.
How to insert and update all column values of database from jtable.  ... ,update,delete database values from jtable only so i added three buttons add,update...; JButton update; JButton insert; JButton delete; JPanel p; MyTableModel tm
JTable-Selecting a given cell - Swing AWT
JTable-Selecting a given cell  I tried the previous JTableDemo program but how to select a particular cell when i know the row,column number when button is clicked
Swing JTable which is retrieved from MySQL
Swing JTable which is retrieved from MySQL  How To Display both image and data into Swing JTable which is retrieved from MySQL database
How to create a JTable cell containing Image hyperlink?
How to create a JTable cell containing Image hyperlink?  I'm trying to find out how to create a JTable cell which contains Image, which should... in jTable cell is clicked, I want it to open a pop-up with some message showing
How To Display both image and data into Swing JTable which is retrieved from ms access database
How To Display both image and data into Swing JTable which is retrieved from ms access database  So far this is my code how can i display both image and data from database.. while (rs.next()) { Vector row = new Vector(columns
how to create a header in jtable using java swing
how to create a header in jtable using java swing  how to create a header in jtable using java swing   d
how update JTable after adding a row into database
how update JTable after adding a row into database  J have two... in JTable, and it's OK, but after adding a row into database table does't update. How update JTable after adding a row into database? package djile pak.java
How to delete data from MySQL?
How to delete data from MySQL?  Hi, How I can conditionally delete... to conditionally delete the data from MySQL database table. Here is some query examples: delete from email where email_count=400; delete from email where
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
how to delete a jar from mobile
how to delete a jar from mobile  After auto updating a new version of jar from server. I want to delete the old jar from mobile and want to install the new jar which is present in server. Can u tell me the code how to do
Display both image and data into Swing JTable
Display both image and data into Swing JTable  How To Display both image and data into Swing JTable which is retrieved from MySQL database
How to update mysql from 5.1 to 5.5
How to update mysql from 5.1 to 5.5  How to update mysql from 5.1 to 5.5
java swing (jtable)
java swing (jtable)  hii..how to get values of a particular record in jtable from ms access database using java swing in netbeans..?? please help... from database and display it in jtable. import java.awt.*; import java.sql.
jtable insert row swing
jtable insert row swing  How to insert and refresh row in JTable?   Inserting Rows in a JTable example

Ads