Java JDBC Insert Example: How to insert data into a SQL table

In my first JDBC tutorial (How to connect to a JDBC database) I demonstrated how to connect your Java applications to standard SQL databases like MySQL, SQL Server, Oracle, SQLite, and others using the JDBC Connection object.

In this article I'll take the next step -- I'll show you how to insert data into a data table using Java, JDBC, and SQL.

Our sample database

Before getting into some SQL INSERT statements, you need to know what our sample database table looks like. In all of our examples in this series, we're going to be working with a database named Demo that has a database table named Customers.

Here's what the Customers database table looks like:
 

Cnum
Lname
Salutation
City
Snum
1001 Simpson Mr. Springfield 2001
1002 McBeal Ms. Boston 2004
1003 Flinstone Mr. Bedrock 2003
1004 Cramden Mr. New York 2001

Table 1: Our sample Customers database table will contain these four sample records. 

How to create a JDBC INSERT statement

Inserting data into a SQL database table is a simple two-step process:

  1. Create a Java Statement object.
  2. Execute a SQL INSERT command through the JDBC Statement object.

If you're comfortable with SQL, this is an easy process. When Sun created JDBC, they intended to "make the simple things simple".

Execute the JDBC INSERT statement

Here's an example of how to create a Statement object, and then insert a record for a person named Mr. Simpson, of a town named Springfield:

// create a Statement from the connection
Statement statement = conn.createStatement();

// insert the data
statement.executeUpdate("INSERT INTO Customers " + "VALUES (1001, 'Simpson', 'Mr.', 'Springfield', 2001)");

As you can see, you just (1) create a JDBC Statement object from your Connection instance, and (2) run your SQL INSERT statement using the Statement object's executeUpdate method.

If you're not familiar with SQL, note that you must insert your fields in the order in which your table is defined (Cnum, Lname, Salutation, City, and Snum). (Snum stands for Salesperson Number, which we'll use later to link this table to our Salesperson table.)

Inserting the other three records is just as easy as inserting this record. We can just re-use the Statement object, and use our new values:

statement.executeUpdate("INSERT INTO Customers " + "VALUES (1002, 'McBeal', 'Ms.', 'Boston', 2004)");
statement.executeUpdate("INSERT INTO Customers " + "VALUES (1003, 'Flinstone', 'Mr.', 'Bedrock', 2003)");
statement.executeUpdate("INSERT INTO Customers " + "VALUES (1004, 'Cramden', 'Mr.', 'New York', 2001)");

As you can see, this is pretty easy (once you've seen how it's done). In a real application you'll just replace the string constants we've used with variables that you obtain from (a) an end-user or (b) an input data source.

Note: In this example, I assumed that the database table named Customers is already created. You can create your database tables through your database management tools.

The JdbcInsert1.java program

To help you understand how this process works, the following source code shows a complete Java program that creates a Connection to the database, and then inserts the data as shown previously:

import java.sql.*;

/**
 * JdbcInsert1.java - Demonstrates how to INSERT data into an SQL
 *                    database using Java JDBC.
 */
class JdbcInsert1 { 
  
    public static void main (String[] args) { 
        try { 
            String url = "jdbc:msql://200.210.220.1:1114/Demo"; 
            Connection conn = DriverManager.getConnection(url,"",""); 
            Statement st = conn.createStatement(); 
            st.executeUpdate("INSERT INTO Customers " + 
                "VALUES (1001, 'Simpson', 'Mr.', 'Springfield', 2001)"); 
            st.executeUpdate("INSERT INTO Customers " + 
                "VALUES (1002, 'McBeal', 'Ms.', 'Boston', 2004)"); 
            st.executeUpdate("INSERT INTO Customers " + 
                "VALUES (1003, 'Flinstone', 'Mr.', 'Bedrock', 2003)"); 
            st.executeUpdate("INSERT INTO Customers " + 
                "VALUES (1004, 'Cramden', 'Mr.', 'New York', 2001)");

            conn.close(); 
        } catch (Exception e) { 
            System.err.println("Got an exception! "); 
            System.err.println(e.getMessage()); 
        } 
  
    }
} 

If you're interested, you can download the Java source code for the JdbcInsert1.java program here.  You can test the code on your own system, but note that you'll need to change the lines where we create our url and conn objects to reflect your own database configuration. You’ll also need the appropriate JDBC driver for the database you’re using.

When it comes to inserting data into a database, most developers prefer to use a PreparedStatement instead of a Statement, as the PreparedStatement is more secure. (But when you’re first learning JDBC it’s helpful to see the Statement first.) Please see these articles for more information on how to use a PreparedStatement:

Summary

In summary, inserting data into an SQL database table with JDBC is a simple two-step process. Just (1) create a Statement object, and (2) use the object to run your normal SQL INSERT commands.

about java query

sir,
i m doing project in java.thats y one qyery arises here regarding Jtable.
How MS Acess Tabel Information collect/Migrate into Jtable?
plz, send me all information with code. as soon as possible

That's actually a great

That's actually a great suggestion for a future article, but to write all that code is actually a lot of work, and I won't have time for it in the next few days.

In short, you need to read the data from the database table into a Collection of Java objects that more or less mirror the database table; create a TableModel, and populate it with this Collection; use that TableModel to construct a JTable; put that JTable into a scroll pane, and then display all of that however you want in a JFrame.

In the short term, I hope that helps.

Post new comment

The content of this field is kept private and will not be shown publicly.