java调用oracle存储过程
一:无返回值的存储过程
存储过程为:
create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)
as
begin
insert into dept values(deptno,dname,loc);
end;
然后呢,在java里调用时就用下面的代码:
public class TestProcedure {
Connection conn=null ;
CallableStatement cstmt=null ;
PreparedStatement pstmt=null ;
String url="jdbc:oracle:thin:@localhost:1521:mydb";
String driver="oracle.jdbc.driver.OracleDriver";
String name="";
public TestProcedure() {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"scott","tiger");
cstmt=conn.prepareCall("{call adddept(?,?,?)}");
cstmt.setInt(1,13);
cstmt.setString(2,"间谍部2");
cstmt.setString(3,"ningbo2");
cstmt.executeUpdate();
System.out.println("success");
}
catch (Exception e){e.printStackTrace();}
finally{
cstmt.close();
conn.close();
}
}
}
dept表为oracle数据库方案scott中的一个表
二:有返回值的存储过程(非列表)
存储过程为:
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT INTO PARA2 from TESTTB WHERE I_ID= PARA1;
END TESTB;
在java里调用时就用下面的代码:
package com.hyq.src;
public class TestProcedureTWO {
public TestProcedureTWO() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, " hyq "
相关文档:
解决方法:
1. 先看几个配置文件:listener.ora tnsnames.ora sqlnet.ora
sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串.假如我的sqlnet.ora是下 ......
备份的方法
ORACLE数据库有三种标准的备份。导出/导入(EXPORT/IMPORT) 、冷备份、热备份。
导出备份是一种逻辑备份,这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。
冷备份和热备份是物理备份(也称低级备份),它涉及到 ......
Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。
当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量 ......
处理乱码问题
1、规范数据库和页面所有编码统一为一种例如utf-8
2、hibernate连接数据库设置连接编码
<session-factory>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/leaveword?useUnicode=true&characterEncoding=utf-8
& ......
最近在学习java的时候,对于java函数的传递了解了一下。java的数据类型大的分为两种,一种是基本数据类型,另一种是非基本数据类型,(类数据类型)。在参数传递时候,基本的数据类型传递的是对实参数的一份拷贝,而非基本数据类型则是实例的引用的一份拷贝。我的理解是类的实例,即对象存放的内容就是引用,实际是地址。
......