JAVA调用增删改的存储过程

1、创建添加存储过程

CREATE OR REPLACE PROCEDURE stu_proc(v_id IN NUMBER, v_name IN VARCHAR2, v_age IN NUMBER) AS
BEGIN
  INSERT INTO student(id, sname, age) values (v_id, v_name, v_age);
  commit;
END;

JAVA调用添加存储过程

package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;

public class ProceTest {

    public static void main(String[] args) throws Exception {
        Connection conn = null;
        CallableStatement statement = null;
        String sql = "{call stu_proc(?, ?, ?)}";
        try {
            conn = ConnUtils.getConnection();
            statement = conn.prepareCall(sql);
            statement.setInt(1, 6);
            statement.setString(2, "laoli");
            statement.setInt(3, 45);
            //如果第一个结果是ResultSet对象,则返回true;如果第一个结果是更新、添加、修改或者没有结果,则返回 false
            boolean issuccess=statement.execute();
            //成功返回true,失败返回false
            System.out.println(issuccess);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            ConnUtils.free(null, statement, conn);
        }
    }

}

创建删除存储过程语句

CREATE OR REPLACE PROCEDURE stu_proc(v_id IN NUMBER, v_msg OUT VARCHAR2) IS
   v_flag NUMBER:=1;
BEGIN
  SELECT o.id INTO v_flag FROM student o WHERE o.id=v_id;
  DELETE FROM student o WHERE o.id=v_flag;
  commit;
  v_msg:=‘删除成功‘;
EXCEPTION
  WHEN OTHERS THEN v_msg:=‘删除失败‘;
END;

java调用删除存储过程

package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

public class ProceTest {

    public static void main(String[] args) throws Exception {
        Connection conn = null;
        CallableStatement statement = null;
        String sql = "{call stu_proc(?, ?)}";
        try {
            conn = ConnUtils.getConnection();
            statement = conn.prepareCall(sql);
            statement.setInt(1, 4);
            statement.registerOutParameter(2, Types.VARCHAR);
            statement.execute();
            String msg=statement.getString(2);
            System.out.println(msg);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            ConnUtils.free(null, statement, conn);
        }
    }

}

创建修改存储过程

CREATE OR REPLACE PROCEDURE stu_proc
(
  v_id IN NUMBER,
  v_name IN VARCHAR2,
  v_msg OUT VARCHAR2
) AS
  v_flag number;
BEGIN
  SELECT o.id INTO v_flag FROM student o WHERE o.id=v_id;
  UPDATE student o SET o.sname=v_name WHERE o.id=v_id;
  commit;
  v_msg:=‘修改成功‘;
EXCEPTION
  WHEN OTHERS THEN v_msg:=‘修改失败‘;
END;

java调用修改存储过程

package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

public class ProceTest {

    public static void main(String[] args) throws Exception {
        Connection conn = null;
        CallableStatement statement = null;
        String sql = "{call stu_proc(?, ?, ?)}";
        try {
            conn = ConnUtils.getConnection();
            statement = conn.prepareCall(sql);
            statement.setInt(1, 3);
            statement.setString(2, "laoli");
            statement.registerOutParameter(3, Types.VARCHAR);
            statement.execute();
            String msg=statement.getString(3);
            System.out.println(msg);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            ConnUtils.free(null, statement, conn);
        }
    }

}
时间: 2024-11-05 18:50:45

JAVA调用增删改的存储过程的相关文章

Java调用SQL Server的存储过程详解

转载自Microsoft的官方文档 http://msdn2.microsoft.com/zh-cn/library/ms378995.aspx收录于 www.enjoyjava.net/f25 本文较长,包含了如下几部分 使用不带参数的存储过程 使用带有输入参数的存储过程 使用带有输出参数的存储过程 使用带有返回状态的存储过程 使用带有更新计数的存储过程 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义

Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示

Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http://www.cnblogs.com/dunitian/p/5221058.html 平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html#skill 先安装一下Dapper(建议用nuget包来管理) 连接字符串: s

(转)Java调用SQL Server的存储过程详解

本文转载自:http://dev.yesky.com/128/8088128.shtml 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: 以下是引用片段:{call procedure-name} 作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程: 以下是引用片段:CREATE PROCEDURE GetContactForma

Java调用SQL Server的存储过程详解(转)

1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: 以下是引用片段:{call procedure-name} 作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程: 以下是引用片段:CREATE PROCEDURE GetContactFormalNames  AS  BEGIN   SELECT TOP 10 Title + ' '

Java MVC 增删改查 实例

需求:增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptUpdate.jsp 2.控制层(C): 3.模型层(M): 二.Java MVC 删 三.Java MVC 改 四.Java MVC 查 全部代码如下: 主页面:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod

Java 调用Oracle中的存储过程

--建表 SQL> create table TBook(bookId number(8),bookName varchar2(50),publishHouse varchar2(50)); --编写过程 --in:输入参数:out:输出参数 SQL> create or replace procedure sp_pro7(spBookId in number,spName in Varchar2,spPublishHost in varchar2) is begin insert into

JDBC增删改查存储过程之类

1 //JDBC连接数据库 2 //先在项目中引入mysql驱动jar包,网上下载有,之后才能进行连接 3 String className = "com.mysql.jdbc.Driver"; 4 //或者 new com.mysql.jdbc.Driver(); 效果一样 5 //每个URL是不同的.最后的格式是编码问题,容易导致java向mysql插入中文时,mysql数据库中显示是?问号 6 String url = "jdbc:mysql://localhost/d

java调用Oracle中的存储过程与存储函数

1 //调用存储过程 2 public static void testPro(){ 3 String driver = "oracle.jdbc.OracleDriver"; 4 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; 5 Connection conn = null; 6 CallableStatement cs = null; 7 8 try { 9 Class.forName(driver)

Java Map增删改查

示例代码: 学生类 package com.imooc.collection; import java.util.HashSet; import java.util.Set; /** * 学生类 * Set中的元素是唯一的,不会重复,但是没有顺序. */ public class Student { private String id; private String name; // set集合只能使用 foreach 或 iterator进行遍历,不能使用get()来获取元素 public S