81,092
社区成员
发帖
与我相关
我的任务
分享
PROCEDURE [dbo].[d_dir_lists_Delete]
@node_id int
as
DELETE [d_dir_lists] WHERE node_id =@node_id
--exec d_dir_lists_Delete 111持行没有问题 数据库为sqlserver2005
//java代码
Map<String,Integer> map =new HashMap<String, Integer>();
map.put("node_id", new Integer(node));
this.getSqlMapClientTemplate().queryForObject("proTree.delRootNode",map);
//sqlMap
<parameterMap id="inParameters" class="java.util.Map">
<parameter property="node_id" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN" />
</parameterMap>
<!-- 调用存储过程,根据根节点id删除,以及它一下的所有节点 -->
<procedure id="delRootNode" parameterMap="inParameters">
<![CDATA[{call d_dir_lists_Delete (?) }]]>
</procedure>
<procedure id="delRootNode" parameterMap="inParameters">
<![CDATA[{call d_dir_lists_Delete (?) }]]>
</procedure>
/**
*调用存储过程
*xml方法
*
* 配置文件
* <select id="call" statementType="CALLABLE">
* {call pp(#{x},#{y},#{z,mode=OUT,jdbcType=INTEGER})}
* </select>
*
* 存储过程
* DELIMITER $$;
* DROP PROCEDURE IF EXISTS `mydemo`.`pp`$$
* CREATE PROCEDURE `mydemo`.`pp` ( in x int,in y int,out z int )
* BEGIN
* select x + y into z;
* END$$
* DELIMITER ;$$
**/
public void call() throws IOException{
System.out.println("调用存储过程------------------------------------------");
String resource = "test/Configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlMapper.openSession();
try {
Map map = new HashMap();
map.put("x", 6);
map.put("y", 2);
map.put("z", 0);
session.selectOne("call", map);
System.out.println("存储过程返回值:"+map.get("z"));
} finally {
session.close();
}
}