JDBC学习笔记之dml语句(PreparedStatement&Statement)
来源:互联网 发布:cda转mp3软件 编辑:程序博客网 时间:2024/05/18 00:23
今天继续的学习JDBC,遇到这样的两个接口,PreparedStatement和Statement,感觉很奇怪,JDK为什么要搞出这样的两个接口呢,一个Statement不就足够了吗?于是乎就研究了下这两者的用法。查看了jdk_api_1.6,发现原来Statement是PreparedStatement的父接口,而且PrepareStatement能够更加高效的执行sql语句,以下举个简单的例子。
例子:分别用这个两个类进行数据库的插入操作,即使用insert语句。如插入一条记录:id:1,name:小明,sex:男,date:1990-02-02,height:174
方法一:运用Statement这个接口。核心代码如下:
Statement statement = conn.createStatement();
String sql = "insert into student(id, name, sex, date, height)" +
" values(1, '小明', '男', '1990-02-02', 174)";
statement.executeUpdate(sql);
我们可以看到,它是直接运用了insert语句的格式进行记录的插入,当插入多个数据时,这条语句将会变得很长很长,而且你又不知道,174是字符串还是其他类型的,因为字符串需要加单引号,当然,或许这个例子不怎么好,你可以一眼就看出174肯定不是字符串,它表示身高来的。下面我们来看看PreparedStatement的用法
方法二:运用PreparedStatment这个接口,核心代码如下:
preStatement = conn.prepareStatement("insert into student values(?, ?, ?, ?, ?)");
preStatement.setInt(1, 1);
preStatement.setString(2, "小明");
preStatement.setString(3, "男");
preStatement.setDate(4, date);
preStatement.setDouble(5, 174);
preStatement.executeUpdate();
我们容易看出,它是先将insert这条sql语句作为一个参数传进prepareStatement这个方法里面,用n个(n==你要插入的记录的字段数)来表示数据,然后通过各种setXXX(字段的位置(从1开始), 字段的数据)方法来设置这条记录的值,虽然你看起来好像代码更多了,其实不然,通过这样的方式,首先,我们很容易理解,我们插入的字段类型是什么,其次,不用再去写着繁杂的insert语句。无疑,java这样做是合理,这就好比,为什么有KeyListener和KeyAdapter这样的两种监听器类了。
呵呵~还是蛮喜欢java的,毕竟它真的蛮人性化的(相对C),说了这么多,如有错误,还请各位大牛指正。
联系:229047554@qq.com
- JDBC学习笔记之dml语句(PreparedStatement&Statement)
- JDBC学习笔记(四):执行SQL语句(Statement与PreparedStatement)
- JDBC之Statement与preparedStatement
- JDBC学习笔记(2)之statement
- JDBC学习笔记(4)—PreparedStatement执行SQL语句
- JDBC学习第一站之Statement与PreparedStatement
- JDBC学习笔记(3)—Statement执行SQL语句
- JDBC学习笔记(5)之PreparedStatement、ResultSetMetaData实现
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- JDBC之statement与preparedstatement的区别
- JDBC之使用Statement,PreparedStatement,ResultSet
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- JDBC之SQL注入,PreparedStatement和Statement
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- JDBC学习之道:JDBC之Statement,PreparedStatement,CallableStatement的区别
- SQL学习笔记(1)之DML语句
- 0710
- Codeblocks 中文乱码问题原因分析和解决方法!
- 2012.07.11
- Android 通过手说tts中文语音包实现中文朗读
- 树形结构的数据库表Schema设计
- JDBC学习笔记之dml语句(PreparedStatement&Statement)
- QT整理
- javascript预编译
- for the love,for the dream
- vmware 8.0.3 tools install
- Git入门教程
- apache2 服务器搭建 二级域名虚拟主机搭建
- jQueryのイベントをチュートリアルで学ぶ(前編)
- 0711