`
hehaibo
  • 浏览: 410837 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

itbatis调用Oracle的存储过程--oracle10g

阅读更多
[code="java"] public class Dept { private Integer deptno;// 部门编号 private String dname;// 部门名称 private String loc;// 部门位置 //省略get 和set方法 } public class Emp { private Integer empno;//员工编号 private String ename;//员工姓名 private String job;//职位 private Integer mgr;//经理号 private Date hiredate;//雇佣日期 private Float sal;//工资 private Float comm;//工资补助 private Integer deptno;//部门编号 //省略get 和set方法 } //创建表的脚步和初始化数据 create table dept ( deptno number(7) primary key, dname varchar2(30) , loc varchar2(30) ); insert into dept values(1,'市场部',''); insert into dept values(2,'开发部',''); insert into dept values(3,'服务部',''); create table emp ( empno number(7) primary key, ename varchar2(20), job varchar2(10), mgr number(4), hiredate date, sal number(7,2), comm number(7,2), deptno number(7) ); //建立关联关系,也可以不建立,可以省略,程序维护 alter table emp add constraint foreign key fk_emp_dept(deptno) references dept(deptno); insert into emp values(7233,'tomcat','saler',7369,date'2000-9-5',5000,null,1); insert into emp values(7369,'mysql','manager',1,date'2000-2-12',6600,200,2); insert into emp values(7562,'java','saler',2,date'2000-3-23',8000,100,1); insert into emp values(7412,'struts','saler',2,date'1999-5-14',20000,null,1); insert into emp values(7986,'hibernate','manager',7512,date'2000-2-12',6600,200,2); insert into emp values(7328,'spring','saler',2,date'1988-12-25',8000,1000,1); //创建序列 create sequence myseq; //存储过程 create or replace procedure mypro(dept_no out number,deptname in varchar2,dept_loc in varchar2) as no number(7); insertStr varchar(150); begin select myseq.nextval into no from dual; dept_no:=no; insertStr := 'insert into dept(deptno,dname,loc) values('||dept_no||','||''''||deptname||''''||','||''''||dept_loc||''''||')'; execute immediate insertStr; commit; end; ibatis的配置文件: {call mypro(?,?,?)} 3 测试方法 SqlMapClient sqlClient = null; try { Reader reader = Resources .getResourceAsReader("config/SqlMapConfig.xml"); sqlClient = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); // Map map = new HashMap(); // //map.put("deptno", 10); // map.put("deptname", "name"); // map.put("dept_loc", "loc"); // sqlClient.startTransaction(); // sqlClient.queryForObject("saveDept", map); // // sqlClient.commitTransaction(); Map map = new HashMap(); BigDecimal key = new BigDecimal(0); map.put("dept_no", key); map.put("dept_name“;, "name"); map.put("dept_loc”, "loc"); sqlClient.startTransaction(); Object object = sqlClient.queryForObject("saveDept", map); sqlClient.commitTransaction(); System.out.println(map.get("dept_no").toString()); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } [/code]
分享到:
评论
3 楼 hehaibo 2008-01-07  
我都尝过了。读没有效果。
2 楼 NetBus 2008-01-07  
jdbcType="VARCHAR2"

标准的jdbc types没有varchar2。请使用varchar
1 楼 piaoling 2008-01-07  
你把deptno的10改为Long型的看看

相关推荐

Global site tag (gtag.js) - Google Analytics