JAVA中调用Oracle存储过程插入数据

其实直接使用JAVA中的PreparedStatement就可以实现Oracle的增删改查,不过想做一个练手,看看存储过程的JAVA调用到底是如何实现的,所以就写了下面的代码:

首先是存储过程,接收四个参数,并将其插入数据表中:

create or replace procedure test (
v_name varchar2,
v_password varchar2,
v_sex varchar2,
v_address varchar2
)
as
begin
insert into users values(v_name,v_password,v_sex,v_address,sysdate);
end test;

存储过程很简单,在最后还插入了一行系统时间的数据。

接下来就是JAVA端的调用了:

//创建存储过程的对象  
CallableStatement c=conn.prepareCall("{call test(?,?,?,?)}"); 
//各字段赋值
c.setString(1, a[0]);
c.setString(2, a[1]);
c.setString(3, a[2]);
c.setString(4, a[3]);
//执行存储过程  
c.execute();

我将四个字段放在一个数组中,然后调用函数给存储过程赋值。

假设你现在在读一个文件,文件内有四部分内容分别是用户名、密码、性别和地址,要插入数据库,行内间隔用的是tab键,一共很多行,那么就可以这么写代码:

String [] a=null;
try {
	// 读文件
	StringBuffer sb= new StringBuffer("");
	FileReader reader = new FileReader("C:\\test.txt");
	BufferedReader br = new BufferedReader(reader);
	String str = null;

	while((str = br.readLine()) != null) {
          a= str.split("	"); //这是tab键
          for (int i=0;i<a.length;i++) {
           System.out.println(a[i]);
          }
        //创建存储过程的对象  
        CallableStatement c=conn.prepareCall("{call test(?,?,?,?)}"); 
        //各字段赋值
        c.setString(1, a[0]);
        c.setString(2, a[1]);
        c.setString(3, a[2]);
        c.setString(4, a[3]);
        //执行存储过程  
        c.execute();
	}

	br.close();
	reader.close();
}
catch(FileNotFoundException e) {
	e.printStackTrace();
}
catch(IOException e) {
	e.printStackTrace();
}

其实可以利用存储过程来读文件的,利用UTL_FILE包中的fopen函数,只不过麻烦一些,不像在JAVA中这么简单。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值