JDBC中Statement、PreparedStatement、CallableStatement的区别
1、Statement
作用:执行不含参数的静态SQL语句。
用法:使用JDBC的Connection实例调用createStatement()方法创建一个Statement实例。通过Statement实例的execute()、executeQuerry()或executeUpdate()方法来执行SQL语句。
例:查询Student表中的所有记录
Statement stmt = con.createStatement(); //创建Statement对象,其中con为Connection对象
ResultSet rs = statement.executeQuerry("SELECT * FROM Student");
//使用executeQuerry()执行查询语句,其中返回ResulSet型查询结果
2、PreparedStatement
是Statement的子接口
作用:执行含有参数的动态SQL语句。其中含参数的动态的SQL语句是指在程序运行时能动态地为SQL语句赋参数值。
用法:使用JDBC的Connection实例调用prepareStatement()方法创建一个PrepareStatement实例。与Statement相同的是,PrepareStatement接口同样含有executeQuerry()和executeUpdate()方法。但在调用执行函数前,需要首先对SQL语句赋予参数值。
例:查询Student表中的“小明”同学
String sql = "SELECT * FROM Student WHERE Sname = ?";
//执行查询的sql语句,这里?是参数的位置
PreparedStatement ps = con.prepareStatement(sql);
//创建名为ps的PreparedStatement实例,其中con为Connection实例
ps.setString(1,"小明");
//此处是给sql语句中的参数赋值,1代表第一个参数,由于"小明"是String型,故用setString();
Resultset rs = ps.executeQuerry();
//执行sql语句,并返回Resultset型结果
3、CallableStatement
是PreparedStatement的子接口
作用:用于调用数据库的存储过程。(什么是存储过程?)
用法:使用JDBC的Connection实例调用prepareCall()方法创建一个CallableStatement实例,其中参数为调用存储过程的sql语句。之后的执行语句与上面相同。
注:CallableStatement继承了PreparedStatement的方法(用于处理IN参数),其自身新增了用于处理OUT参数和INOUT参数的输出部分。(什么是IN、OUT、INOUT参数?)
例:这里假设存储过程为2中的查询语句,名为st_SearchName()
CallableStatement cs = con.prepareCall("{call st_SearchName(?)}");
//创建callableStatement实例,其中con是Connection实例
cs.setString(1,"小明");
//为IN参数赋值
ResultSet rs = cs.executeQuery();
//执行sql语句
上一篇: JS中动态添加事件(绑定事件)的代码_javascript技巧
下一篇: wamp中的初始路径配置
推荐阅读
-
JDBC中的Statement和PreparedStatement的区别
-
JDBC中Statement和PreparedStatement的区别
-
JAVA Web03——jdbc原理_使用Statement/PrepareStatement访问数据库_两种访问方式的区别_jdbc总结
-
JDBC与Statement和PreparedStatement的区别
-
[转]JDBC中Statement与PreparedStatement的区别
-
数据库中odbc和jdbc的区别
-
数据库技术-JDBC中的PreparedStatement和Transaction
-
一天一个java知识(preparedStatement和Statement的区别)
-
JDBC中Statement、PreparedStatement、CallableStatement的区别
-
JDBC中Statement与PreparedStatement的区别