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 ...
随机推荐
- GA算法-R语言实现
旅行商问题 北工商-经研143班共有30位同学,来自22个地区,我们希望在假期来一次说走就走的旅行,将所有同学的家乡走一遍.算起来,路费是一笔很大的花销,所以希望设计一个旅行方案,确保这一趟走下来的总 ...
- KB,Kb单位换算,网络带宽中的Kbps和KB/s到底是什么意思? (注:B和b的区别)
B是指字节(Byte)1个字节有8个比特组成 b是指比特(bit)代表一个2进制位(值为0或1) 上过网的朋友应该会听说过网络带宽这个词,可是这个网络带宽的单位到底是什么,为什么有的人说Kbps ...
- CSS3文本溢出显示省略号
CCS3属性之text-overflow:ellipsis;的用法和注意之处 语法: text-overflow:clip | ellipsis 默认值:clip 适用于:所有元素 clip: 当对象 ...
- html5 video
先简要概述一下video标签: video:嵌入视频到页面中 1. 声明video标签 单个视频的时候使用src: <video src="http://v2v.cc/~j/theor ...
- ArcSDE解除图层锁定
SDE数据库用来共享.交互数据,比较好用,但经常被B/S那边锁定图层 ,导致不能编辑图层. 查看锁定是谁锁定了用户的命令: sdemon -o info -I users -i esri_sde 解决 ...
- MongoDB-分片片键
1.分片 分片是什么?分片就是将数据存储在多个机器上.当数据集超过单台服务器的容量,服务器的内存,磁盘IO都会有问题,即超过单台服务器的性能瓶颈.此时有两种解决方案,垂直扩展和水平扩展(分片). ...
- Android Fragment生命周期
Fragment与Activity的生命周期关系: 刚打开Activity:Fragment onAttach > Fragment onCreate > Fragment onCreat ...
- ORACLE判别字段是否包含中文
在ORACLE数据库中如何查找那些字段里面包含中文的数据记录呢,有时候就是有这样的特殊需求,下面整理了一些判别字段中包含中文记录的几个方法 1:使用ASCIISTR函数判别 ASCIISTR函数说 ...
- oradebug/strace/pstack等分析数据库性能问题系列一
对于性能问题或者一些比较奇怪妖异的问题,有很多点可以着手去分析. 准备写一个系列关于用ash/dba_hist_active_sess_history,用oradebug,用linux命令strace ...
- PHP笔记(PHP中级篇)
初级了解PHP的语法,中级就要学习PHP操作DateBase以及各种复杂的实现了! 文件系统处理 作用: 项目需要 长时间保存数据 服务器中文件操作 特点 都是使用系统函数完成的 基于Linux/Un ...