4.更新表中的數據

 轉自:http://taojintianxia-ibatis.group.iteye.com/group/wiki

對任何數據庫程序來說,添加,更新,刪除都是十分常見且必要的特性.在該教程裏我們已經講解了使用iBatis在Java中進行插入和刪除操作,現在本章將講述如何使用iBatis在數據表中更新數據.在iBatis中執行一條更新語句是非常簡單的.爲了更新數據你得在SQL映射文件"Contact.xml"中添加SQL的update語句.

iBatis更新語句例子 :
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>

 

iBatis更新查詢

在我們的例子中,我們通過參數中指定的id更新了表中的數據,因此對於"id"我們將"parameterClass"的屬性值分配爲"long".

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">
 <!--- Showing all data of table -->
         <select id="getAll" resultClass="Contact">
               select * from contact
        </select>
<!--- Update data of Contact table --> 
 <update id="updateById" parameterClass="long">
       update Contact 
                  set 
                  lastName = 'Raghuwanshi'
                             where
                                      id=#id# 
</update> 
</sqlMap>

 

現在我們可以在Java程序中通過如下代碼執行更新操作了 :
sqlMap.update("Contact.updateById",contactId);

IbatisUpdate.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 IbatisUpdate{
  public static void main(String[] args)
    throws IOException,SQLException{
    Reader reader = Resources.getResourceAsReader(
                    "SqlMapConfig.xml"
                    );
    SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
      //Updating one record of contact
    System.out.println("*---- Updating informations of Contact -----*");
    Contact contct=new Contact();
    long contactId=1;
    sqlMap.update("Contact.updateById",contactId);
      System.out.println("|Updated Record Successfully ");
    System.out.println("All Contacts");
      List<Contact> contacts = (List<Contact>)
        sqlMap.queryForList("Contact.getAll",null);
        Contact contact = null;
      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("============================================");
   }    
} 

 

爲了執行update的例子,遵照如下步驟 :

  創建Contact.java和SqlMapConfig.xml

  編譯Contact.java

  創建Contact.xml

  創建IbatisUpdate.java並將其編譯

  執行IbatisUpdate類文件,你會得到如下輸出 :

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章