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);

最新文章

  1. ThinkPHP3.2.3整合smarty模板(一)
  2. iOS 页面跳转传值,属性传值,代理传值,代码块传值,单例传值,通知传值
  3. 好玩的Prim算法
  4. PHP函数——parse_ini_file() 函数
  5. 【MySQL】insert批量插入优化方案
  6. 求编译器中数的最值(c++)
  7. 为DEDE织梦添加XMl网站地图
  8. MySQL 复制+快照恢复误删除操作实验测试
  9. 如何在maven pom.xml文件中设置Java编译器版本
  10. 常用Linux命令笔记
  11. 给Mac的Dictionary添加其他原装词典
  12. eclipse安装其他颜色主题包
  13. 011 SpringSecurity的基本原理
  14. json模块和pickle模块(二十二)
  15. 【Java】 剑指offer(2) 不修改数组找出重复的数字
  16. _rate_charaters
  17. Jfinal QuartzPlugin 简单使用案例
  18. 用python处理文本,本地文件系统以及使用数据库的知识基础
  19. Activity的四大启动模式
  20. Upgrade to or Install Cinnamon 2.4 in Ubuntu

热门文章

  1. json简单案例
  2. 123467123456#1#-----com.twoapp.DaDiShuGame01--前拼后广--现实打地鼠游戏jiemei
  3. var和val的区别
  4. git的压缩原理;git的pack文件;git gc操作原理;Resolving deltas: 100% (2695/2695), done.做了什么
  5. Spring-boot内置的程序管理监控工具-Actuator
  6. 机器学习笔记——k-近邻算法(一)(摘抄于《机器学习实战》)
  7. 理解KNN算法中的k值-knn算法中的k到底指的是什么 ?
  8. thinkphp5 引用 phpass加密算法
  9. gcc 与g++的区别
  10. [转载]oracle xml操作