ibatis调用存储过程
发布日期:2021-10-03 03:16:58
浏览次数:7
分类:技术文章
本文共 2688 字,大约阅读时间需要 8 分钟。
*.xml文件配置
<!-- 调用存储过程查询所有员工假期信息列表 -->
<parameterMap id="swapProcedureMap" class="java.util.Map"> <parameter property="a" javaType="String" jdbcType="VARCHAR(20)" mode="IN"/> <parameter property="b" javaType="String" jdbcType="VARCHAR(20)" mode="IN"/> <parameter property="c" javaType="String" jdbcType="VARCHAR(20)" mode="IN"/> <parameter property="d" javaType="String" jdbcType="VARCHAR(20)" mode="IN"/> <parameter property="e" javaType="String" jdbcType="VARCHAR(20)" mode="IN"/> <parameter property="f" javaType="String" jdbcType="VARCHAR(1000)" mode="OUT"/> </parameterMap> <procedure id="getStaffHolidayList" parameterMap="swapProcedureMap"> {call proc_staffholi(?,?,?,?,?,?)} </procedure>dao层:
public List<StaffHoliday> selectStaffHolidayList(StaffHoliday staffHoliday)throws DBException
{ //定义员工假期集合 List<StaffHoliday> shs = new ArrayList<StaffHoliday>(); //定义公司编号 String branchIdStr = null; //定义部门编号 String departmentIdStr = null; //定义分页起始页 String startStr = null; //定义分页大小 String limitStr = null; //判断公司编号是否为null if(staffHoliday.getBranchId()!=null) { //把公司编号转换成字符串类型 branchIdStr = staffHoliday.getBranchId().toString(); } //判断部门编号是否为空 if(staffHoliday.getDepartmentId()!=null) { //把部门编号转换成字符串类型 departmentIdStr = staffHoliday.getDepartmentId().toString(); } //判断起始页是否为空 if(staffHoliday.getStart()!=null) { //转换成字符串类型 startStr = staffHoliday.getStart().toString(); } //判断分页大小是否为空 if(staffHoliday.getLimit()!=null) { //转换成字符串类型 limitStr = staffHoliday.getLimit().toString(); } //定义哈希map Map<String,String> m = new HashMap<String, String>(6); //把存储过程中参数放入哈希map中 m.put("a", branchIdStr); m.put("b", departmentIdStr); m.put("c", staffHoliday.getEmployeeName()); m.put("d", startStr); m.put("e", limitStr); m.put("f",""); //通过id执行带参数的存储过程 queryObjectByObj("getStaffHolidayList", m); //获取输出参数 String sqlStr = m.get("f"); //获取jdbc连接 Connection conn = Util.getConnection(); //获取jdbc操作对象 Statement state = Util.getStatement(conn); //获取结果集 ResultSet rs = Util.getResultSet(state, sqlStr); try { //把结果集放入员工假期集合中 while(rs.next()){ //定义员工假期对象 StaffHoliday sh = new StaffHoliday(); //给员工假期对象中员工编号赋值 sh.setEmployeeId(rs.getString(1)); //给员工假期对象中员工姓名赋值 sh.setEmployeeName(rs.getString(2)); //给员工假期对象中部门名称赋值 sh.setDepartmentName(rs.getString(3)); //给员工假期对象中职务名称赋值 sh.setDutyName(rs.getString(4)); //给员工假期对象中员工年休赋值 sh.setYearVacation(rs.getInt(5)); //给员工假期对象中员工月休赋值 sh.setMonthVacation(rs.getInt(6)); //给员工假期对象中员工夏休赋值 sh.setSummerVacation(rs.getInt(7)); //给员工假期对象中员工产假赋值 sh.setBearVacation(rs.getInt(8)); //给员工假期对象中更新时间赋值 sh.setUpdateTime(rs.getString(10)); //向员工假期集合中添加员工假期对象 shs.add(sh); } } catch (SQLException e) { e.printStackTrace(); }finally{ Util.closeAll(rs, state, conn); } return shs; }转载地址:https://blog.csdn.net/KANGBROTHER/article/details/6796047 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年03月31日 21时10分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Angular2工程部署到Tomcat服务器,第一次访问正常,刷新浏览器后报404错误
2019-04-26
【力扣】155. 最小栈
2019-04-26
【力扣】160. 相交链表
2019-04-26
【力扣】167. 两数之和 II - 输入有序数组
2019-04-26
【力扣】168. Excel表列名称
2019-04-26
【力扣】456. 132 模式
2019-04-26
【力扣】82. 删除排序链表中的重复元素 II
2019-04-26
【剑指OFFER】 41. 数据流中的中位数
2019-04-26
【力扣】83. 删除排序链表中的重复元素
2019-04-26
【剑指OFFER】 43. 1~n 整数中 1 出现的次数
2019-04-26
【剑指OFFER】44. 数字序列中某一位的数字
2019-04-26
【剑指OFFER】45. 把数组排成最小的数
2019-04-26
【区块链】使用JAV简易A模拟创建区块链及挖矿
2019-04-26
【力扣】74. 搜索二维矩阵
2019-04-26
【剑指OFFER】46. 把数字翻译成字符串
2019-04-26
【剑指OFFER】47. 礼物的最大价值
2019-04-26
【力扣】90. 子集 II
2019-04-26
【剑指OFFER】48. 最长不含重复字符的子字符串
2019-04-26
【力扣】80. 删除有序数组中的重复项 II
2019-04-26
【剑指OFFER】50. 第一个只出现一次的字符
2019-04-26