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. python中简化的验证码功能

    验证码一般用来验证登陆.交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能. import random def veri_c ...

  2. 执行spark-shell报错:

    执行spark-shell报错: [ERROR] Terminal initialization failed; falling back to unsupportedjava.lang.NoClas ...

  3. SQLite 的简单使用

    程序运行结果如下 : 输入name和age,点击"确认插入"按钮,即插入一条记录到数据库. 程序代码如下:(有详细注释,相信大家都看得懂哈!!!) ////  ViewContro ...

  4. mysl创建用户+授权+增、删、改查

    1.mysql的root用户无法给普通用户授权问题处理 update mysql.user set Grant_priv='Y' where User='root' and Host='%': flu ...

  5. 为何有DAO与Service层?为何先搞Dao接口在搞DaoImpl实现?直接用不行吗?

    转自 http://blog.sina.com.cn/s/blog_4b1452dd0102wvox.html 我们都知道有了Hibernate后,单独对数据的POJO封装以及XML文件要耗损掉一个类 ...

  6. iOS-UIScreen,UIFont,UIColor,UIView,UIButton

    6.1 UIScreen // 屏幕的宽度 CGFloat screenW = [UIScreen mainScreen].bounds.size.width; 6.2 UIFont + (UIFon ...

  7. 【C# 开发技巧】如何防止程序多次运行

    一.引言 最近发现很多人在论坛中问到如何防止程序被多次运行的问题的,如: http://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c0 ...

  8. 并查集与最小生成树Kruskal算法

    一.什么是并查集 在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题.有一个联合-查找算法(union-find algorithm)定义了两个用于次数据结构的操作: Fi ...

  9. EMR的fair-scheduler.xml

    cat /etc/ecm/hadoop-conf/fair-scheduler.xml <?xml version="1.0"?> <allocations> ...

  10. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验四 《Android程序设计》 实验报告

    实验四 Android程序设计 实验要求 参考Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交.注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明.实验报告 ...