PreparedStatement 接口简介|学习笔记-阿里云开发者社区

开发者社区> 学堂小助手> 正文

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 PreparedStatement prepareStatement(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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
通过搭建wordpress博客来学习云服务器的详细使用方法
云服务器越来越普及,很多企业及个人都纷纷上云,从传统的虚拟主机或者托管服务器上把网站和应用迁移到腾讯云、阿里云、百度云等这些云服务器上。 云服务器相比传统服务器的优势有很多,比如安全性、性价比、稳定性、可用性、便捷性等等各方面,大家可以百度自己了解,我就不在这里多说了。
1823 0
Shell脚本常见问题|学习笔记
快速学习Shell脚本常见问题
31 0
参数问题|学习笔记
快速学习参数问题
7 0
runtime system学习笔记
经常听到runtime这个词,却不知是做什么的,最近在一本书上看到了它的一点相关知识,记录如下: 1、Object-C是一门动态编程语言,具有动态特性,所以,OC不仅需要编译环境,也需要运行时系统(runtime system)来执行编译好的代码。
642 0
1394
文章
0
问答
来源圈子
更多
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载