通过iBatis我们可以在数据库表中执行内嵌的insert , delete, update SQL命令。本文中你将看到如何在iBatis中调用存储过程.
我们使用MySQL数据库,并且使用和上一个例子中一样的Contact表.
我们在数据库"vin"中创建了一个叫showData()的存储过程,它将显示Contract表中的所有的contact信息.为了创建存储过程,我们打开MySQL并创建如下定义的过程 :
DELIMITER$$DROPPROCEDUREIFEXISTS`vin`.`showData`$$CREATEPROCEDURE`vin`.`showData`()BEGINselect*fromContact;END$$DELIMITER;
"Contact.java"和"SqlMapConfig.xml"与上一个例子中的是一样的 :
publicclassContact{privateStringfirstName;
privateStringlastName;privateStringemail;
privateintid;publicContact(){}
publicContact(StringfirstName,StringlastName,Stringemail){this.firstName=firstName;
this.lastName=lastName;this.email=email;}
publicStringgetEmail(){returnemail;}
publicvoidsetEmail(Stringemail){this.email=email;}
publicStringgetFirstName(){returnfirstName;}
publicvoidsetFirstName(StringfirstName){this.firstName=firstName;}
publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}
publicStringgetLastName(){returnlastName;}publicvoidsetLastName(StringlastName){this.lastName=lastName;}}
SqlMapConfig.xml
"/dtd/sql-map-config-2.dtd">
我们只需修改"Contact.xml"并使用标签来在iBatis中调用存储过程
{callshowData()}
上面几行代码调用了存储过程并集合了contract表.下面是Contact.xml的代码 :
"/dtd/sql-map-2.dtd">
{callshowData()}
现在我们可以这样在iBatis中调用存储过程 :
sqlMap.queryForList("Contact.storedInfo",null); "sqlMap"是SqlMapClient类的一个对象. IbatisStoredProcedure.java的代码如下 :
mon.resources.Resources;
importcom.ibatis.sqlmap.client.SqlMapClient;
importcom.ibatis.sqlmap.client.SqlMapClientBuilder;
importjava.io.*;importjava.sql.SQLException;
importjava.util.*;
publicclassIbatisStoredProcedure{publicstaticvoidmain(String[]args)
throwsIOException,SQLException{Readerreader=Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClientsqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);System.out.println("AllContacts");
Listcontacts=(List)
sqlMap.queryForList("Contact.storedInfo",null);
Contactcontact=null;
for(Contactc: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("");}}}
请依照如下步骤执行在iBatis中调用存储过程 :
创建Contact.xml和SqlMapConfig.xml
创建Contact.java并将其编译
创建IbatisStoredProcedure.java并将其编译
执行IbatisStoredProcedure类文件,所有的Contract信息将在你的命令提示符下显示 :
【编辑推荐】
【责任编辑:刘翰 TEL:(010)68476606】
点赞 0