- 浏览: 507706 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (299)
- Oracle(pl/sql_Erp_Pro*C) (69)
- 设计模式 (4)
- spring (23)
- ext (17)
- apache开源项目应用 (4)
- jquery (16)
- 生活琐事 (8)
- 下载资源 (23)
- mysql (2)
- Eclipse使用积累 (5)
- 报表类(报表/图表) (13)
- php (4)
- Web多彩文本框 (3)
- json (4)
- jqgrid (2)
- ant (2)
- java算法积累 (8)
- EL表达式/JSTL (4)
- poi (3)
- gwt (2)
- 爬网第一步 (2)
- javascript (17)
- Javaweb (8)
- tomcat (1)
- flex (1)
- Java&DB (3)
- J2SE (7)
- linux (3)
- 数据结构 (1)
- dot net (5)
- struts (1)
- ibatis (1)
- log4j (1)
- 项目管理 (1)
- Java native interface(jni,jacob......) (5)
- applet (1)
- VB.net/C#.net/JNI (20)
- css (1)
- Sqlite (1)
- servlet (1)
- REST (1)
最新评论
-
wenhurena:
能不能给一下解压密码roki.work.2017@gmail. ...
Ebs解体新書と学習資料1 -
liutao1600:
楼主写的太好了,每天学习~~
Spring_MVC(6)测试 -
liutao1600:
太好了,每天学习你的文章~~~
Spring_MVC(3)表单页面处理 -
liutao1600:
学习了,太好了
Spring_MVC(2)控制层处理 -
liutao1600:
学习了~~~
Spring_MVC(1)构建简单web应用
import java.io.Serializable; import java.util.Date; public class User implements Serializable{ private static final long serialVersionUID = -6919964218508186044L; private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD iBatis Mapper 3.0 //EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="org.yhb.ibatis.dao.UserDAO"> <!-- 表结构 create table IBATIS_USER ( ID NUMBER not null, NAME VARCHAR2(20) not null, BRITHDAY DATE not null ) --> <!-- 存储过程 create or replace procedure getAllUser(userList out sys_refcursor) as begin open userList for select * from ibatis_user; end; --> <!-- resultMap --> <resultMap type="User" id="userMap"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="birthday" property="birthday" /> </resultMap> <!-- 调用存储过程 --> <select id="getAllUser" statementType="CALLABLE"> {call getAllUser(#{userList,<!-- 参数 --> mode=OUT,<!-- 参数类型 --> javajavaType=java.sql.ResultSet,<!-- 参数java类型 --> jdbcType=CURSOR,<!-- 参数jdbc类型 --> resultMap=userMap<!-- ResultSet需要resultMap参数 --> })} </select> </mapper>
@Test public void testProcedure() throws Exception { Reader reader = null; reader = Resources.getResourceAsReader("configuration.xml"); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader); reader.close(); SqlSession session = ssf.openSession(); Map map = new HashMap(); session.selectOne("org.yhb.ibatis.dao.UserDAO.getAllUser", map); System.out.println(map); //返回的集合被放入了map中 List<User> userList = (List<User>) map.get("userList"); System.out.println(userList); session.close(); }
---------------------------------------------------------------------
--定义包声明 create or replace package pkg_stu as type list_stu is ref cursor;--定义游标,通过游标将数据模型结果集返回给关系模型 procedure proc_findStuList(stulist out list_stu,s_id number); function fun_findStuList(s_id number) return list_stu; end pkg_stu; --包主体声明 create or replace package body pkg_stu as procedure proc_findStuList(stulist out list_stu,s_id number)--实现查找所有学生的存储过程 is sqlString varchar2(500); begin if s_id = 0 then open stulist for select sid,sname,major,birth,socre from student order by sid; else sqlString := 'select sid,sname,major,birth,socre from student where sid=:sid'; open stulist for sqlString using s_id; end if; end proc_findStuList; function fun_findStuList(s_id number) --实现查找所有学生的函数 return list_stu is stulist list_stu; sqlString varchar2(500); begin if s_id = 0 then open stulist for select sid,sname,major,birth,socre from student order by sid; else sqlString := 'select sid,sname,major,birth,socre from student where sid=:sid'; open stulist for sqlString using s_id; end if; return stulist; end fun_findStuList; end pkg_stu;
<!-- 声明结果集类型参数 --> <resultMap class="Student" id="stuAccount"> <result property="sid" column="SID" columnIndex="1"/> <result property="sname" column="SNAME" columnIndex="2"/> <result property="major" column="MAJOR" columnIndex="3"/> <result property="birth" column="BIRTH" columnIndex="4"/> <result property="socre" column="SOCRE" columnIndex="4"/> </resultMap> <!-- --> <parameterMap id="parameterMap" class="java.util.HashMap"> <parameter property="stulist" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" /> <parameter property="s_id" jdbcType="NUMBER" javaType="java.lang.Integer" mode="IN"/> </parameterMap> <!-- 存储过程的调用方式 --> <procedure id="pkgPro_stu_cursor" parameterMap="parameterMap" resultMap="stuAccount"> {call pkg_stu.proc_findStuList(?,?)} </procedure> <!-- 函数的调用方式 --> <procedure id="fun_stu_cursor" parameterMap="parameterMap" resultMap="stuAccount"> {? = call pkg_stu.fun_findStuList(?) } </procedure>
@SuppressWarnings("unchecked") public static void main(String[] args) { //存储过程的调用 // IStudentDAO dao = new IStudentDAOImpl(); // // Map parameterMap = new HashMap(); // parameterMap.put("s_id", 0); // List<Student> accoutList = dao.queryPkgProStudentList(parameterMap); // if(accoutList.size()>0){ // for(Student temp:accoutList){ // if(temp!=null){ // System.out.println(temp.getBirth().toLocaleString()+"---"+temp.getMajor()); // } // } // } // System.out.println("-------------------------"); // System.out.println("size:"+accoutList.size()); //函数的调用 IStudentDAO dao = new IStudentDAOImpl(); Map parameterMap = new HashMap(); parameterMap.put("s_id", 0); List<Student> accoutList = dao.queryFunStudentList(parameterMap); if(accoutList.size()>0){ for(Student temp:accoutList){ if(temp!=null){ System.out.println(temp.getBirth().toLocaleString()+"---"+temp.getMajor()); } } } System.out.println("-------------------------"); System.out.println("size:"+accoutList.size()); } @Override public List queryFunStudentList(Map parameterMap) { List result = null; try { result = sqlMapClient.queryForList("fun_stu_cursor",parameterMap); System.out.println("size:"+result.size()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } @Override public List queryPkgProStudentList(Map parameterMap) { // TODO Auto-generated method stub List result = null; try { result = sqlMapClient.queryForList("pkgPro_stu_cursor",parameterMap); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }
发表评论
-
Oracle分页函数样例——用于提高当前框架分页性能
2012-03-05 23:27 1351create or replace procedure P ... -
Oracle入门课件
2011-12-11 22:43 964下载附件 -
自己经常上的Oracle官网的一些链接~~是啥自己点开看
2011-11-17 23:27 1074http://www.oracle.com/pls/db ... -
Oracle性能诊断艺术源码
2011-08-16 00:51 841请下载。 -
oracle support
2011-06-23 16:34 879https://support.oracle.com/CSP/ ... -
oracle 11g sql code
2011-02-24 20:55 1061附件参考 -
Oracle SQL优化
2011-01-19 23:16 830详见附件。讲述优化器。 -
Oracle PGA概念及调整
2011-01-03 23:18 1705--预备知识PGA(Process Global Area), ... -
修改Oracle SGA——防止oracle内存分配不足而down机
2011-01-03 23:16 2299在安装oracle 10g r2 数据库时,默认的SGA大 ... -
oracle SGA
2011-01-03 23:14 1320系统全局区又称SGA (System Global A ... -
Oracle 高水位概念(hwm)
2010-12-22 22:09 1381说到HWM,我们首先要简要 ... -
CDC积累的plsql用的各种例子
2010-11-09 15:49 800自用,有密码!请勿浪费时间下载。 -
oracle Erp安装和具体财务模块介绍
2010-10-11 12:54 1140http://bbs.erp100.com/thread-20 ... -
Oracle察看表约束
2010-10-08 16:07 10661、我们创建的对象可以从"USER_"开通 ... -
Oracle 行列转换积累
2010-09-29 11:36 1664行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串 ... -
oracle bulk collection
2010-09-14 18:26 1224Oracle Bulk Collection & ... -
oracle discover
2010-09-03 16:28 908oracle discover -
Oracle rawtohex hextoraw
2010-09-03 15:03 3133Oracle 8.1.7 SQL> ed ... -
Oracle Raw,number,varchar2转换
2010-09-03 14:56 2231Oracle Raw,number,varchar2...转换 ... -
Oracle RAW类型解析
2010-09-03 14:52 1373对Oracle Raw类型的详细解剖 以下的文章主要是对O ...
相关推荐
ibatis调用oracle的函数,存储过程的方法,从网上收集的,还没有整理。
NULL 博文链接:https://fengtiejun.iteye.com/blog/1603851
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 23、JDBC中的PreparedStatement相比Statement的好处 24. 写一个用jdbc连接并访问oracle数据的程序代码 25、Class.forName的作用?为什么要用? 26、大数据量下的分页解决方法。 27、用...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 119 23、JDBC中的PreparedStatement相比Statement的好处 120 24. 写一个用jdbc连接并访问oracle数据的程序代码 121 25、Class.forName的作用?为什么要用? 121 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...
39、下面的程序代码输出的结果是多少? ................................................................. 26 40、final, finally, finalize 的区别。 ..........................................................