java中jdbc调用存储过程
来源:互联网 发布:河南焦作诊所软件 编辑:程序博客网 时间:2024/06/04 23:29
存储过程具有高效,安全,方便快捷等特点,一直深受广大编程者的喜爱,Jdbc也为我们提供了与存储过程打交道的通道。通过CallableStatement我们可以调用存储过程。
可以调用无参数,有输入参数和输出参数的存储过程。
1.调用无参存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `SkusProc`()BEGIN SELECT skucode, skuname FROM skus ; END
private static Connection createCon(){try {Class.forName(driver);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} //classLoader,加载对应驱动 try {conn = (Connection) DriverManager.getConnection(url, username, pwd);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} return conn;}
//调用无参数存储过程public List<skus> GetNoParaSkuList(){ List<skus> list=new ArrayList<skus>();conn=createCon();CallableStatement cs=null;//使用CallableStatement调用存储过程try { cs=(CallableStatement) conn.prepareCall("CALL `SkusProc`");ResultSet resultSet=cs.executeQuery();while(resultSet.next()){skus sku=new skus();sku.setSkuCode(resultSet.getString("skucode"));sku.setSkuName(resultSet.getString("skuname"));list.add(sku);}cs.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();};return list;}
2.调用有参存储过程
有参存储过程包括输入参数和输出参数
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSkuCountProc`(IN categoryId INT, OUT count_num INT )BEGIN SELECT COUNT(0) INTO count_num FROM skus s INNER JOIN category c ON s.categoryid=c.id WHERE c.Id=categoryId; END
//调用有参数的存储过程public int GetParaSkuList(int categoryID){conn=createCon();CallableStatement cs=null;//使用CallableStatement调用存储过程try { cs=(CallableStatement) conn.prepareCall("CALL GetSkuCountProc(?,?)");cs.setInt(1,categoryID);cs.registerOutParameter(2, Types.INTEGER);//注册输出参数cs.execute(); int result=cs.getInt(2);//获取输出参数值cs.close();conn.close();return result;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();};return 0;}如果有输出参数,我们要使用registerOutParameter进行注册。然后使用getInt获取返回值
//调用无参数存储过程 List<skus> list=dao.GetNoParaSkuList();for(skus sku:list){System.out.println(sku.getSkuCode()+"--"+sku.getSkuName());}//调用有参数存储过程int result=dao.GetParaSkuList(6);System.out.println(result);
0 0
- java中jdbc调用存储过程
- jdbc中调用存储过程
- jdbc中调用存储过程
- JDBC中调用存储过程
- java Jdbc调用存储过程
- java jdbc调用存储过程
- JAVA中使用JDBC调用MS SQL存储过程
- Java中 jdbc 调用存储过程 用hibernate连接数据库
- java 中 用到的jdbc 调用存储过程,与hibernate 调用存储过程
- jdbc中调用oracle存储过程
- JDBC学习中存储过程的调用
- 在JDBC中存储过程的调用
- java通过JDBC调用存储过程
- java调用存储过程(jdbc & hibernate)
- java调用存储过程(jdbc & hibernate)
- java jdbc 调用db2存储过程 第一节
- Java通过JDBC调用oracle存储过程
- java jdbc 调用存储过程方法
- qtcreator打开cmakelists工程
- Struts.xml中Action的method与路径的三种匹配方法
- JavaWeb学习笔记之Log4j使用教程
- 1028 Web Navigation
- 电商与微信SSO解决方案
- java中jdbc调用存储过程
- Matlab mex -setup 找不到编译器
- Hadoop HDFS 学习(2)理论
- FIFO 、LRU、LFU三种算法
- 多线程
- java 概念面试题
- 集合
- Android 判断网络状态
- HDOJ 2024 C语言合法标识符