`
zjx2388
  • 浏览: 1340555 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

SSH中调用存储过程

    博客分类:
  • J2EE
阅读更多

SSH中调用带返回结果集的存储过程:

public class ExecuteProceduresDaoImpl extends JdbcDaoSupport implements ExecuteProceduresDao {   
  public Object Call_prLS_OrderByMemberOrNotMember(final String[] parm) {   
    String procedureSql = "{?=call prLS_OrderByMemberOrNotMember(?,?,?,?,?,?,?,?,?,?)}";   
        return (Object) getJdbcTemplate().execute(procedureSql, new CallableStatementCallback() {   
                    public Object doInCallableStatement(CallableStatement cs)   
                            throws SQLException, DataAccessException {   
                        int j = 2;   
                        cs.registerOutParameter(1, Types.INTEGER);   
                        if (parm != null) {   
                            for (int i = 0; i < parm.length; i++) {   
                                cs.setString(j, parm[i]);   
                                ++j;   
                            }   
                        }   
                        if (cs.execute()) {   
                            ResultSet rs = cs.getResultSet();   
                            while (rs.next()) {   
                                rs.getString(1);   
                                rs.getString(2);   
                                rs.getString(3);   
                            }   
                            return null;   
                        } else {   
                            return cs.getInt(1);   
                        }   
                    }   
                });   
    }   
  
}  

 

SSH中调用带返回值的存储过程:

public class RechargeDAOImpl extends JdbcDaoSupport implements RechargeDAO {
 static int result = -1;
 
 
 public int rechargeCard() {
  String procedureSql = "{? = call sp_pb_addmoney(?,?,?,?,?,?,?,?,?,?,?,?,?)}";
  
  this.getJdbcTemplate().execute(procedureSql, new CallableStatementCallback() {
   
   
   public Object doInCallableStatement(CallableStatement cstmt)
     throws SQLException, DataAccessException {
    cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
    
    cstmt.setInt(2, 2);//dptid
    cstmt.setInt(3, 000002);// sysno;char;6
    cstmt.setString(4, "0100100000006321");//serial;char;16
    cstmt.setDate(5, null);//dealdate;datetime;8;
    cstmt.setInt(6, 100);//bagvalue;money;8
    cstmt.setInt(7, 0);//oldbagvalue;money;8;
    cstmt.setInt(8, 0);//icanorder;int;
    cstmt.setInt(9, 0);//cardtransno;int
    cstmt.setString(10, "0");//operid;varchar
    cstmt.setInt(11, 0);//subappid;int
    cstmt.setDate(12, null);//expiredDate;datetime;8
    cstmt.setString(13, "0");//tac;varchar;8
    cstmt.setInt(14, 1);//@returnv;设置-1,0,1
    
    cstmt.execute();
    result = cstmt.getInt(1);//返回值
    return result;
   }
  });
  return result;
 }
 
}

补充:

继承了JdbcDaoSupport ,需要Spring助于dataSource对象.

配置的例子:

 

<bean id="recharegeDAO" class="com.potevio.quancun.dao.impl.RechargeDAOImpl" scope="singleton">
 <property name="dataSource">
  <ref bean="dataSource"/>
 </property>
</bean>

 

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" >
	<property name="alias" value="Pool"/>
	<property name="driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
	<property name="driverUrl" value="jdbc:microsoft:sqlserver://172.16.11.20:1433;user=sa;password=111;DatabaseName=news;SelectMethod=cursor"/>
	<property name="user" value="sa"/>
	<property name="password" value="111"/>
	<property name="houseKeepingSleepTime" value="90000"/>
	<property name="prototypeCount" value="5"/>
	<property name="maximumConnectionCount" value="100"/>
	<property name="minimumConnectionCount" value="10"/>
	<property name="trace" value="true"/>
	<property name="verbose" value="true"/>
</bean>

 

分享到:
评论

相关推荐

    hibernat调用过程和函数

    在Hibernate中调用存储过程需要正确地定义存储过程、配置映射文件以及编写Java程序。此外,还需要注意参数类型的匹配问题。通过以上步骤,可以有效地利用Hibernate的强大功能进行高效的数据操作。

    韩顺平Spring笔记之ssh整合.doc

    这样,我们可以在业务层中定义Service接口和实现类,处理事务逻辑,然后在Struts的Action中调用这些Service。 为了管理事务,我们需要配置一个事务管理器,例如`HibernateTransactionManager`,并将其与...

    基于Java web SSH框架的客户管理系统源码(含数据库脚本).zip

    在本项目中,可能是用于初始化客户管理系统的数据表、索引、视图和存储过程等。用户需要将这些脚本在MySQL数据库中执行,以建立符合项目需求的数据模型。 【导入Java EE工具】 Java EE工具,如Eclipse、IntelliJ ...

    Compass全文检索完整实例,可运行

    例如,你可以在Struts的Action中调用搜索方法,Spring可以帮助管理Compass的生命周期,而Hibernate则负责数据的CRUD操作。 在实际开发中,你可能还需要关注以下几点: - **性能优化**: 如调整缓存策略,设置合理的...

    pb8.0利用psftp.exe进行sftp上传下载

    在PB8.0中调用外部程序时,应考虑错误处理,如捕获进程的退出代码。如果psftp.exe返回非零值,可能表示操作失败,需要检查日志或输出信息以确定问题原因。 **7. 安全最佳实践** 为了提高安全性,建议使用密钥对认证...

    Jenkins+Gitlab+Ansible自动化部署.zip

    本教程会讲解如何编写和组织Ansible Playbooks,以及如何在Jenkins中调用它们以实现无痛部署。 在实际操作中,首先,你需要安装和配置Jenkins服务器,这通常包括下载Jenkins war文件,启动服务,以及设置初始管理员...

    Hadoop搭建及mr程序示例.docx

    Hadoop是一种开源分布式计算框架,由Apache基金会维护,它允许在廉价硬件上处理大量数据,实现了数据的分布式存储和计算。本文档将详细介绍如何搭建一个Hadoop集群,并演示如何在Windows环境下利用Eclipse开发...

    服务器维护整理文档

    #### 四、Java中调用脚本 - **示例代码**: ```java Runtime.getRuntime().exec("/home/surfnuoter/upload.sh " + realpath + "/" + apkFileName + " " + "surfingclub/apk"); ``` - **解析**: - 通过`Runtime...

Global site tag (gtag.js) - Google Analytics