首页 > 代码库 > java调用存储过程
java调用存储过程
在其他地方我已经写过一个mySql存储过程的简单实现http://jianboli.blog.51cto.com/12075002/1884019
这里是java调用存储过程。
package com.lijianbo.procedure; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; /** * @author * 存储过程MySQL */ public class ProcedureMySql { public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/test"; public static final String USERNAME = "root"; public static final String PASSWORD = "root"; public static void main(String[] args) throws Exception { // test1(); // test2(); testIdAdd(); } public static void test1() throws Exception { Class.forName(DRIVER_CLASS); Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); String sql = "{CALL test1(?)}"; //调用存储过程 CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm cstm.setString(1, "李"); //存储过程输入参数 cstm.execute(); // 执行存储过程 cstm.close(); connection.close(); } /** * 查询总的价格 * getTotalByUser2 * call getTotalByUser2(1, true, @total); -- 加税 *select @total; * @throws Exception */ public static void test2() throws Exception { Class.forName(DRIVER_CLASS); Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); String sql = "{CALL getTotalByUser2(?,?,?)}"; //调用存储过程 CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm cstm.setInt(1, 1); //设置第一个传入参数 cstm.setBoolean(2, true); //设置第二个传入参数 cstm.registerOutParameter(3, Types.DECIMAL); // 设置返回值类型 即返回值 cstm.execute(); // 执行存储过程 System.out.println(cstm.getString(3)); cstm.close(); connection.close(); } /** *id自增 * getTotalByUser2 * call getTotalByUser2(1, true, @total); -- 加税 *select @total; * @throws Exception */ public static void testIdAdd() throws Exception { Class.forName(DRIVER_CLASS); Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); String sql = "{CALL test1(?)}"; //调用存储过程 CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm cstm.setString(1, "测试"); //设置第一个传入参数 cstm.execute(); // 执行存储过程 cstm.close(); connection.close(); } }
存储过程既可以在java中调用,也可以在触发器中调用,欲知简单实现。可以参考我的上一篇文章“触发器的简单实现”。
http://jianboli.blog.51cto.com/12075002/1884180
我这里只是一个示例,你可以参考里面的注释,具体存储过程的名字要根据你自己写的来修改。
时间:2016年12月20日16:59:13
本文出自 “JianBo” 博客,请务必保留此出处http://jianboli.blog.51cto.com/12075002/1884370
java调用存储过程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。