jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子
Statement 和 PreparedStatement 的区别:
1)语句不同
PreparedStatement需要预编译以及需要参数
2)由于PreparedStatement有缓存区,所以效率更高
3)由于PreparedStatement有缓存区,所以更安全,防止了注入(1=1)
PreparedStatement接口(推荐使用):
代码1:
- /**
- * 添加数据语句
- **/
- private static void Intinsert() {
- Connection conn = null;
- PreparedStatement stsm = null;
- try {
- // 1:调用工具类获取连接
- conn = Jdbcutil.getConnection();
- // 2:准备sql预编译语句
- // ?占用一个参数位
- String sql = "INSERT INTO person (NAME,sex,age) VALUES (?,?,?);";
- // 3:执行sql预编译语句(检查语法)
- stsm = conn.prepareStatement(sql);
- // 4:设置传递的参数
- stsm.setString(1, "张三");
- stsm.setString(2, "男");
- stsm.setInt(3, 20);
- // 5:发送参数,执行sql
- // 注意:这里的方法后面没有参数
- int result = stsm.executeUpdate();
- System.out.println("影响了" + result + "行");
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- // 6:关闭连接
- Jdbcutil.close(conn, stsm);
- }
- }
代码2:
- /**
- * 修改语句
- */
- private static void testUpdate() {
- Connection conn = null;
- PreparedStatement stsm = null;
- try {
- // 1:创建连接
- conn = Jdbcutil.getConnection();
- // 2:创建sql预编译语言
- String sql = "UPDATE person SET NAME = ?WHERE id = ?;";
- // 3:执行sql预编译语言
- stsm = conn.prepareStatement(sql);
- // 4: 设置参数
- stsm.setString(1, "李四");
- stsm.setInt(2, 3);
- // 5:发送参数,执行sql
- int result = stsm.executeUpdate();
- System.out.println("影响了" + result + "行");
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- Jdbcutil.close(conn, stsm);
- }
- }
代码3:
- /**
- * 查询语句
- */
- private static void testSelect() {
- ResultSet rs = null;
- Connection conn = null;
- PreparedStatement stsm = null;
- try {
- // 1:创建连接
- conn = Jdbcutil.getConnection();
- // 2:创建sql预编译语言
- String sql = "SELECT * FROM person;";
- // 3:执行预编译语言
- stsm = conn.prepareStatement(sql);
- // 这里不需要设置参数
- // 4:执行sql语言
- rs = stsm.executeQuery();
- // 5:查看所有数据
- while (rs.next()) {
- int id = rs.getInt("id");
- String name = rs.getString("name");
- String sex = rs.getString("sex");
- System.out.println(id + "," + name + "," + sex);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- } finally {
- Jdbcutil.close(conn, stsm, rs);
- }
- }
jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子的更多相关文章
- jdbc java数据库连接 8)防止sql注入
回顾下之前jdbc的开发步骤: 1:建项目,引入数据库驱动包 2:加载驱动 Class.forName(..); 3:获取连接对象 4:创建执行sql语句的stmt对象; 写sql 5:执行sql ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- jdbc java数据库连接 2)jdbc接口核心的API
JDBC接口核心的API java.sql.* 和 javax.sql.*(java2.0以后更新的扩展) |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接 ...
- jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL
|- Statement接口: 用于执行静态的sql语句 |- int executeUpdate(String sql) : 执行静态的更新sql语句(DDL,DML) |- ResultSet ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- Java中抽象类和接口的区别?
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- java中抽象类、接口及区别
转自:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没 ...
- jdbc java数据库连接 5)CallableStatement 接口
CallableStatement执行存储过程(也是预编译语言) 首先在sql中执行以下带有输入参数的代码: DELIMITER $ CREATE PROCEDURE pro_findById(IN ...
随机推荐
- 用Kotlin改写PHP程序是什么样的体验
学Kotlin其实要看:http://kotlinlang.org/docs/kotlin-docs.pdf 在线版是不完整的!!!少了一些章节,会有点难看懂后面的文档. 我选择了WordPress里 ...
- 【工匠大道】将项目同时托管到Github和Git@OSC
原文地址 摘要: Github是最大的git代码托管平台,GIT@OSC是国内最大的git代码托管平台,支持免费私有库,支持SVN操作,用户众多.很多用户需要同时将代码托管到两个平台,这篇文章的主要 ...
- CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)
一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...
- 【代码笔记】iOS-图文混排(HBLabelDemo)
一,效果图. 二,工程图. 三,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIVie ...
- Eclipse 常用快捷键 For MAC
Eclipse 常用快捷键 For MAC Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Comma ...
- 开篇:软件项目的整个流程 - IT软件人员学习系列文章
这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录.本文就对<IT软件人员学习系列文章>做个开篇吧. 对于IT软件的开发来说,无外乎B/S.C/S和Android.iO ...
- SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...
- JS/JQuery针对不同类型元素的操作(radio、select、checkbox)
一.select下拉框 I:javascript方法 1:获取选中的值 F1: var myselect=document.getElementById("test");或者 ...
- 【转载】PHP性能优化干货
PHP优化对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置. # vi /etc/php.ini (1) ...
- Linux下查找文件:which、whereis、locate、find 命令的区别
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which 查看可执行文件的位置,通过环境变量查whereis 查看文件的位置,通过数据库查,每 ...