zoukankan      html  css  js  c++  java
  • 程序员与数据库打交道的JDBC知识概要

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

  • 相关阅读:
    js获取长度,根据编码获取长度
    springcloud(七,多个服务消费者配置,以及zuul网关案例)
    springcloud(六,多个服务提供者)
    springcloud(五,多个服务注册中心eureka)
    jquery根据选择器进行页面赋值,封装赋值方法
    让页面元素无法选中,不能全选
    取消绑定事件
    js设置元素指定时间隐藏
    js手动抛出异常
    php 之 数据访问 查询关键字 (0506)
  • 原文地址:https://www.cnblogs.com/7758521gorden/p/8051570.html
Copyright © 2011-2022 走看看