JDBC - Insert Records



This chapter provides examples on how to insert a record, insert multiple records, insert with select query in a table using JDBC application. Before executing following example, make sure you have the following in place −

  • To execute the following example you can replace the username and password with your actual user name and password.

  • Your MySQL or whatever database you are using is up and running.

Required Steps

The following steps are required to create a new Database using JDBC application −

  • Import the packages − Requires that you include the packages containing the JDBC classes needed for database programming. Most often, using import java.sql.* will suffice.

  • Register the JDBC driver − Requires that you initialize a driver so you can open a communications channel with the database.

  • Open a connection − Requires using the DriverManager.getConnection() method to create a Connection object, which represents a physical connection with a database server.

  • Execute a query − Requires using an object of type Statement for building and submitting an SQL statement to insert records into a table.

  • Clean up the environment try with resources automatically closes the resources.

Example: Inserting Record in a Table

In this example, we've three static strings containing a dababase connection url, username, password. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared a SQL string to insert a record into a table REGISTRATION and inserted the record in database by calling statement.executeUpdate() method. Thereafter we've updated the SQL string to insert more new records and using executeUpdate() method, all records are inserted one by one.

In case of any exception while connecting to the database, a catch block handled SQLException and printed the stack trace.

Copy and paste the following example in JDBCExample.java, compile and run as follows −

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCExample {
   static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT";
   static final String USER = "guest";
   static final String PASS = "guest123";

   public static void main(String[] args) {
      // Open a connection
      try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
         Statement stmt = conn.createStatement();
      ) {		      
         // Execute a query
         System.out.println("Inserting records into the table...");          
         String sql = "INSERT INTO Registration VALUES (100, 'Zara', 'Ali', 18)";
         stmt.executeUpdate(sql);
         sql = "INSERT INTO Registration VALUES (101, 'Mahnaz', 'Fatma', 25)";
         stmt.executeUpdate(sql);
         sql = "INSERT INTO Registration VALUES (102, 'Zaid', 'Khan', 30)";
         stmt.executeUpdate(sql);
         sql = "INSERT INTO Registration VALUES(103, 'Sumit', 'Mittal', 28)";
         stmt.executeUpdate(sql);
         System.out.println("Inserted records into the table...");   	  
      } catch (SQLException e) {
         e.printStackTrace();
      } 
   }
}

Now let us compile the above example as follows −

C:\>javac JDBCExample.java
C:\>

When you run JDBCExample, it produces the following result −

C:\>java JDBCExample
Inserting records into the table...
Inserted records into the table...
C:\>

Example: Inserting Record in Single Statement in a Table

In this example, we've three static strings containing a dababase connection url, username, password. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared a SQL string to insert multiple records in one go into a table sampledb4 and inserted the record in database by calling statement.execute() method. Thereafter we've run a select query to read all records from the table and printed the same.

In case of any exception while connecting to the database, a catch block handled SQLException and printed the stack trace.

Copy and paste the following example in JDBCExample.java, compile and run as follows −

import java.sql.*;

// This class demonstrates use of multiple inserts within a single SQL
public class JDBCExample {

   static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT";
   static final String USER = "root";
   static final String PASS = "guest123";

   public static void main(String args[]) {
      try{
         Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
         Statement stmt = conn.createStatement();
         stmt.execute("INSERT INTO sampledb4(id, name) VALUES(3, 'Sachin'), (4, 'Kishore')");
         System.out.println("----- Successfully inserted into table sampledb4 ----\n\n");
         System.out.println("Displaying records from sampledb4 table, showing inserted values");
         System.out.println("---------------------------");
         ResultSet rs = stmt.executeQuery("select * from sampledb4");

         while(rs.next()){
            System.out.println("id: " + rs.getInt(1));
            System.out.println("name: " + rs.getString(2));
         }
      }catch(SQLException e){
         e.printStackTrace();
      }
   }
}

Now let us compile the above example as follows −

C:\>javac JDBCExample.java
C:\>

When you run JDBCExample, it produces the following result −

C:\>java JDBCExample
----- Successfully inserted into table sampledb4 ----

Displaying records from sampledb4 table, showing inserted values
---------------------------
id: 3
name: Sachin
id: 4
name: Kishore
C:\>

Example: Inserting Record Using Select Statement in a Table

In this example, we've three static strings containing a dababase connection url, username, password. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared a SQL string to insert records using a select query into a table sampledb4 and inserted the record in database by calling statement.execute() method. Thereafter we've run a select query to read all records from the table and printed the same.

In case of any exception while connecting to the database, a catch block handled SQLException and printed the stack trace.

Copy and paste the following example in JDBCExample.java, compile and run as follows −

import java.sql.*;

// This class demonstrates use of INSERT..SELECT SQL, 
//where data is inserted in table using select from another table.
public class JDBCExample {
   static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT";
   static final String USER = "root";
   static final String PASS = "guest123";

   public static void main(String args[]) {

      try{
         Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
         Statement stmt = conn.createStatement();

         // Data from students table (student id, first name) is inserted into sampledb4(id, name)
         String ins_sel = "insert into sampledb4(id, name) select studentid,"
            +" firstname from students where studentid > 1004";

         stmt.executeUpdate(ins_sel);

         ResultSet rs = stmt.executeQuery("select * from sampledb4 ");

         System.out.println("Displaying records of table sampledb4/ Ids"
            +" greater than 1004 are from students table");
         System.out.println("--------------------------------------");

         while(rs.next()){
            System.out.print("id: " + rs.getInt(1));
            System.out.println(" name: " + rs.getString(2));
         }
      }catch(SQLException e){
         e.printStackTrace();
      }
   }
}

Now let us compile the above example as follows −

C:\>javac JDBCExample.java
C:\>

When you run JDBCExample, it produces the following result −

C:\>java JDBCExample
Displaying records of table sampledb4/ Ids greater than 1004 are from students table
--------------------------------------
id: 3 name: Sachin
id: 4 name: Kishore
id: 1005 name: Kishore
id: 1006 name: Ganesh

C:\>
Advertisements