好久没有来到这里了,没有什么心思写东西了,因为说真的现在学的却不知道怎么去描述,自己随便写写,下面开始进入正题.
在初级的时候没有涉及到数据库编程,只是简单的Java中传送一个sql语句到数据库,然后返回查询的结果在进行判断,说实话没有觉得有什么不对的,当然了,也看到过一些关于软件性能一些方面的东西,但是限于个人知识面的原因,那时候还没有仔细考虑,知道最近开始学习了数据库变成之后,才发现还有很大的提升,当然了,即便是现在这样,肯定还会有提升空间的,毕竟是新人么。
先简单的说一下效率的问题,个人理解,先说一下初级的时候执行数据库的增删改查的时候都要传送一个sql语句,然后进入数据库之后执行,但是当大量的数据发生的时候,每一个都要发送一个sql语句的话就会造成资源的浪费。而过程呢就是将过程存储到数据库中,在Java中只要传一个对象过去,调用对应的方法,然后取到返回值,这样在效率上面就有了一定的提升了。
简单的过程语法是
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_list)] {IS|AS} [local_declarations] BEGIN executable_statements [EXCEPTION exception_handlers] END [procedure_name];
create or replace procedure proc_getEnameById(var_empno in number) as --在过程内部,变量直接定义,不需显示编写declare var_ename varchar2(50); begin select ename into var_ename from emp where emp.empno=var_empno; dbms_output.put_line('员工姓名为:'||var_ename); end;
过程现阶段就接触过很简单的一些,毕竟现在还在学习中,没有接触过太多
我现阶段用到最多的应该就是增删改查了。
1.添加用户的代码,以自己新建的userinfo表为标准,其中有userid,username,userpwd三个属性,另外创建了一个序列,seq_userinfo
create or replace procedure proc_addUser (var_username in varchar2,var_userpwd in varchar2,var_count out number) as begin insert into userinfo values(seq_userinfo.nextval,var_username,var_userpwd); var_count:=1; exception when others then var_count:=0; end;
而调用呢分为Java中和数据库中调用了
在oracle中的调用
--ORACLE中调用 declare var_username varchar2(50):='李四'; var_userpwd varchar2(50):='ls123'; var_count number; begin proc_addUser(var_username,var_userpwd,var_count); dbms_output.put_line(var_count); end;
在Java中调用
String sql="{call proc_addUser(?,?,?)}"; con=DBUtil.getConnetion();//这个可以就是连接的,只是封装到一个类中了 CallableStatement cstm =con.prepareCall(sql); //设置过程的参数 in,in ,out //注意下标 1 2 3 //out参数注册 index,Types(sql) cstm.registerOutParameter(3, Types.INTEGER); cstm.setString(1, "李四"); cstm.setString(2, "ls123"); //执行 cstm.execute(); //显示结果 int count=cstm.getInt(3); if(count==1){ System.out.println("添加用户"); } else{ System.out.println("用户不合法"); }
增删改,个人认为还是一样的,只是在过程当众有那么一个sql语句是不一样的,其他方面应该没有太大的区别,下面应该就是最麻烦的查了。
在查询的时候用到了游标,
create or replace procedure proc_emp(cur_emp out sys_refcursor) is begin open cur_emp for select * from emp; end;
在oracle中调用
declare cur_temp sys_refcursor; var_emprow emp%rowtype; begin proc_emp(cur_temp); --这样这个游标就有值了 fetch cur_temp into var_emprow; while cur_temp%found loop dbms_output.put_line(var_emprow.empno||var_emprow.ename); fetch cur_temp into var_emprow; end loop;--由于可能不是一个值,所以要循环的 end;
Java当众调用
String sql = "{call proc_emp(?)} "; // 调用DBUtil 数据访问类的方法 Connection con = DBUtil.getConnetion(); CallableStatement cstm =con.prepareCall(sql); cstm.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); cstm.execute(); ResultSet rs = (ResultSet)cstm.getObject(1); while(rs.next()){ System.out.println(rs.getString(1)+rs.getString(2)+rs.getString(3));}
--1完成用户信息表的所有信息查询
--2完成根据用户姓名模糊查询返回结果集过程
大体上就这些,其实还有其他的等一下在写写
相关推荐
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据了重要的地位。本文将详述“Oracle数据库工具安装包(免安装)”的相关知识点,包括Oracle Client 11.2版本以及32位系统兼容性,...
本文将介绍如何在Windows平台上利用VFP调用Oracle存储过程,以及实现Oracle数据库内容向VFP数据表的自动转换。 首先,我们来了解Oracle数据库。Oracle数据库是一种基于SQL的大型关系型数据库系统,它以支持多用户、...
在Oracle数据库中实现这样的系统,需要进行数据库设计,包括实体关系模型(ER模型)的构建,确定数据表的结构、字段、主键和外键等关键元素,以确保数据的一致性和完整性。 在PPT中,可能详细阐述了需求分析、系统...
Oracle 数据库是一个强大的关系型数据库管理系统,提供了强大的数据存储和管理功能。为了管理和监控数据库的访问情况,需要对登录 Oracle 数据库的用户记录进行跟踪和查看。本文将介绍如何查看登录 Oracle 数据库的...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,它在企业级数据管理和应用程序开发中扮演着核心角色。本资源“Oracle数据库系统应用与开发”深入探讨了Oracle数据库的使用和开发技术,特别关注...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其强大的功能和稳定性使其在企业级应用中占据了重要地位。本文将详细解析Oracle数据库的体系结构,帮助读者深入理解其内部工作原理。 Oracle数据库的...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。这份"Oracle数据库编程pdf文档教案"提供了从基础到高级的Oracle学习路径,通过5天的学习内容,帮助读者深入理解并掌握...
Oracle数据库是全球广泛使用的大型关系型数据库系统之一,它在数据存储、处理和管理方面具有强大的功能。本主题主要探讨Oracle数据库的设计原则和优化策略,以提升系统的性能和效率。 一、数据库设计基础 1. 规范化...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,尤其在企业级应用中占据主导地位。本指南将针对初学者,详细介绍Oracle数据库的基础知识、安装与配置,以及一些常用的操作和管理技巧。 **1. Oracle...
Oracle数据库是甲骨文公司推出的一个功能强大的关系数据库管理系统,它广泛应用于金融、电信、制造等行业。Oracle数据库试题能够帮助相关岗位的应聘者或者数据库管理人员加深对Oracle数据库的理解。本次提供的100题...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据主导地位。通过这套课件,学习者可以深入了解Oracle数据库的架构、管理、优化以及开发技巧。 课程内容可能包括以下几个核心部分: ...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在企业级应用中扮演着核心角色。然而,当不再需要Oracle数据库或需要进行系统升级时,正确、彻底地卸载Oracle数据库至关重要,以防止残留文件影响新安装或...
为了解决 Oracle 数据库升迁过程中的字符集问题,需要掌握 Export 和 Import 命令的使用方法,并了解 Oracle 数据库系统升迁过程中的字符集转换问题。 在 Oracle 数据库升迁过程中,字符集问题的解决方法可以分为...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,用于存储、管理和检索复杂的数据。为了与Oracle数据库进行交互,我们需要可靠的连接工具。"Oracle数据库连接工具"指的是可以方便地连接到Oracle数据库并执行...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,其安全性与数据加密功能强大,为保护敏感信息提供了坚实的基础。然而,有时为了进行数据库维护、故障排查或审计需求,开发人员可能需要查看存储过程的源代码...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据着核心地位。本课件将深入探讨Oracle数据库的应用,旨在帮助学习者掌握其基础知识和操作技能。 首先,我们来了解一下“数据库的基础...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,适用于处理大量数据和并发事务。 Oracle数据库连接模块的核心在于如何建立和管理与Oracle服务器的通信。在这个模块中,通常会用到Oracle的数据访问接口,如...
Oracle数据库是一种广泛应用于企业和组织的大型关系型数据库管理系统,它提供了高效的数据存储、管理和查询功能。在Oracle数据库课程中,学生们通常会被要求掌握一系列基础知识,包括数据库的逻辑存储结构、服务端口...
在这个“Abp项目模板使用Oracle数据库”的场景中,开发者已经将Abp框架与Oracle 11g数据库集成,以便利用Oracle的强大功能来存储和管理应用程序的数据。Abp.Zero是Abp框架的一个子模块,主要关注多层架构中的基础...