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

java 调用存储过程 和 PreperStmt的用法

    博客分类:
  • JAVA
阅读更多

PreparedStatement 的用法
PreparedStatement 继承自 Statement, 所有的 Statement 能进行的操作这里都可以用.
1) 执行速度优化(预编译)
2) 简化 SQL 编写
String sql = "select * from user where username = ?";
3) 增加安全性
SQL 注入攻击
String sql = "select * from user where username = '" + username + "'";
username 输入 1' = '1' or username = '张三
select * from user where username = '1' = '1' or username = '张三'
避免方法: a) 过滤用户输入的特殊字符 '' = ' username.replaceAll("'", "''");
b) 用 PreparedStatement.setString(下标, username) 自动转换输入的字符串为合法
的 SQL 的格式
用法:
// 1. 打开
PreparedStatement pstmt = conn.createPreparedStatement("select * from user where
username = ? and regdate = ?");
// 2. 设置要处理的数据
pstmt.setString(1, "张三");
java.util.Date now = new java.util.Date();
pstmt.setDatetime(2, new java.sql.Date(now.getTime()) );// 设置日期
// 3. 执行查询或者更新
ResultSet rs = pstmt.executeQuery();//
rs = pstmt.executeQuery("select * ..:");//
int rows = pstmt.executeUpdate();// 更新
3. CallableStatement 用来调用存储过程(了解)
在 JDBC 中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方
括号本身并不是语法的组成部份。
{call 过程名[(?, ?, ...)]}
返回结果参数的过程的语法为:
{? = call 过程名[(?, ?, ...)]}
不带参数的已储存过程的语法类似:
{call 过程名}
示例代码:
String procedure="{call Operator_login(?,?,?)}";
//注册存储过程
CallableStatement callStmt=conn.prepareCall(procedure);
//注册存储过程输出参数的类型
callStmt.registerOutParameter(3,java.sql.Types.INTEGER);
//提供输入参数的值
callStmt.setString(1,this.operatorID);
callStmt.setString(2,this.password);
//执行存储过程
callStmt.execute();
//返回输出参数
login_state=callStmt.getInt(3);
CallableStatement cs = conn.prepareCall("{call ec_get_cust_terms(?)}");
cs.setInt(1, custNo);
rs = cs.executeQuery();

分享到:
评论

相关推荐

    java调用存储过程(含out参数)

    3. **准备CallableStatement**:对于调用存储过程,我们需要使用`CallableStatement`对象,它是`PreparedStatement`的子类,专门用于调用数据库存储过程。通过`Connection`对象的`prepareCall()`方法创建。 4. **...

    java调用存储过程实例

    在IT领域,特别是数据库操作与Java编程的交集部分,调用存储过程是常见的需求之一。根据提供的文件信息,我们可以深入解析如何在Java中通过JDBC(Java Database Connectivity)调用Oracle数据库的存储过程。 ### ...

    Java调用存储过程的2种方法

    ### Java调用存储过程的两种方法 在Java中调用数据库中的存储过程是常见的操作之一,这不仅可以提高程序性能和代码可维护性,还可以更好地利用数据库的功能。根据提供的标题、描述以及部分内容,本文将详细介绍Java...

    java调用存储过程同时返回值和多个table

    java调用存储过程,支持获取return值,output返回值,以及查询的表数据,表数据允许有多个查询结果集

    java调用oracle存储过程或者函数

    在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    5. PACKAGE和PROCEDURE:PACKAGE和PROCEDURE是Oracle中的两个基本概念,分别用于定义一组相关的函数和过程,以及单个过程。 结论 本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括...

    java调用存储过程小结.pdf

    对于有返回值的存储过程,我们可以使用 CallableStatement 对象来调用存储过程,并使用 registerOutParameter 方法来注册输出参数,然后使用 execute 方法来执行存储过程,并获取返回值。 Java 调用存储过程可以...

    Java实现调用MySQL存储过程详解

    3. **调用存储过程**:使用`CallableStatement`对象来执行存储过程。对于带参数的存储过程,需要设置参数并执行`executeProcedure()`。 ```java String procedureName = "{call findAllBook(?) }"; // 例如,调用...

    java 调用db2存储过程

    "java 调用db2存储过程" 本文将详细介绍 Java 调用 DB2 存储过程的方法和步骤,并提供了详细的代码示例。 ...我们可以使用 CallableStatement 对象来调用存储过程,并将输入参数传递给存储过程。

    Java调用oracle存储过程通过游标返回临时表

    在Oracle中,调用存储过程通常以`BEGIN`和`END`包围,使用`CALL`关键字。例如: ```java String callProc = "{call package_name.procedure_name(?, ?)}"; PreparedStatement pstmt = connection.prepareCall...

    JAVA调用存储过程

    ### JAVA调用存储过程知识点详解 #### 一、无结果集返回的存储过程调用 在Java中调用不返回结果集的存储过程时,主要使用`CallableStatement`对象配合预定义的SQL语法来实现。这里以SQL Server 2000数据库为例,并...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动...只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载

    java调用存储过程源码 sql数据库

    本文将详细介绍如何使用Java来调用存储过程,并探讨相关的数据库设计原则。 首先,理解存储过程的基本概念至关重要。存储过程是预编译的SQL语句集合,存储在数据库中并可重复使用。它们提供了性能优化、安全性增强...

    JAVA调用存储过程.txt

    ### Java调用存储过程的基本步骤 #### 一、加载数据库驱动 在Java程序中调用数据库存储过程的第一步是加载相应的数据库驱动。例如,在本例中使用的Oracle数据库驱动通过以下代码加载: ```java Class.forName(...

    JAVA调用ORACLE存储过程

    使用 `prepareCall` 方法准备调用存储过程 `selemp_sal`,并通过 `registerOutParameter` 注册输出参数类型为 `NUMERIC`。执行后,通过 `getInt` 方法获取输出参数的值。 ### 总结 本文详细介绍了如何在 Java 中...

    Java调用存储过程

    Java调用存储过程是数据库操作中的常见任务,特别是在复杂业务逻辑和数据处理中。存储过程是一种预编译的SQL语句集合,可以在数据库服务器端执行,提高了效率并减少了网络通信量。本文将详细讲解Java如何调用存储...

    java调用sqlserver存储过程.pdf

    4. Java 调用存储过程 在 Java 应用程序中,可以使用 JDBC(Java Database Connectivity)来调用 SQL Server 数据库中的存储过程。在本例中,使用了 `java.sql` 包中的 `CallableStatement` 对象来调用 `InsertUser...

    java调用存储过程

    #### 五、使用Java调用存储过程返回游标 最后,我们来看看如何使用Java调用返回游标的存储过程。以下是一个PostgreSQL存储过程`list_early_deaths`的例子,它返回一个游标,其中包含了所有在60岁之前去世的诗人列表...

    JAVA调用ORACLE存储过程通用类

    - **queryProcedure**方法:该方法是核心处理方法,用于调用存储过程,并获取结果集。 - 参数列表: - `List list`:包含要传递给存储过程的参数值列表。 - `String strStoredProcedureName`:存储过程的名称。 ...

    java 调用存储过程

    `Procedure.java`文件可能是实现了上述步骤的一个Java类示例,而`Java.jpg`可能是一个关于Java调用存储过程的流程图或者代码截图,用于辅助理解和学习。在开发过程中,结合这些资源可以更好地理解和实践Java调用存储...

Global site tag (gtag.js) - Google Analytics