日期:2014-05-16 浏览次数:20520 次
create table parent( id number(10), name varchar2(100), title varchar2(10) ); create table child( id number(10), parent_id number(10), child_name varchar2(100), child_title varchar2(10), child_content varchar2(200), child_time timestamp ); create sequence seq_p_c_id minvalue 1 maxvalue 9999999999 start with 1 increment by 1 nocache; drop type t_child_lst_map; drop type t_child_lst; drop type t_parent_lst; --创建表对象类型 create or replace type t_parent as object ( name varchar2(100), title varchar2(10) ); / --创建表对象类型 create or replace type t_child as object ( child_name varchar2(100), child_title varchar2(10), child_content varchar2(200) ); / --创建自定义类型变量 create or replace type t_parent_lst as table of t_parent; / --创建自定义类型变量 create or replace type t_child_lst as table of t_child; / --创建自定义类型变量 create or replace type t_child_lst_map as table of t_child_lst; / --创建存储过程 create or replace procedure proc_ins_parent_child( i_parent_lst in t_parent_lst, --parent列表 i_child_map_lst in t_child_lst_map, --child列表集合,一个map元素对应一个child_lst,其下标与 parent列表的下标相同。 o_ret out number ) as var_parent t_parent; var_child_lst t_child_lst; var_child t_child; var_parent_id number; var_child_id number; begin for i in 1..i_parent_lst.count loop --取得parent各列的值 var_parent := i_parent_lst(i); --取得parent_id; select seq_p_c_id.nextVal into var_parent_id from dual; --插入parent表 insert into parent( id, name, title ) values( var_parent_id, var_parent.name, var_parent.title ); --取得该parent对应的child列表 var_child_lst := i_child_map_lst(i); for j in 1..var_child_lst.count loop var_child := var_child_lst(j); --取得child_id; select seq_p_c_id.nextVal into var_child_id from dual; --插入child表 insert into child( id, parent_id, child_name, child_title, child_content, child_time ) values( var_child_id, var_parent_id, var_child.child_name, var_child.child_title, var_child.child_content, systimestamp ); end loop; end loop; o_ret := 0; exception when others then begin o_ret := -1; raise; end; end proc_ins_parent_child; /
package test.oracle.conn; import java.sql.Connection; import java.sql.DriverManager; public class OConnection { public static Connection getConn() { String URL = "jdbc:oracle:thin:@127.0.0.1:1521:oradb"; String user = "cartoon";// 这里替换成你自已的数据库用户名 String password = "oracle";// 这里替换成你自已的数据库用户密码 Connection connection = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("类实例化成功!"); connection = DriverManager.getConnection(URL, user, password); System.out.println("创建连接对像成功!"); } catch (Exception err) { err.printStackTrace(); return null; } return connection; } }
package test.oracle.array; public class Parent { private String id; private String name; private String title; public String getId() { return id; } public void setId(String id) { this.id = id;