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参数
Statement、PreparedStatemnt、CallableStatement的更多相关文章
- 说说Statement、PreparedStatement和CallableStatement的异同(转)
1.Statement.PreparedStatement和CallableStatement都是接口(interface). 2.Statement继承自Wrapper.PreparedStatem ...
- 执行对象Statement、PreparedStatement和CallableStatement详解 JDBC简介(五)
执行对象是SQL的执行者,SQL是“安排好的任务”,执行对象就是“实际工作的人”. 执行对象有三种: Statement.PreparedStatement和CallableStatement,他们都 ...
- Statement、PreparedStatement、CallableStatement的区别
此三个接口的声明如下: public interface Statement extends Wrapper, AutoCloseable public interface PreparedState ...
- Statement、 PreparedStatement 、CallableStatement 区别和联系
Statement. PreparedStatement .CallableStatement 区别和联系 1. Statement.PreparedStatement和CallableStateme ...
- JDBC之Statement、PreparedStatement和CallableStatement
JDBC提供了Statement.PreparedStatement和CallableStatement三种方式来执行查询语句,其中Statement用于通用查询,PreparedStatement用 ...
- 执行对象Statement、PreparedStatement和CallableStatement详解
执行对象是SQL的执行者,SQL是"安排好的任务",执行对象就是"实际工作的人". 执行对象有三种: Statement.PreparedStatement和C ...
- java_JDBC,连接数据库方式,RestSet结果集,Statement,PreparedStatement,事务,批处理,数据库连接池(c3p0和Druid)、Apache-DBUtils、
一.JDBC的概述 1.JDBC为访问不同的数据薛是供了统一的接口,为使用者屏蔽了细节问题.2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ...
- 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介 ...
- MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...
随机推荐
- Android之文件搜索工具类
/** * @detail 搜索sdcard文件 * @param 需要进行文件搜索的目录 * @param 过滤搜索文件类型 * */ private void search(File file, ...
- gradle新建工程,多项目依赖,聚合工程
感谢gradle完全的文档.开始完全没想过新建项目会弄我一天时间,都说gradle构建项目简单,我现在回复他们呵呵. gradle是个非常复杂的工具,从他的完整包80M和72章官方文档就可以看出一二. ...
- Orchard 之:Widget,兼看 Layer 在权限控制中的作用
一:Widget 可以理解为控件,可以直接被页面所引用.行为类似与分部页面,比如,我们可以创建一个 商品列表 Widget,然后这个 Widget 就可以被很多页面所引用. 理解 Widget 这个概 ...
- Visual Studio Code compile error - launch.json must be configured...
一.在最初使用VS Code创建控制台应用时, 使用VS Code调试工具默认会跑出异常: launch: program 'launch: launch.json must be configure ...
- Ubuntu 查找文件的方法
1. whereis+文件名 用于程序名的搜索,搜索结果只限于二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息. 2. find / -name ...
- [Link]Gearman分布式任务处理系统
http://blog.csdn.net/jiao_fuyou/article/category/1745977 http://www.cnblogs.com/cocowool/archive/201 ...
- idea 2018.1破解激活方法,有效期至2099年 idea 激活 破解
最近笔者测试了好多破解Idea的方法,最简单操作方法莫过于用license server激活,但是此类方法对最新的2017.3.2版已经无效了,亲测哦,如下图所示. 针对新版的IntelliJ ID ...
- 从头认识Spring-2.1 自己主动装配(2)-byType(2)
为了解决配置文件中面出现多个同类型的Bean而byType无法匹配的问题.引入了primary和autowire-candidate属性. 1.primary 因为全部bean默认的primary都是 ...
- linux 查看机器内存方法 (free命令)
工作中遇到了统计机器内存的问题.记录一下. free命令可以查看那机器内存. 如下图单位是M 查看man free可以知道,也可以直接从/proc/meminfo文件中读取.
- [leetcode]Partition List @ Python
原题地址:https://oj.leetcode.com/problems/partition-list/ 题意: Given a linked list and a value x, partiti ...