- 浏览: 518587 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 1386create or replace procedure P ... -
Oracle入门课件
2011-12-11 22:43 1008下载附件 -
自己经常上的Oracle官网的一些链接~~是啥自己点开看
2011-11-17 23:27 1116http://www.oracle.com/pls/db ... -
Oracle性能诊断艺术源码
2011-08-16 00:51 877请下载。 -
oracle support
2011-06-23 16:34 918https://support.oracle.com/CSP/ ... -
oracle 11g sql code
2011-02-24 20:55 1107附件参考 -
Oracle SQL优化
2011-01-19 23:16 872详见附件。讲述优化器。 -
Oracle PGA概念及调整
2011-01-03 23:18 1746--预备知识PGA(Process Global Area), ... -
修改Oracle SGA——防止oracle内存分配不足而down机
2011-01-03 23:16 2338在安装oracle 10g r2 数据库时,默认的SGA大 ... -
oracle SGA
2011-01-03 23:14 1363系统全局区又称SGA (System Global A ... -
Oracle 高水位概念(hwm)
2010-12-22 22:09 1434说到HWM,我们首先要简要 ... -
CDC积累的plsql用的各种例子
2010-11-09 15:49 833自用,有密码!请勿浪费时间下载。 -
oracle Erp安装和具体财务模块介绍
2010-10-11 12:54 1179http://bbs.erp100.com/thread-20 ... -
Oracle察看表约束
2010-10-08 16:07 11041、我们创建的对象可以从"USER_"开通 ... -
Oracle 行列转换积累
2010-09-29 11:36 1704行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串 ... -
oracle bulk collection
2010-09-14 18:26 1254Oracle Bulk Collection & ... -
oracle discover
2010-09-03 16:28 956oracle discover -
Oracle rawtohex hextoraw
2010-09-03 15:03 3185Oracle 8.1.7 SQL> ed ... -
Oracle Raw,number,varchar2转换
2010-09-03 14:56 2260Oracle Raw,number,varchar2...转换 ... -
Oracle RAW类型解析
2010-09-03 14:52 1418对Oracle Raw类型的详细解剖 以下的文章主要是对O ...
相关推荐
在Ibatis中调用Oracle函数和存储过程,你需要以下步骤: 1. **配置映射文件(Mapper XML)**: - 创建一个XML映射文件,定义SQL语句。对于函数,使用`<select>`标签;对于存储过程,使用`<procedure>`标签。 - 在...
在iBatis中,当存储过程返回一个游标时,你可以将其映射为一个Java List。为此,你需要在Java方法中声明一个List类型的参数,而在SQL映射文件中,使用`<resultMap>`定义一个结果集映射,然后在`<selectResult>`标签...
3. **存储过程调用**:Ibatis可以通过`<select>`、`<procedure>`元素调用Oracle的存储过程,增强业务逻辑的封装性。 4. **连接池管理**:Ibatis可以与各种连接池(如C3P0、Druid、HikariCP等)集成,提高数据库连接...
对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...
Oracle数据库支持多种分页方式,如ROWNUM伪列、ROWNUM配合子查询、ROW_NUMBER()窗口函数等。在这个项目中,开发者可能采用了简单的SQL拼接方式,即在动态构建的SQL查询语句中添加LIMIT或OFFSET子句来实现分页,这种...
Oracle还提供了许多高级特性,如PL/SQL过程语言、触发器、存储过程和函数,以及分区表等,这些在复杂的业务场景中十分有用。 该实例可能包含以下内容: 1. 数据库连接配置:在Ibatis的配置文件中,会设置Oracle的...
在本文中,我们将探讨如何在Mybatis框架中调用PostgreSQL的存储过程,特别是处理 PostgreSQL 的数组类型作为存储过程的输入参数。Mybatis是一个流行的Java持久层框架,它允许开发者编写SQL语句,并与Java对象进行...
### 访问存储过程(或函数)通过IBATIS中的Procedure标签定义Statement 在IBATIS框架中,访问数据库中的存储过程或者函数是一项常见的需求。本文将深入探讨如何利用IBATIS提供的`procedure`标签来定义这样的操作,...
例如,对于Oracle,可以调用序列函数获取新的主键值。 4. **存储过程** Ibatis 支持调用数据库的存储过程。通过 `<procedure>` 元素,可以定义存储过程的调用,并通过 `<parameterMap>` 定义输入输出参数。在存储...
Struts 2、Spring 和 iBatis 是三个非常重要的 Java 开发框架,它们在构建企业级应用程序时扮演着核心角色。这个压缩包包含了这些框架的特定版本和其他相关的库,为开发人员提供了一套完整的集成环境。 Struts 2 是...
4. Oracle数据库:理解Oracle的数据类型、表结构设计、索引、存储过程和函数的使用,以及SQL语句(DML、DDL、DQL、DCL)的编写和优化。 5. CRUD操作:学习如何通过Struts2和iBatis实现对Oracle数据库的增删改查操作...
### Java现场面试题详解:亚信SSH\Oracle面试题 #### Struts1.0的运行机制与架构原理 Struts框架作为MVC(Model-View-Controller)设计模式的经典实现之一,极大地方便了Java Web应用的开发。在传统的JSP-Servlet-...
4. **处理结果集**:如果查询操作返回结果集,则需要使用ResultSet对象遍历数据。 5. **关闭资源**:最后记得关闭所有打开的资源,包括ResultSet、Statement和Connection。 #### 5. Struts框架的基本原理 Struts是...
- 结果集处理 - 事务管理 - DAO模式 - DTO模式 ##### 7. JUnit - 测试框架基础 - 测试设计与执行 ##### 8. 应用系统开发流程 - 需求调研 - 系统设计 - 系统实现 - 系统部署 **可选项目**: - Mail Server ...
##### 存储过程概述 - **定义**:一组预编译的SQL语句。 - **用途**:提高代码复用性和性能,简化复杂业务逻辑。 ##### 索引概述 - **类型**:B-tree、位图、反转索引等。 - **作用**:加快数据检索速度。 #### ...
解释为何选择Hibernate,以及调用存储过程的方法。 7. **DWR(Direct Web Remoting)**:DWR允许JavaScript与服务器端Java代码进行交互,实现Ajax功能。要能解释DWR的工作原理,并提供在项目中使用DWR的实例。 8. ...
使用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如何调用存储过程 119 23、JDBC中的PreparedStatement相比Statement的好处 120 24. 写一个用jdbc连接并访问oracle数据的程序代码 121 25、Class.forName的作用?为什么要用? 121 26、大数据量下的分页解决...