必威体育Betway必威体育官网
当前位置:首页 > IT技术

PreparedStatement接口,prepareStatement方法

时间:2019-10-01 02:13:25来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

preparedstatement

1、public interface Preparedstatementextends Statement

表示预编译的 sql 语句的对象。 

sql 语句被预编译并且存储在 PreparedStatement 对象中。然后可以使用此对象高效地多次执行该语句。 

注:用来设置 IN 参数值的 setter 方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。

例如,如果 IN 参数具有 SQL 类型 integer,那么应该使用 setInt 方法。 

如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数的类型。 

在以下设置参数的示例中,con 表示一个活动连接: 

使用实例:

   PreparedStatement pstmt = con.preparestatement("UPDATE EMPLOYEES

                                     SET SALARY = ? WHERE ID = ?");

   pstmt.setbigdecimal(1, 153833.00)//将153833.00赋给第一个参数

   pstmt.setInt(2, 110592)//将110592赋给第二个参数

2、setBigDecimal(int parameterIndex, BigDecimal x) 

将指定参数设置为给定 java.math.BigDecimal 值。

3、setInt(int parameterIndex, int x) 

将指定参数设置为给定 Java int 值。

4、prepareStatement

PreparedStatement prepareStatement(String sql)

                      throws SQLException

创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 

带有 IN 参数或不带有 IN 参数的 SQL 语句都可以被预编译并存储在 PreparedStatement 对象中。

然后可以有效地使用此对象来多次执行该语句。 

注:为了处理受益于预编译的带参数 SQL 语句,此方法进行了优化。如果驱动程序支持预编译,

则 prepareStatement 方法会将该语句发送给数据库进行预编译。一些驱动程序可能不支持预编译。

在这种情况下,执行 PreparedStatement 对象之前无法将语句发送给数据库。这对用户没有直接的影响;

但它的确会影响抛出某些 SQLException 对象的方法。 使用返回的 PreparedStatement 对象创建的结果集

在默认情况下类型为 TYPE_FORWARD_ONLY,并带有 CONCUR_READ_ONLY 并发级别。 

参数:

sql - 可能包含一个或多个 '?' IN 参数占位符的 SQL 语句 

返回:

包含预编译的 SQL 语句的新的默认 PreparedStatement 对象

prepareStatement可以替换变量 

在SQL语句中可以包含?,可以用ps=conn.prepareStatement("select * from Cust where ID=?"); 

int sid=1001; 

ps.setInt(1, sid); 

rs = ps.executequery(); 

可以把?替换成变量。 

而Statement只能用 

int sid=1001; 

Statement stmt = conn.createStatement(); 

ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid); 

来实现

5、prepareStatement

PreparedStatement prepareStatement(String sql,

                      int resultSetType,

                      int resultSetConcurrency)

                      throws SQLException

创建一个 PreparedStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。

此方法与上述 prepareStatement 方法相同,但它允许重写默认结果集类型和并发性。 

参数:

sql - 一个 String 对象,它是将被发送到数据库的 SQL 语句,可以包含一个或多个 ? IN 参数

resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_scroll_INsensitive

或 ResultSet.TYPE_SCROLL_SENSITIVE 之一resultSetConcurrency - 并发类型,

它是 ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE 之一 

返回:

包含预编译的 SQL 语句的新 PreparedStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象

相关阅读

PrepareStatement和Statement的区别

PrepareStatement:对SQL进行预编译,在数据库中形成“执行计划”,可以对SQL语句中的“变量参数“进行修改,这样可以减少数据库不必要

statement prepareStatement的一点体会?

1、PrepareStatement 是预编译的,对于批量处理(Batch)处理可以大大提高效率,也叫JDBC存储过程 2、使用Statement对象。在对数据库只执

prepareStatement的用法和解释

转自:http://blog.csdn.net/QH_JAVA/article/details/48245945 一、prepareStatement 的用法和解释 1.PreparedStatement是预编译

prepareStatement与Statement的区别

PrepareStatement与Statement的主要区别:1:创建时的区别: Statement stm=con.createStatement(); PreparedStatement pstm=con.pr

prepareStatement的用法和解释

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2.使用 Statement 对象。在对数据库只执行一次

分享到:

栏目导航

推荐阅读

热门阅读