PreparedStatement 接口简介|学习笔记

简介: 快速学习PreparedStatement 接口简介

开发者学堂课程【Java高级编程PreparedStatement 接口简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/438


preparedSratement  操作数据库


为了解决 Statement 接口存在的 SQL 执行问题,所以在 java.sql 包里面又提供有一个Statement 子接口:

PrearedStatement,,这个接口最大的好处是可以编写正常的 SQL(数据不再和 SQL 语法混合在一起),同时利用占位符的形式,在 SQL 正常执行完毕后可以进行数据的设置。

 

观察 PreparedStatement 接口定义:

Public interface PreparedStatement extends Statement

如果要想获取 PreparedStatement 接口的实例,则依然需要通过 Connection 接口来实现,创建方法:

创建PreparedStatement接口对象:public PreparedStatementprepareStatement(String sql) throw SQLException; 由于SQL语句已经在创建 PreparedStatement 接口对象的时候提供了,所以在执行数据库操作的时候也要更换方法。

数据库更新:public int executeUpdate() throw SQLException;

数据库查询:public ResultSet executeQuery() throw SQLException。

 图片3.png


范例:利用 preparedStatement 解决之前的数据操作问题

package cn . mldn . demo ;

import java . sql . Connection ;

import java .sq1.DriverManager;

import java .sq1.PreparedStatement;

import java .utl1.Date;

 

public class JDBCDemo {

private statie final String DATABASE _ DRVIER =" oracle . jdbe . driver . OracleDriver ";

private static final String DATABASE _ URL =" jdbc : oracle : thin :@1oca1host:1521:mldn";

private static final String DATAASE _ USER =" scott ”;

private static final String DATABASE _ PASSNORD =" tiger ”;

pub1ie statie void main ( String [] args ) throws Exception {

String title =" MLDN 新闻'老李写的”;

Int read 99;

double price =99.8;

String content =“这个春天有点冷”;

Datel pubdate = new . Date ();

String sql =" INSERT INTo news ( nid , title , read , price , content , pubdate ) VALUES "+"( news _ seq . nextval ,?,?,?,?)";//使用了"?”作为占位符

Connection conn =null;//每一个 Connection 接口对象摺述的就是一个用户连接

Class . forName ( DATABASE _ DRVIER );//向容器之中加载数据岸驱动程序

conn В DriverManager . getConnection ( DATABASE _ URL , DATABASE _ USER , DATABASE _ PASSWORD);

PreparedStatement pstmt = conn . prepareStatement (sql);//创建教据库的操作对象

//在执行具体的数据库操作之前需要为占位符设置内容。按照顺序设置

pstmt , setString (1, title );

pstmt . setInt (2, read );

pstmt . setDouble (3, price );

pstmt . setString (4, content );

pstmt . setDate (5, new java .sq1.Date( pubdate . getTime );

int count = pstmt , executeUpdate ();/返回影响的行数

System , out , println (”更新操作影响的数据行数,"+ count );

conn . close ();//数据库的连接资源有限一定要关闭

}

}

}

 

在 JDBC 里面不管使用的是 preparedStatement 设置的日期时间还是使用  ResultSet 获取的日期时间实际上都是 java.util,Date 的子类,也就是说现在是如下的对应关系。

图片4.png

相关文章
|
5月前
|
SQL 存储 Java
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
JDBC技术【封装JDBC工具类、Statement的使用、PreparedStatement的使用(重点)、ResultSet的使用】(二)-全面详解(学习总结---从入门到深化)
254 0
|
10月前
|
SQL 缓存 Java
JDBC中PreparedStatement常用操作实践
JDBC中PreparedStatement常用操作实践
239 1
|
SQL Java 数据库连接
JDBC快速入门(五)--PreparedStatement用法
JDBC快速入门(五)--PreparedStatement用法
PreparedStatement 防止 SQL 注入原理
PreparedStatement 对象可以防止 SQL 注入,而 Statement 对象不能防止 SQL 注入,接下来使用一个案例剖析原理。
PreparedStatement 防止 SQL 注入原理
使用PreparedStatement实现CRUD操作
使用PreparedStatement实现CRUD操作
38 0
|
SQL 安全
Java-PreparedStatement对象
Java-PreparedStatement对象 与Statement对象的区别 引入PreparedStatement对象是因为使用Statement对象容易被SQL注入,而PreparedStatement对象采用了预编译的方法,会对传入的参数进行强制类型检查和安全检查,进而避免了SQL注入的产生,使得操作更加安全(具体见博客内的文章SQL注入简介) 操作方法
|
SQL 存储 缓存
JDBC使用PreparedStatement实现CRUD操作
JDBC使用PreparedStatement实现CRUD操作
149 0
|
SQL Java 数据库连接
JDBC学习(二):PreparedStatement初体验
JDBC学习(二):PreparedStatement初体验
JDBC学习(二):PreparedStatement初体验
|
SQL Java 关系型数据库
PreparedStatement 的用法 | 学习笔记
快速学习 PreparedStatement 的用法。
265 1
|
SQL 移动开发 数据库
【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)|学习笔记
快速学习 【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)
206 0