ibatis mysql存储过程_分步详解 如何在iBatis中调用存储过程

通过iBatis我们可以在数据库表中执行内嵌的insert , delete, update SQL命令。本文中你将看到如何在iBatis中调用存储过程.

我们使用MySQL数据库,并且使用和上一个例子中一样的Contact表.

我们在数据库"vin"中创建了一个叫showData()的存储过程,它将显示Contract表中的所有的contact信息.为了创建存储过程,我们打开MySQL并创建如下定义的过程 :

DELIMITER $$DROPPROCEDUREIF EXISTS `vin`.`showData`$$CREATEPROCEDURE`vin`.`showData`()BEGINselect *fromContact;END$$ DELIMITER ;

"Contact.java"和"SqlMapConfig.xml"与上一个例子中的是一样的 :

publicclassContact {privateString firstName;

privateString lastName;privateString email;

privateintid;publicContact() {}

publicContact(    String firstName,    String lastName,    String email) {this.firstName = firstName;

this.lastName = lastName;this.email = email;    }

publicString getEmail() {returnemail;  }

publicvoidsetEmail(String email) {this.email = email;  }

publicString getFirstName() {returnfirstName;  }

publicvoidsetFirstName(String firstName) {this.firstName = firstName;  }

publicintgetId() {returnid;  }publicvoidsetId(intid) {this.id = id;  }

publicString getLastName() {returnlastName;  }publicvoidsetLastName(String lastName) {this.lastName = lastName;  } }

SqlMapConfig.xml

"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

我们只需修改"Contact.xml"并使用标签来在iBatis中调用存储过程

{ call showData() }

上面几行代码调用了存储过程并集合了contract表.下面是Contact.xml的代码 :

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

{ call showData()}

现在我们可以这样在iBatis中调用存储过程 :

sqlMap.queryForList("Contact.storedInfo",null); "sqlMap"是SqlMapClient类的一个对象. IbatisStoredProcedure.java的代码如下 :

importcom.ibatis.common.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{        Reader reader =       Resources.getResourceAsReader("SqlMapConfig.xml");

SqlMapClient sqlMap =       SqlMapClientBuilder.buildSqlMapClient(reader);      System.out.println("All Contacts");

List contacts = (List)

sqlMap.queryForList("Contact.storedInfo",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("");      }      }}

请依照如下步骤执行在iBatis中调用存储过程 :

创建Contact.xml和SqlMapConfig.xml

创建Contact.java并将其编译

创建IbatisStoredProcedure.java并将其编译

执行IbatisStoredProcedure类文件,所有的Contract信息将在你的命令提示符下显示 :

074a77c34be5c0b9f94f39a3401370fb.png

【编辑推荐】

【责任编辑:刘翰 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值