IBatisNet 之 自动生成主关键字

  很多系统支持自动生成主关键字。一些数据库厂商预先生成 (oracle) ,一些数据库厂商之后生成 (mssal mysql). 。如果你在 元素中使用 节,你就能获得一个预先生成的 key. 。下面的例子演示了这种方法:


        parameterClass="product">
             Property="id" > SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL

        insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values

        (#id#,#description#)   

        parameterClass="product"> insert into PRODUCT (PRD_DESCRIPTION)

        values (#description#)

        Property="id" > SELECT @@IDENTITY AS ID

       


上面是IbatisNet的iBATIS Data Mapper Developer Guide上的说明:下面来介绍一下具体的应用和注意的地方:
person.xml
?xml version="1.0" encoding="utf-8" ?>

 namespace="Person"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="SqlMap.xsd">

 

 
  
 

 
 
  
   
   
   
   
   
   
  

 

 
  
   insert into PERSON
    (PER_FIRST_NAME, PER_LAST_NAME,
    PER_BIRTH_DATE, PER_WEIGHT_KG, PER_HEIGHT_M)
   values
    ( #FirstName#, #LastName#,
    #BirthDate#, #WeightInKilograms#, #HeightInMeters#)
    
   select CAST(@@IDENTITY as int) as value
   
 
  
    
   
 
 
节返回一个从sql server生成的自动生成关键字。     
             //新增一个员工
             private void Button1_Click(object sender, System.EventArgs e)  
          {  
              IbatisTest.Domain.Person person = new IbatisTest.Domain.Person();  
              person.Id =-1;//这里的赋值很重要,否则会出错
              person.FirstName = "--New Person--";

                     person.BirthDate = Convert.ToDateTime("2000-4-2");   
             
PersonHelper personhelper = new PersonHelper();  
                     personhelper.Insert(person);  
         }  

          //业务逻辑类方法
          public int Insert (Person person) 
          {
              try
              {

                   int result = -1;

                    result =(int)Mapper().Insert("Insert",person);

                   return result;

              }
             catch(Exception ex) 
              {

                   throw ex; 
              }

         }

你可能感兴趣的:(IBatisNet 之 自动生成主关键字)