第一、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参数

Statement、PreparedStatemnt、CallableStatement的更多相关文章

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

    1.Statement.PreparedStatement和CallableStatement都是接口(interface). 2.Statement继承自Wrapper.PreparedStatem ...

  2. 执行对象Statement、PreparedStatement和CallableStatement详解 JDBC简介(五)

    执行对象是SQL的执行者,SQL是“安排好的任务”,执行对象就是“实际工作的人”. 执行对象有三种: Statement.PreparedStatement和CallableStatement,他们都 ...

  3. Statement、PreparedStatement、CallableStatement的区别

    此三个接口的声明如下: public interface Statement extends Wrapper, AutoCloseable public interface PreparedState ...

  4. Statement、 PreparedStatement 、CallableStatement 区别和联系

    Statement. PreparedStatement .CallableStatement 区别和联系 1. Statement.PreparedStatement和CallableStateme ...

  5. JDBC之Statement、PreparedStatement和CallableStatement

    JDBC提供了Statement.PreparedStatement和CallableStatement三种方式来执行查询语句,其中Statement用于通用查询,PreparedStatement用 ...

  6. 执行对象Statement、PreparedStatement和CallableStatement详解

    执行对象是SQL的执行者,SQL是"安排好的任务",执行对象就是"实际工作的人". 执行对象有三种: Statement.PreparedStatement和C ...

  7. java_JDBC,连接数据库方式,RestSet结果集,Statement,PreparedStatement,事务,批处理,数据库连接池(c3p0和Druid)、Apache-DBUtils、

    一.JDBC的概述 1.JDBC为访问不同的数据薛是供了统一的接口,为使用者屏蔽了细节问题.2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ...

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

    上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介 ...

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

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

随机推荐

  1. 算法java实现--动态规划--电路布线问题

    /* * dianlubuxian.java * Version 1.0.0 * Created on 2017年11月30日 * Copyright ReYo.Cn */ package reyo. ...

  2. TX1 flash backup & restore

    备份:耗时2.5小时 ./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "read ...

  3. 详细解释如何通过Android自带的方式来实现图片的裁剪——原理分析+解决方案

    我们很多时候需要进行图片的裁剪,其实这个功能在android系统中已经有一套解决方案了,虽然界面和效果并不是很优秀但功能毫无疑问是完美实现了.至于,不用自带的方案怎么做自定义,这个就是后话了.本篇主要 ...

  4. MVC的Ajax异步请求

    @using (Ajax.BeginForm("GetTime","order",new AjaxOptions() { Confirm="你确认这么 ...

  5. django的权限认证:登录和退出。auth模块和@login_required装饰器

    在settings.py中配置LOGIN_URL参数: # 用户访问带有(@login_required)标签的页面(view)时,如果没有登录,就会跳转到LOGIN_URL(即登陆url). LOG ...

  6. Unhandled Exception: System.BadImageFormatException: Could not load file or assembly (2008R2配置x64website)

    .NET Error Message: Unhandled Exception: System.BadImageFormatException: Could not load file or asse ...

  7. iOS开发-UICollectionView实现瀑布流

    关于瀑布流的实现网上有很多种解法,自定义控件,TableView+ScrollView,UICollectionView是iOS6发布之后用于展示集合视图,算起来已经发布三年左右了,不过知识点是不变的 ...

  8. light oj 1007 Mathematically Hard (欧拉函数)

    题目地址:light oj 1007 第一发欧拉函数. 欧拉函数重要性质: 设a为N的质因数.若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N ...

  9. 【Kafka】Kafka-数据倾斜问题-参考资料-解决方案

    Kafka-数据倾斜问题-参考资料-解决方案 Spark Master at spark://node-01:7077 kafka 多线程producer 数据 不均匀_百度搜索 kafka 分片使用 ...

  10. 网易的Spark技术实践

    http://www.infoq.com/cn/news/2014/04/netease-spark-practice?utm_source=infoq&utm_medium=popular_ ...