1.JDBC全称:Java database connectivity,Java数据库连接。

(1)           JDBC是一种用于执行SQL语句的Java API,为多种关系数据库提供多种统一访问,由一组Java语言编写的类和接口组成。

(2)           程序员JDBC API程序可以访问所有的数据库。

(3)           Java语言和JDBC结合,程序员不必为不同的平台写不同的应用程序,只需写一遍程序就可以使它在任意平台上运行。

(4)           JDBC简单讲做三件事:与数据库建立连接,发送、处理数据库语句并处理结果。

3.加载Oracle的JDBC驱动程序

Class.forName(“Oracle.jdbc.driver.OracleDriver”)

4.execute、executeQuery、executeUpdate

executeQuery:返回结果集(ResultSet),通常用于select语句。

executeUpdate:返回此操作影响的行数(int),通常用于insert,update,delete语句。

execute返回Boolean值, 通常用于insert,update,delete语句。

5.ResultSet处理的典型代码:

while(rs.next()){

String ename = rs.getString(1);

int empno = rs.getInt(“empno”);

}

6.JDBC记载4大步骤

(1)加载一个Driver驱动;

(2)创建数据库连接(Connection)

(3)创建SQL命令发布器Statement,通过statement发送命令并得到结果。

(4)处理结果(select语句和resultset),处理完毕后关闭数据库资源。

7.SQL注入攻击

比如JDBC完成用户的登录功能

(1)           SQL语句采用了字符串拼接技术String sql = “select * from t_user where userno= ‘”+userno+”’ and password =+upwd+”’”;

(2)           继而使用SQL命令发布器发送SQL命令并得到结果:

Stmt.executeQuery(sql);

(3)           如输入:userno = “ abc:,password =” abc ‘or’ 1’ = 1”;

于是上述SQL字符串就变为sql = “select * from t_user where userno =’ abc’ and password =’ abc’ ‘or’ 1’ = ‘ 1”;

此语句的用户名和密码并不正确,但是仍然能访问数据表,所以存在风险,这就是所谓的SQL注入攻击。

(4)           解决方案:采用statement的子接口PreparedStatement来实现。

*1.可读性强不繁琐

*2.安全

*3多次执行同一条SQL语句,效率高

例:

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try{

Class.forName(“oracle.jdbc.driver.OracleDriver”);

conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”,”scott”,”tiger”);

stmt = conn.createStatement();

String sql = “select * from emp”;

rs = stmt.executeQuery(sql);

程序员与数据库打交道的JDBC知识概要的更多相关文章

  1. Oracle学习总结(8)—— 面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  2. 程序员必须要知道的Hadoop的一些事实

    程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...

  3. J2EE程序员应该要掌握的linux知识

    J2EE程序员应该要掌握的linux知识 大型J2EE应用都在建构在linux环境下的.开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试.但是最后的发布还 ...

  4. 【原文】前端程序员必须知道的高性能Javascript知识

    原文:前端程序员必须知道的高性能Javascript知识 想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影. 本文会分享一些高效的JavaScript的最佳 ...

  5. Java程序员所需要掌握的核心知识

    [Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. https://javaguide.cn/ 推荐使用 https://snailclimb.gitee.io/javag ...

  6. MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

    MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中 ...

  7. 每一位想有所成就的程序员都必须知道的15件事(走不一样的路,要去做,实践实践再实践,推销自己,关注市场)good

    从 为之漫笔作者:为之漫笔 有超过 100 人喜欢此条目 原文地址:How to advance your career? Read the Passionate Programmer! 我刚看完Ch ...

  8. 程序员需要了解的硬核知识之CPU

    大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CP ...

  9. 关于Unicode,字符集,字符编码,每个程序员都应该知道的事

    关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...

随机推荐

  1. D-Link系列路由器漏洞挖掘

    参考 http://www.freebuf.com/articles/terminal/153176.html https://paper.seebug.org/429/ http://www.s3c ...

  2. iOS-objective-c产生随机数的方法

    objective-c 中三种产生随机数的方法 //arc4random() 比较精确不需要生成随即种子 //通过arc4random() 获取0到x-1之间的整数的代码如下:     int val ...

  3. EXCEL中,在其中列 前面or后面加一个“元”字的技巧

    EXCEL小技巧,我们平常需要用到一些,记录下,供有需要的人参考! 案例: EXCEL其中的一列,每个后面加一个“元”字,如果要1个1个去加,相当麻烦,其实很简单,只需要一个公式即可! 解决方法: ( ...

  4. 安装android sdk,后出现导出错误,提示命令行找不到解决方案

    The steps. Rename android sdk tool folder : [Your Android SDK root]/tools -> toolsXXXX Download S ...

  5. 静态路由协议和动态路由协议(rip协议和ospf协议)

    一.静态路由协议 1.拓扑图 2.分别是设置各个路由器的ip地址 以R1为例 R1> R1>en //进入全局配置模式 R1#conf t //进入端口 int g0/0 //配置ip地址 ...

  6. Asp.Net Core文件上传

    文件上传功能在实际开发中经常使用,在 .Net Core中,文件上传接收类型不再使用 HttpPostedFile 或 HttpFileCollection来接收,而是使用 IFormFile 或 I ...

  7. php实现支付宝在线支付和扫码支付demo

    ### php实现支付宝在线支付和扫码支付demo 背景:在做一个公众号时增加了h5端,需要接入支付,非微信环境,选择了支付宝,以下简单记录下实现过程,并做了简单的封装,拿来即可使用,注意:本项目只是 ...

  8. MySQL之创建用户和授权

    一 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建 ...

  9. 笔记-7:mysql视图

    1.视图概述 2.创建视图 CREATE [OR REPLACE] VIEW view_name [(column_list)] AS SELECT_statement [WITH { CASCADE ...

  10. 标准Trie、压缩Trie、后缀Trie

    ref : https://dsqiu.iteye.com/blog/1705697 1.Trie导引 Trie树是一种基于树的数据结构,又称单词查找树.前缀树,是一种哈希树的变种.应用于字符串的统计 ...