Statement、PreparedStatemnt、CallableStatement

第一、Statement(Statement代表一个特定的容器,来对一个特定的数据库执行语句)

* 执行查询的方法

Statement=Connection.createStatement();//创建执行sql的句柄对象
ResultSet=Statement.executeQuery(sql);//执行查询,返回结果集

* 执行增删改的方法

Statement=Connection.createStatement();//创建执行sql的句柄对象

int t=Statement.executeUpdate(sql);//执行插入,返回的是影响的行数
  
}

第二、PreparedStatemnt(PreparedStatemnt用于执行预编译的SQL语句。)

*执行预编译的查询方法
           
   String sql="select * from student where sage>? and sname like ?";
    PreparedStatemnt=Connection.prepareStatement(sql);//把sql语句发送到数据库中,执行预编译

PreparedStatemnt.setInt(1, 第一个?号的值);
    PreparedStatemnt.setString(2, 第二个?号的值);
    ResultSet=PreparedStatemnt.executeQuery();//执行查询,返回结果集

*执行预编译插入方法

String sql="insert into student values(?,?,?,?)";
    PreparedStatemnt=Connection.prepareStatement(sql);//把预编译的sql语句发送到数据库中,执行预编译
    PreparedStatemnt.setString(1, 第一个?的值);
    PreparedStatemnt.setInt(2, 第二个?的值);
    PreparedStatemnt.setByte(3, 第三个?的值);
    PreparedStatemnt.setString(4, 第四个?的值);
   
   int count=PreparedStatemnt.executeUpdate();//执行插入,返回的结果为影响的行数
   
第三、CallableStatement(CallableStatement用于执行对一个数据库内嵌过程的调用)

*调用有in参数的存储过程(查询)

CallableStatement=Connection.prepareCall("{call 存储过程名(?)}");//在应用程序里面调用数据库里的存储过程,? 分别对 应存储过程的参数
   CallableStatement.setString(1, in参数的值);
    ResultSet=CallableStatement.executeQuery();//执行查询,获得结果集
   
              
*调用有in参数的存储过程(插入)
    CallableStatement=Connection.prepareCall("{call 存储过程名(?,?,?,?)}");//在应用程序里面调用数据库里的存储过程,? 分别对应存储过程的参数   
    CallableStatement.setString(1, 第一个in参数);
    CallableStatement.setInt(2, 第二个in参数);
    CallableStatement.setByte(3, 第三个in参数);
    CallableStatement.setString(4, 第四个in参数);
   
   int count=CallableStatement.executeUpdate();//执行插入,返回的结果为影响的行数

*调用有in、out参数的存储过程
    CallableStatement=Connection.prepareCall("{call 存储过程名(?,?)}");//执行存储过程的查询方法
    CallableStatement.setInt(1, ids);//输入参数
    CallableStatement.registerOutParameter(2, Types.VARCHAR);//注册out参数
    CallableStatement.execute();//执行查询
   
   String name=CallableStatement.getString(2);//输出out参数

时间: 2024-11-02 23:40:29

Statement、PreparedStatemnt、CallableStatement的相关文章

说说Statement、PreparedStatement和CallableStatement的异同(转)

1.Statement.PreparedStatement和CallableStatement都是接口(interface). 2.Statement继承自Wrapper.PreparedStatement继承自Statement.CallableStatement继承自PreparedStatement. 3. Statement接口提供了执行语句和获取结果的基本方法: PreparedStatement接口添加了处理 IN 参数的方法: CallableStatement接口添加了处理 OU

Connection、Statement、PreparedStatement 、Resultset注意点备忘

先记录一下几个测试结果 测试环境 MySQL:mysql-connector-java-5.1.29.jar Java:1.7.0_67 测试A 代码:         PreparedStatement pstmt = conn                 .prepareStatement("select id from world.city limit 3");         ResultSet rs = pstmt.executeQuery();         whil

MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: Xml代码   <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX

深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete[转]

上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介绍mapper映射文件的配置, 这是mybatis的核心之一,一定要学好.在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, delete, cache, cache-ref, resultMap, sql . 本篇文章将简单介绍 in

在Java语言中调用存储过程、存储函数、包头、包体

需要拷贝连接Oracle的jar包,路径如下图所示: 连接Oracle数据库的代码: package demo.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtils { private static Stri

JDBC连接数据库(MySql)步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。

主要内容:  JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能. 把十一个功能都放在一起. 一.JDBC连接数据库(编辑)步骤(主要有六个步骤).  1.注册驱动: Class.formName("com.mysql.jdbc.Driver");  2.获取连接:(1) param1:  要连接数据库的url-----> String url="jdbc:mysql:/

JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能

主要内容:  JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放在一起. 安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(这本该是第一步,但是由于属于安装类,所以我们放在最后) 一.JDBC连接数据库(编辑)步骤(主要有六个步骤).  1.注册驱动: Class.forName("com.mysql.jdbc.Driver"

JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

. 概述 1.1 JDBC概念 JDBC(Java Database Connectivity)是Java语言为了支持SQL功能而提供的与数据库连接的用户的接口,JDBC中包括了一组由(Java)语言书写的接口和类,它们都是独立于特定的DBMS,或者说他们可以和各种数据库相关联. 1.2 JDBC用途 JDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面功能:建立于数据库的链接,执行SQL声明以及处理SQL执行结果:JDBC支持基本的SQL功能,使用它可以方便地与不同

二、SQL语句映射文件(2)增删改查、参数、缓存

2.2 select 一个select 元素非常简单.例如: Xml代码   <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STUDENT_BIRTHDAY, ST