Java/J2EE/iBatis

Материал из Java эксперт
Перейти к: навигация, поиск

Define Result Class

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="myResult" class="AccountResult">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
 </resultMap>
 <select id="getByLike" resultClass="AccountResult" parameterClass="Account">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# and  ACC_LAST_NAME = #lastName#
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: AccountResult.java

public class AccountResult {

 private int id;
 private String firstName;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }

}

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", account);
   
   System.out.println(((AccountResult)list.get(0)).getFirstName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



Delete By ID

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap>

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   
   sqlMapper.delete("deleteAccountById", 1);
   util.checkData("select * from account");


 }
 

} File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



Get List Of Objects

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap> File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list =  sqlMapper.queryForList("selectAllAccounts");
   
   
 }
 

} File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



Get Object From iBatis

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

} File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap> File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Main.java import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   Account acc =  (Account) sqlMapper.queryForObject("selectAccountById", 1);
   System.out.println(acc.getFirstName());
   
 }
 

} File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



Hard Code Constant In SQL

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 <select id="getByLike" resultClass="Account">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     "ACC_LAST_NAME" as lastName,
     ACC_EMAIL as emailAddress
     from ACCOUNT
 where ACC_EMAIL like "%$value$%"
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap> File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Main.java

import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", "e");
   
   System.out.println(((Account)list.get(0)).getLastName());
 }

} File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



iBatis Development Environment Setup

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap>

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig> File: Main.java import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
 }
 

} File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



iBatis JPetStore 5.0

   <source lang="java">
                                Apache License
                          Version 2.0, January 2004
                       http://www.apache.org/licenses/
  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  1. Definitions.
     "License" shall mean the terms and conditions for use, reproduction,
     and distribution as defined by Sections 1 through 9 of this document.
     "Licensor" shall mean the copyright owner or entity authorized by
     the copyright owner that is granting the License.
     "Legal Entity" shall mean the union of the acting entity and all
     other entities that control, are controlled by, or are under common
     control with that entity. For the purposes of this definition,
     "control" means (i) the power, direct or indirect, to cause the
     direction or management of such entity, whether by contract or
     otherwise, or (ii) ownership of fifty percent (50%) or more of the
     outstanding shares, or (iii) beneficial ownership of such entity.
     "You" (or "Your") shall mean an individual or Legal Entity
     exercising permissions granted by this License.
     "Source" form shall mean the preferred form for making modifications,
     including but not limited to software source code, documentation
     source, and configuration files.
     "Object" form shall mean any form resulting from mechanical
     transformation or translation of a Source form, including but
     not limited to compiled object code, generated documentation,
     and conversions to other media types.
     "Work" shall mean the work of authorship, whether in Source or
     Object form, made available under the License, as indicated by a
     copyright notice that is included in or attached to the work
     (an example is provided in the Appendix below).
     "Derivative Works" shall mean any work, whether in Source or Object
     form, that is based on (or derived from) the Work and for which the
     editorial revisions, annotations, elaborations, or other modifications
     represent, as a whole, an original work of authorship. For the purposes
     of this License, Derivative Works shall not include works that remain
     separable from, or merely link (or bind by name) to the interfaces of,
     the Work and Derivative Works thereof.
     "Contribution" shall mean any work of authorship, including
     the original version of the Work and any modifications or additions
     to that Work or Derivative Works thereof, that is intentionally
     submitted to Licensor for inclusion in the Work by the copyright owner
     or by an individual or Legal Entity authorized to submit on behalf of
     the copyright owner. For the purposes of this definition, "submitted"
     means any form of electronic, verbal, or written communication sent
     to the Licensor or its representatives, including but not limited to
     communication on electronic mailing lists, source code control systems,
     and issue tracking systems that are managed by, or on behalf of, the
     Licensor for the purpose of discussing and improving the Work, but
     excluding communication that is conspicuously marked or otherwise
     designated in writing by the copyright owner as "Not a Contribution."
     "Contributor" shall mean Licensor and any individual or Legal Entity
     on behalf of whom a Contribution has been received by Licensor and
     subsequently incorporated within the Work.
  2. Grant of Copyright License. Subject to the terms and conditions of
     this License, each Contributor hereby grants to You a perpetual,
     worldwide, non-exclusive, no-charge, royalty-free, irrevocable
     copyright license to reproduce, prepare Derivative Works of,
     publicly display, publicly perform, sublicense, and distribute the
     Work and such Derivative Works in Source or Object form.
  3. Grant of Patent License. Subject to the terms and conditions of
     this License, each Contributor hereby grants to You a perpetual,
     worldwide, non-exclusive, no-charge, royalty-free, irrevocable
     (except as stated in this section) patent license to make, have made,
     use, offer to sell, sell, import, and otherwise transfer the Work,
     where such license applies only to those patent claims licensable
     by such Contributor that are necessarily infringed by their
     Contribution(s) alone or by combination of their Contribution(s)
     with the Work to which such Contribution(s) was submitted. If You
     institute patent litigation against any entity (including a
     cross-claim or counterclaim in a lawsuit) alleging that the Work
     or a Contribution incorporated within the Work constitutes direct
     or contributory patent infringement, then any patent licenses
     granted to You under this License for that Work shall terminate
     as of the date such litigation is filed.
  4. Redistribution. You may reproduce and distribute copies of the
     Work or Derivative Works thereof in any medium, with or without
     modifications, and in Source or Object form, provided that You
     meet the following conditions:
     (a) You must give any other recipients of the Work or
         Derivative Works a copy of this License; and
     (b) You must cause any modified files to carry prominent notices
         stating that You changed the files; and
     (c) You must retain, in the Source form of any Derivative Works
         that You distribute, all copyright, patent, trademark, and
         attribution notices from the Source form of the Work,
         excluding those notices that do not pertain to any part of
         the Derivative Works; and
     (d) If the Work includes a "NOTICE" text file as part of its
         distribution, then any Derivative Works that You distribute must
         include a readable copy of the attribution notices contained
         within such NOTICE file, excluding those notices that do not
         pertain to any part of the Derivative Works, in at least one
         of the following places: within a NOTICE text file distributed
         as part of the Derivative Works; within the Source form or
         documentation, if provided along with the Derivative Works; or,
         within a display generated by the Derivative Works, if and
         wherever such third-party notices normally appear. The contents
         of the NOTICE file are for informational purposes only and
         do not modify the License. You may add Your own attribution
         notices within Derivative Works that You distribute, alongside
         or as an addendum to the NOTICE text from the Work, provided
         that such additional attribution notices cannot be construed
         as modifying the License.
     You may add Your own copyright statement to Your modifications and
     may provide additional or different license terms and conditions
     for use, reproduction, or distribution of Your modifications, or
     for any such Derivative Works as a whole, provided Your use,
     reproduction, and distribution of the Work otherwise complies with
     the conditions stated in this License.
  5. Submission of Contributions. Unless You explicitly state otherwise,
     any Contribution intentionally submitted for inclusion in the Work
     by You to the Licensor shall be under the terms and conditions of
     this License, without any additional terms or conditions.
     Notwithstanding the above, nothing herein shall supersede or modify
     the terms of any separate license agreement you may have executed
     with Licensor regarding such Contributions.
  6. Trademarks. This License does not grant permission to use the trade
     names, trademarks, service marks, or product names of the Licensor,
     except as required for reasonable and customary use in describing the
     origin of the Work and reproducing the content of the NOTICE file.
  7. Disclaimer of Warranty. Unless required by applicable law or
     agreed to in writing, Licensor provides the Work (and each
     Contributor provides its Contributions) on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
     implied, including, without limitation, any warranties or conditions
     of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
     PARTICULAR PURPOSE. You are solely responsible for determining the
     appropriateness of using or redistributing the Work and assume any
     risks associated with Your exercise of permissions under this License.
  8. Limitation of Liability. In no event and under no legal theory,
     whether in tort (including negligence), contract, or otherwise,
     unless required by applicable law (such as deliberate and grossly
     negligent acts) or agreed to in writing, shall any Contributor be
     liable to You for damages, including any direct, indirect, special,
     incidental, or consequential damages of any character arising as a
     result of this License or out of the use or inability to use the
     Work (including but not limited to damages for loss of goodwill,
     work stoppage, computer failure or malfunction, or any and all
     other commercial damages or losses), even if such Contributor
     has been advised of the possibility of such damages.
  9. Accepting Warranty or Additional Liability. While redistributing
     the Work or Derivative Works thereof, You may choose to offer,
     and charge a fee for, acceptance of support, warranty, indemnity,
     or other liability obligations and/or rights consistent with this
     License. However, in accepting such obligations, You may act only
     on Your own behalf and on Your sole responsibility, not on behalf
     of any other Contributor, and only if You agree to indemnify,
     defend, and hold each Contributor harmless for any liability
     incurred by, or claims asserted against, such Contributor by reason
     of your accepting any such warranty or additional liability.
  END OF TERMS AND CONDITIONS
  APPENDIX: How to apply the Apache License to your work.
     To apply the Apache License to your work, attach the following
     boilerplate notice, with the fields enclosed by brackets "[]"
     replaced with your own identifying information. (Don"t include
     the brackets!)  The text should be enclosed in the appropriate
     comment syntax for the file format. We also recommend that a
     file or class name and description of purpose be included on the
     same "printed page" as the copyright notice for easier
     identification within third-party archives.
  Copyright [yyyy] [name of copyright owner]
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.


      </source>
   
  
 
  



Insert Into Database

   <source lang="java">

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap>

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Main.java import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
 }
 

} File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}


      </source>
   
  
 
  



Set Cache Mode

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 <cacheModel id="categoryCache" type="LRU">
   <flushInterval hours="24"/>
   <property name="size" value="100"/>
 </cacheModel>
 <select id="getByLike" resultClass="Account" parameterClass="Account" cacheModel="categoryCache">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# and  ACC_LAST_NAME = #lastName#
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", account);
   
   System.out.println(((Account)list.get(0)).getLastName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>
   
  
 
  



String Parameter

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="myResult" class="AccountResult">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
 </resultMap>
 <select id="getByLike" resultClass="AccountResult" parameterClass="string">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# 
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: AccountResult.java

public class AccountResult {

 private int id;
 private String firstName;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }

}

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", "e");
   
   System.out.println(((AccountResult)list.get(0)).getFirstName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>
   
  
 
  



Update Object

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 
 <select id="selectAllAccounts" resultMap="AccountResult">
   select * from ACCOUNT
 </select>
 
 <select id="selectAccountById" parameterClass="int" resultClass="Account">
   select
     ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
   from ACCOUNT
   where ACC_ID = #id#
 </select>
  
 
 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>
 
 <update id="updateAccount" parameterClass="Account">
   update ACCOUNT set
     ACC_FIRST_NAME = #firstName#,
     ACC_LAST_NAME = #lastName#,
     ACC_EMAIL = #emailAddress#
   where
     ACC_ID = #id#
 </update>
 
 <delete id="deleteAccountById" parameterClass="int">
   delete from ACCOUNT where ACC_ID = #id#
 </delete>

</sqlMap>

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   account.setEmailAddress("new");
   sqlMapper.update("updateAccount", account);
   util.checkData("select * from account");


 }
 

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>
   
  
 
  



Use Like in where clause

   <source lang="java">

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main{

 public static void main(String[] a) throws Exception{
   Util util = new Util();
   util.executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   
   SqlMapClient sqlMapper = util.getSqlMapClient();
   
   
   
   Account account  = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   
   List list = sqlMapper.queryForList("getByLike", "e");
   System.out.println(list.size());


 }
 

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 <select id="getByLike" resultClass="Account">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
     from ACCOUNT
 where ACC_EMAIL like "%$value$%"
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>


      </source>
   
  
 
  



Use Map To Pass In Two String Parameter

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="myResult" class="AccountResult">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
 </resultMap>
 <select id="getByLike" resultClass="AccountResult" parameterClass="map">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# 
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: AccountResult.java

public class AccountResult {

 private int id;
 private String firstName;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }

}

File: Main.java import java.util.HashMap; import java.util.List; import java.util.Map; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   Map<String, String> map = new HashMap<String, String>();
   map.put("emailAddress","e");
   
   List list = sqlMapper.queryForList("getByLike", map);
   
   System.out.println(((AccountResult)list.get(0)).getFirstName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>
   
  
 
  



Use Order By clause

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="myResult" class="AccountResult">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
 </resultMap>
 <select id="getByLike" resultClass="AccountResult" parameterClass="Account">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# and  ACC_LAST_NAME = #lastName#
 ORDER BY ACC_FIRST_NAME
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: AccountResult.java

public class AccountResult {

 private int id;
 private String firstName;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }

}

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", account);
   
   System.out.println(((AccountResult)list.get(0)).getFirstName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>
   
  
 
  



User Object As Parameter

   <source lang="java">

File: Account.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="Account">

 <typeAlias alias="Account" type="Account"/>
 <resultMap id="AccountResult" class="Account">
   <result property="id" column="ACC_ID"/>
   <result property="firstName" column="ACC_FIRST_NAME"/>
   <result property="lastName" column="ACC_LAST_NAME"/>
   <result property="emailAddress" column="ACC_EMAIL"/>
 </resultMap>
 <select id="getByLike" resultClass="Account" parameterClass="Account">
     select ACC_ID as id,
     ACC_FIRST_NAME as firstName,
     ACC_LAST_NAME as lastName,
     ACC_EMAIL as emailAddress
     from ACCOUNT
 where ACC_EMAIL  = #emailAddress# and  ACC_LAST_NAME = #lastName#
 </select>


 <insert id="insertAccount" parameterClass="Account">
   insert into ACCOUNT (
     ACC_ID,
     ACC_FIRST_NAME,
     ACC_LAST_NAME,
     ACC_EMAIL
   )values (
     #id#, #firstName#, #lastName#, #emailAddress#
   )
 </insert>

</sqlMap>

File: Main.java import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; public class Main {

 public static void main(String[] a) throws Exception {
   Util util = new Util();
   util
       .executeSQLCommand("create table ACCOUNT(ACC_ID int, ACC_FIRST_NAME varchar,ACC_LAST_NAME varchar,ACC_EMAIL varchar);");
   util.executeSQLCommand("create table Message(Message_ID int, content varchar);");
   SqlMapClient sqlMapper = util.getSqlMapClient();
   Account account = new Account();
   account.setId(1);
   account.setEmailAddress("e");
   account.setFirstName("first");
   account.setLastName("last");
   sqlMapper.insert("insertAccount", account);
   util.checkData("select * from account");
   List list = sqlMapper.queryForList("getByLike", account);
   
   System.out.println(((Account)list.get(0)).getLastName());
 }

}

File: 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>

 <transactionManager type="JDBC" commitRequired="false">
   <dataSource type="SIMPLE">
     <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
     <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:data/tutorial"/>
     <property name="JDBC.Username" value="sa"/>
     <property name="JDBC.Password" value=""/>
   </dataSource>
 </transactionManager>
 
 <sqlMap resource="Account.xml"/>
 

</sqlMapConfig>

File: Util.java import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import com.ibatis.rumon.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Util {

 Statement st;
 
 public Util() throws Exception{
   // Load the JDBC driver.
   Class.forName("org.hsqldb.jdbcDriver");
   System.out.println("Driver Loaded.");
   // Establish the connection to the database.
   String url = "jdbc:hsqldb:data/tutorial";
   Connection conn = DriverManager.getConnection(url, "sa", "");
   System.out.println("Got Connection.");
   st = conn.createStatement();
 }
 public SqlMapClient getSqlMapClient() throws Exception{
   Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close(); 
   return sqlMapper;
 }
 public void executeSQLCommand(String sql) throws Exception {
   st.executeUpdate(sql);
 }
 public void checkData(String sql) throws Exception {
   ResultSet rs = st.executeQuery(sql);
   ResultSetMetaData metadata = rs.getMetaData();
   for (int i = 0; i < metadata.getColumnCount(); i++) {
     System.out.print("\t"+ metadata.getColumnLabel(i + 1)); 
   }
   System.out.println("\n----------------------------------");
   while (rs.next()) {
     for (int i = 0; i < metadata.getColumnCount(); i++) {
       Object value = rs.getObject(i + 1);
       if (value == null) {
         System.out.print("\t       ");
       } else {
         System.out.print("\t"+value.toString().trim());
       }
     }
     System.out.println("");
   }
 }

}

File: Account.java

public class Account {

 private int id;
 private String firstName;
 private String lastName;
 private String emailAddress;
 public int getId() {
   return id;
 }
 public void setId(int id) {
   this.id = id;
 }
 public String getFirstName() {
   return firstName;
 }
 public void setFirstName(String firstName) {
   this.firstName = firstName;
 }
 public String getLastName() {
   return lastName;
 }
 public void setLastName(String lastName) {
   this.lastName = lastName;
 }
 public String getEmailAddress() {
   return emailAddress;
 }
 public void setEmailAddress(String emailAddress) {
   this.emailAddress = emailAddress;
 }

}


      </source>