iBatis-Inserting data into database

The greatest feature of iBatis is it?s simplicity, and that is the only reason of being it easier to use in any database application.

iBatis-Inserting data into database

iBatis-Inserting data into database

     

The greatest feature of iBatis is it?s simplicity, and that is the only reason of being it easier to use in any database application. iBatis makes it really simple to use a database with Java or any other Microsoft applications. In this section we will introduce you with an example which is inserting a row into database. And for this we are using MySQL as a database it is the same one we have used  in our previous example. The table name is "Contact" and we have used  two files "Contact.java" and  "SqlMapConfig.xml" as we did in previous example. 

 

 

 

 

 

Contact.java

public class Contact {
  private String firstName; 
  private String lastName; 
  private String email;  
  private int id;

  public Contact() {}
  
  public Contact(
  String firstName,
    String lastName,
    String email
) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.email = email;
  }
  
  public String getEmail() {
  return email;
  }
  public void setEmail(String email) {
  this.email = email;
  }
  public String getFirstName() {
  return firstName;
  }
  public void setFirstName(String firstName) {
  this.firstName = firstName;
  }
  public int getId() {
  return id;
  }
  public void setId(int id) {
  this.id = id;
  }
  public String getLastName() {
  return lastName;
  }
  public void setLastName(String lastName) {
  this.lastName = lastName;
  
}

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
   <settings useStatementNamespaces="true"/>
   <transactionManager type="JDBC">
  <dataSource type="SIMPLE">
  <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
  <property name="JDBC.ConnectionURL"
   value="jdbc:mysql://192.168.10.112:3306/vin"/>
  <property name="JDBC.Username" value="root"/>
  <property name="JDBC.Password" value="root"/>
  </dataSource>
  </transactionManager>
   <sqlMap resource="Contact.xml"/> 
</sqlMapConfig>

For SQL mapping statement we have used <insert> tag. Inside this tag definition we have defined an "id" which will be used in IbatisInsertion.java file for executing insert query on database.

<selectKey resultClass="int" keyProperty="id">
  select last_insert_id() as id
</selectKey>

Above lines of code points to next row of the table where the next value is to be inserted.

Contact.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap 
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="Contact">

<!--- Inserting data in table -->

<insert id="insert" parameterClass="Contact">
   insert into contact (firstName,lastName,email)
   values (#firstName#, #lastName#, #email#)
   <selectKey resultClass="int" keyProperty="id">
  select last_insert_id() as id
   </selectKey>
</insert>

<!--- Showing all data of table -->
<select id="getAll" resultClass="Contact">
   select * from contact
</select>
</sqlMap>

Full source code of IbatisInsertion.java is as follows:

IbatisInsertion.java

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class IbatisInsertion{
  public static void main(String[] argsthrows IOException,SQLException{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
  SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
  //Inserting one record in contacts
  System.out.println(
   "*-------------- Inserting information in Contact Table -----------*"
);
  Contact contact=new Contact("Amit","Kumar","[email protected]");
  sqlMap.insert("Contact.insert",contact);
  System.out.println("|Record Inserted Successfully ");
    System.out.println("All Contacts");
  List<Contact> contacts = (List<Contact>)
  sqlMap.queryForList("Contact.getAll",null);
  Contact contactall = new Contact();
  for (Contact c : contacts) {
  System.out.print("  " + c.getId());
  System.out.print("  " + c.getFirstName());
  System.out.print("  " + c.getLastName());
  System.out.print("  " + c.getEmail());
  contact = c; 
  System.out.println("");
  }
  System.out.println("===============================================");
  }  
}

To run this example :

  1. Create and save Contact.java and compile it.
  2. Create and save Contact.xml and SqlMapConfig.xml
  3. Create and save IbatisInsertion.java and
  4.  execute IbatisInsertion class file and output on your command prompt will be flashed as
    "Record Inserted Successfully"

Output:

Download Source Codes