PreparedStatement接口
从实际来讲,Statement现在已经不使用了,他已经称为了历史。
Statement执行关键性问题在于他需要一个完整 的字符串定义要使用的SQL语句,而PreparedStatement可以动态的设置所需要的数据。
PrepareStatement属于Statement的子接口但是想要取得这个子接口的实例化对象,依然要使用COnnection提供的方法。
prepareStatement
PreparedStatement prepareStatement(String sql)
throws SQLException
里面需要传入一个SQL语句,这个SQL是一个具有特殊标记的完整的SQL。 这个接口里面有很多的Set方法。
-更新操作 int executeUpdate()
-查询操作 ResultSet executeQuery()
范例:
package cn; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date; public class Test { private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:mldn";
private static final String USER = "scott" ;
private static final String PASSWORLD = "tiger" ;
public static void main(String[] args) throws Exception{
String name = "MR'SMITH";
Date birthday = new Date() ;
int age = ;
String note = "是个歪果仁" ; //第一步 加载数据库驱动程序,此时不需要实例化,会有容器自己负责管理
Class.forName(DBDRIVER) ;
//第二步 连接数据库 每一个Connection都代表一个数据库连接
Connection conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ; String sql = "INSERT INTO member (mid,name,birthday,age,note) VALUES(myseq.nextval,?,?,?,?)"; //第三步,进行数据库的数据操作
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(,name);
/*当使用了setDate的时候,使用的是java.sql.date而不事java.util.date,而java.util.date下有三个子类,
Date Time Timestmp 三个子类
转型方法依靠long完成
java.util.date下有一个方法将日期变为long
*/
stmt.setDate(, new java.sql.Date(birthday.getTime()));
stmt.setInt(, age);
stmt.setString(, note); int len = stmt.executeUpdate(); System.out.println(conn) ; //关闭连接
stmt.close();
conn.close();
} }
查询操作:
查询全部数据:
//第一步 加载数据库驱动程序,此时不需要实例化,会有容器自己负责管理
Class.forName(DBDRIVER) ;
//第二步 连接数据库 每一个Connection都代表一个数据库连接
Connection conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ; String sql = "SELECT mid,name,birthday,age,note FROM member WHRER ORDER BY NAME";
//第三步,进行数据库的数据操作
PreparedStatement stmt = conn.prepareStatement(sql); ResultSet rs = stmt.executeQuery();
while(rs.next()){
int mid = rs.getInt();
String name = rs.getString();
Date birthday = rs.getDate();
int age = rs.getInt();
String note = rs.getString();
System.out.println(mid + " " + name + " " + birthday + "" + age + "" + note);
} int len = stmt.executeUpdate(); System.out.println(conn) ; //关闭连接
stmt.close();
conn.close();
模糊查询:
PreparedStatement接口的更多相关文章
- jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子
Statement 和 PreparedStatement 的区别: 1)语句不同 PreparedStatement需要预编译以及需要参数 2)由于PreparedStatement有缓存区,所以效 ...
- JDBC的使用(二):PreparedStatement接口;ResultSet接口(获取结果集);例题:SQL注入
ResultSet接口:类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集. getInt(), getFloat(), getDate(), getBoolean(), getString( ...
- Java数据库——PreparedStatement接口
PreparedStatement接口是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据表中准备好了一条SQL语 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- PreparedStatement接口及其方法的使用
PreparedStatement接口是Statement接口的子接口,使用它的好处有三个 一:简化代码,便于sql语句的书写 二:有效的禁止sql语句的注入,例如:用户名和密码,使用Prepared ...
- 占位符的使用和PreparedStatement接口使用:
一.PreparedStatement 接口的使用 首先占位符我们可以使用 Statement 接口来操作数据, 但是这个接口存在两个问题: 1.使用 Statement 接口对象发送的 sql ...
- JDBC(3)-使用PreparedStatement接口实现增、删、改操作
1.PreparedStatement接口引入 PreparedStatement是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- 使用PreparedStatement接口实现增删改操作
直接上下代码: package com.learn.jdbc.chap04.sec02; import java.sql.Connection; import java.sql.PreparedSta ...
- 增删改查——PreparedStatement接口
1.添加 package pers.Pre.add; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...
随机推荐
- Eclipse最有用的快捷键
编辑 Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类.try catch包围等) Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+M 添加类 ...
- mybatis generator Date类型时间丢失
开篇 本次项目换用了Oracle数据库,讲真,真的不好用,不太喜欢,比较喜欢轻量级的MySQL但是不得不说从Oracle的严谨中学到不少好东西. <resultMap id="Base ...
- PowerDesigner中逆向工程将数据库中comment赋值到name
'------------------------------------------------------------ ' '脚本功能: ' PowerDesigner中逆向工程完成后,将数据库中 ...
- js的阻塞特性
JS具有阻塞特性,当浏览器在执行js代码时,不能同时做其它事情,即<script>每次出现都会让页面等待脚本的解析和执行(不论JS是内嵌的还是外链的),JS代码执行完成后,才继续渲染页面. ...
- Cannot call sendRedirect() after the response has been committed
AJAX+JSP时,out.write('content')之后,如果后面还有代码,无法被执行到,会报 错,java.lang.IllegalStateException: Cannot call s ...
- vi join
换行符删不掉?试试n shift+j,它合并其下n行到一行.
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
Hibernate API简介 其接口分为以下几类: l 提供访问数据库的操作的接口: l 用于配置Hibernate的接口: l 回调接口 l ...
- NSTimer相关方法
- (void)fire; //立即触发定时器 - (NSDate *)fireDate;//开始时间 - (void)setFireDate:(NSDate *)date;//设置fireData, ...
- Android开发环境配置(win7_64bit)
Android开发环境配置(win7_64bit) 目录 1.概述 2.Android开发涉及的技术 3.Android常用开发环境搭建 4.注意事项 >>看不清的图片可在新标签打开查看大 ...
- zencart里常用 SQL
1.如何替换某个字段的一些字符 如我把products表的products_image字段中包含2011的字符替换成Zencart2012update `products` set `products ...