iBatis使用MySQL的存储过程
来源:互联网 发布:加拿大预测软件 编辑:程序博客网 时间:2024/06/06 07:21
FROM: http://developer.51cto.com/art/200907/138332.htm
通过iBatis我们可以在数据库表中执行内嵌的insert , delete, update SQL命令。本文中你将看到如何在iBatis中调用存储过程.
我们使用MySQL数据库,并且使用和上一个例子中一样的Contact表.
我们在数据库"vin"中创建了一个叫showData()的存储过程,它将显示Contract表中的所有的contact信息.为了创建存储过程,我们打开MySQL并创建如下定义的过程 :
DELIMITER $ DROP PROCEDURE IF EXISTS `vin`.`showData`$ CREATE PROCEDURE `vin`.`showData`()BEGINselect * from Contact;END$ DELIMITER ;
"Contact.java"和"SqlMapConfig.xml"与上一个例子中的是一样的 :
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 sqlMapConfigPUBLIC "-//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>
我们只需修改"Contact.xml"并使用标签来在iBatis中调用存储过程
- <procedure id="storedInfo" resultClass="Contact">
- { call showData() } </procedure>
上面几行代码调用了存储过程并集合了contract表.下面是Contact.xml的代码 :
- <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
- "http://ibatis.apache.org/dtd/sql-map-2.dtd">
- <sqlMap namespace="Contact">
- <!--- Calling stored procedure -->
- <procedure id="storedInfo" resultClass="Contact">
- { call showData()} </procedure></sqlMap>
现在我们可以这样在iBatis中调用存储过程 :
sqlMap.queryForList("Contact.storedInfo",null); "sqlMap"是SqlMapClient类的一个对象. IbatisStoredProcedure.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 IbatisStoredProcedure{ public static void main(String[] args)
- throws IOException,SQLException{ Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
- SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); System.out.println("All Contacts");
- List<Contact> contacts = (List<Contact>)
- 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信息将在你的命令提示符下显示 :
【编辑推荐】
- iBATIS教程之like语句的写法浅析
- iBATIS应用之SQLMap API编程浅析
- iBATIS入门程序六大步详解
- iBATIS与Hibernate间的取舍
- iBATIS接口应用的浅析
【责任编辑:刘翰 TEL:(010)68476606】
- iBatis使用MySQL的存储过程
- ibatis 调用mysql 存储过程
- iBatis.Net+mysql访问存储过程的问题
- ibatis调用mysql带OUT类型参数的存储过程
- mysql 存储过程的使用
- mysql 存储过程的使用
- MySQL存储过程的使用
- ibatis使用存储过程的时候发现了点问题
- iBatis调用存储过程以及MySQL创建存储过程
- ibatis使用存储过程传递参数
- mysql存储过程使用
- MySQL存储过程使用
- MYSQL存储过程使用
- mysql存储过程使用
- Mysql存储过程使用
- ibatis与存储过程(带输出参数的存储过程)
- ibatis对存储过程的调用
- iBatis调用存储过程的方法
- linux 下配置servlet
- 德川家康
- C#的第一次实验作品
- Java 反射
- 用Notepad2替换记事本程序
- iBatis使用MySQL的存储过程
- 怎么修改XCode项目的名称
- LinkedList源码浅析
- NSRunLoop的进一步理解
- Aurora安装及使用方法
- HDOJ Holding Bin-Laden Captive!
- 系统启动后,添加新的Appwidget到手机更新不同步问题解决
- winrar命令行参数
- 笔试题---关于共用体