String sql="{call queryEmpInfo(?,?,?,?)}";

package com.tfy.oracle.jbbc.test;


import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;


import oracle.jdbc.OracleTypes;
import oracle.jdbc.internal.OracleCallableStatement;
import oracle.jdbc.oracore.OracleType;


import org.junit.Test;


import com.tfy.oracle.util.DbcpUtil;
import com.tfy.oracle.util.OracleJdbcUtil;


public class TestOracle {
/*
* create or replace procedure queryEmpInfo(eno in number,
pename out varchar2,
psal out number,
pjob out varchar2)
*/
// {call <procedure-name>[(<arg1>,<arg2>, ...)]}
@Test
public void ProcedureTestqueryEmpInfo(){
String sql="{call queryEmpInfo(?,?,?,?)}";
Connection conn=null;
CallableStatement call=null;
ResultSet rs=null;
try{
conn=OracleJdbcUtil.getConnection();
call=conn.prepareCall(sql);
//赋值
call.setInt(1, 7839);
//申明out参数
call.registerOutParameter(2, OracleTypes.VARCHAR);
call.registerOutParameter(3, OracleTypes.NUMBER);
call.registerOutParameter(4,OracleTypes.VARCHAR);
//执行
call.execute();

String name=call.getString(2);
double sal=call.getDouble(3);
String job=call.getString(4);

System.out.println(name);
System.out.println(sal);
System.out.println(job);

}catch(Exception e){
e.printStackTrace();

}finally{
OracleJdbcUtil.realese(conn, call, rs);
}

}
/*
* create or replace function queryEmpIncome(eno in number)
return number
*/
// {?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
@Test
public void TestFunction(){
String sql="{?=call queryEmpIncome(?)}";
Connection conn=null;
CallableStatement call=null;
ResultSet rs=null;

try{
conn=OracleJdbcUtil.getConnection();
call=conn.prepareCall(sql);
//赋值
call.registerOutParameter(1, OracleTypes.NUMBER);
call.setInt(2, 7839);

//执行
call.execute();
//取出员工的年收入
// String name=call.getString(3);
double incom=call.getDouble(1);
// System.out.println(name+"的年收入为:"+incom);
System.out.println("的年收入为:"+incom);

}catch(Exception e){
e.printStackTrace();
}finally{
OracleJdbcUtil.realese(conn, call, rs);
}
}
/*
* CREATE OR REPLACE PACKAGE MYPACKAGE AS


type empcursor is ref cursor;
procedure queryEmpList(pdno in number,empList out empcursor);


END MYPACKAGE;


注意:
1. 光标是否关闭?
2. 能在mysql上运行吗?
*/
@Test
public void Testpakge(){
//{call <procedure-name>[(<arg1>,<arg2>, ...)]}
String sql="{call queryEmpList(?,?)}";
Connection conn=null;
CallableStatement call=null;
ResultSet rs=null;
try{
conn=OracleJdbcUtil.getConnection();
call=conn.prepareCall(sql);
//赋值
call.setInt(1, 20);
//申明
call.registerOutParameter(2, OracleTypes.CURSOR);
//执行
call.execute();
rs=((OracleCallableStatement)call).getCursor(2);
while(rs.next()){
String name=rs.getString("ename");
String job=rs.getString("empjob");
double sal=rs.getDouble("sal");
System.out.println("name=="+name+" job=="+job+" sal=== "+sal);
}

}catch(Exception e){
e.printStackTrace();
}finally{
OracleJdbcUtil.realese(conn, call, rs);
}
}

}
public void save() { String forwardurl = request.getParameter("forwardurl"); String errorurl=request.getParameter("errorurl"); String name = request.getParameter("name"); String spno = request.getParameter("spno"); String jiage = request.getParameter("jiage"); String dazhe = request.getParameter("dazhe"); String tuijian = request.getParameter("tuijian"); String zuixin = request.getParameter("zuixin"); String hot=request.getParameter("hot"); String sptype = request.getParameter("sptype"); String sptypeid = request.getParameter("sptypeid"); String tupian = request.getParameter("tupian"); String jieshao = request.getParameter("jieshao"); String hyjia = request.getParameter("hyjia"); String pubren = request.getParameter("pubren"); SimpleDateFormat sdfshangpin = new SimpleDateFormat("yyyy-MM-dd"); Shangpin shangpin = new Shangpin(); shangpin.setName(name == null ? "" : name); shangpin.setSpno(spno == null ? "" : spno); shangpin.setJiage(jiage == null ? (double) 0 : new Double(jiage)); shangpin.setDazhe(dazhe == null ? 0 : new Integer(dazhe)); shangpin.setTuijian(tuijian == null ? 0 : new Integer(tuijian)); shangpin.setZuixin(zuixin == null ? 0 :new Integer( zuixin)); shangpin.setHot(hot==null?0:new Integer(hot)); shangpin.setSptype(sptype == null ? "" : sptype); shangpin.setSptypeid(sptypeid == null ? 0 : new Integer(sptypeid)); shangpin.setTupian(tupian == null ? "" : tupian); shangpin.setJieshao(jieshao == null ? "" : jieshao); shangpin.setHyjia(hyjia == null ? 0 : new Integer(hyjia)); shangpin.setPubtime(new Date()); shangpin.setPubren(pubren == null ? "" : pubren);每一行代码的解释
最新发布
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值