java中使用ibatis来调用存储过程(上)
我们在进行pl/sql编程时打交道最多的就是存储过程了。存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识。如:游标的处理,异常的处理,集合的选择等等
1.存储过程结构
1.1 第一个存储过程
create or replace procedure proc1(
p_para1 varchar2,
p_para2 out varchar2,
p_para3 in out varchar2
)as
v_name varchar2(20);
begin
v_name := '张三丰';
p_para3 := v_name;
dbms_output.put_line('p_para3:'||p_para3);
end;
create or replace procedure proc1(
p_para1 varchar2,
p_para2 out varchar2,
p_para3 in out varchar2
)as
v_name varchar2(20);
begin
v_name := '张三丰';
p_para3 := v_name;
dbms_output.put_line('p_para3:'||p_para3);
end;
上面就是一个最简单的存储过程。一个存储过程大体分为这么几个部分:
创建语句:create or replace procedure 存储过程名
如果没有or replace语句,则仅仅是新建一个存储过程。如果系统存在该存储过程,则会报错。Create or replace procedure 如果系统中没有此存储过程就新建一个,如果系统中有此存储过程则把原来删除掉,重新创建一个存储过程。
存储过程名定义:包括存储过程名和参数列表。参数名和参数类型。参数名不能重复, 参数传递方式:IN, OUT, IN OUT
IN 表示输入参数,按值传递方式。
OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
IN OUT 即可作输入参数,也可作输出参数。
参数的数据类型只需要指明类型名即可,不需要指定宽度。
参数的宽度由外部调用者决定。
过程可以有参数,也可以没有参数
变量声明块:紧跟着的as (is )关键字,可以理解为pl/sql的declare关键字,用于声明变量。
变量声明块用于声明该存储过程需要用到的变量,它的作用域为该存储过程。另外这里声明的变量必须指定宽度。遵循PL/SQL的变量声明规范。
过程语句块:从begin 关键字开始为过程的语句块。存储过程的具体逻辑在这里来实现。
异常处理块:关键字为exception ,为
相关文档:
准备工作
首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只开一个行了。
然后,到微软网站下载Microsoft SQL Server 2005 JDBC Driver 1.1
,也可以使用这个地址直接下载
。
解压sqljdbc_1.1.1501.101_chs.exe,把sqljdbc_1.1复制到%ProgramFiles%(如果系统在C盘则为C:\ ......
下面这段代码是经过代码分析工具Rational Software Analyser 分析过的,该工具关于Java的规则目前是541条,实属苛刻。写段规范点的Java代码容易么!
/**
*
* @author zhp
*
* @version 1.0
*/
package com.rsar;
import java.util.Date;
/**
*
* @author zhp
  ......
通常在用JAVA开发软件的过程中,我们常常会遇到需要把一些系统的配置参数保存到数据库中以防止丢失,传统的方法是将每个配置参数作为对象来建立数据库模型,相当于把模型中的对象绑定到数据表的每个字段上,但这样做的话灵活度太低,当需要添加配置参数时先得往数据表添加字段,再修改数据库模型和相关的映射文件。能否 ......
MSSQL中提供了个datediff函数用来对两个时间进行减法操作,但在Java中却没有,如果我们想知道两个日期间相隔了多少天,或是相隔了多少个小时则要手工计算。下面代码模仿MSSQL的datediff函数提供了使用不同时间间隔来计算两个时间相差的时间间隔的数目,比如timeInterval为day则返回相差的天数,为month则返回相差的月数 ......
服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ThreadSocketServer extends Thread {
private Socket client;
&n ......