zoukankan      html  css  js  c++  java
  • mybatis执行器1---简单描述JDBC

    1、简单描述JDBC

      (1)、JDBC的执行过程

      (2)JDBC的三种执行器(也不叫执行器,可以叫做执行计划)

    a、preparestatement预编译,预编译指的是DB的编译器,会对此sql语句提前编译。然后将预编译的sql语句缓存起来,下次执行时,直接通过设置值的方式,执行语句。(都是数据库做的)

    b、statement是每次都需要数据库编译器编译,然后进行查询。

    c、Callable Statement对应存储过程。可以设置出参和读取入参。

    d、当执行批处理时,Statement的优点是可以一次发送多条不同的静态sql。preparestatement的优点是当执行同一条语句设置不同的参数时,可以一次性完成。

    (3)、sql注入简单描述

     preparestatement向数据库发送的语句是预编译之后的语句以及需要传入的参数。发送到数据后数据库进行参数转义,解析处理。从而防止sql注入。

     statement传入的是拼装好的sql语句,因此数据库会直接编译执行,发送注入风险。

     (3)、传输相关的几种参数(也就是JDBC到数据可以携带的传输相关的参数。应用可认为是JDBC):

    2、JDBC代码实例:

       public void jdbcTest() throws SQLException {
            // 预编译
            String sql = "SELECT * FROM users WHERE `name`=?";
            PreparedStatement sql1 = connection.prepareStatement(sql);
            sql1.setString(1,"张麻子");//设置你需要查询的name
            System.out.println(sql);
            sql1.execute();
            ResultSet resultSet = sql1.getResultSet();
            //获取结果集之后需要根据查询结果的类型来取得最终的值。
            while (resultSet.next()) {
                System.out.println(resultSet.getInt(1));
                System.out.println(resultSet.getString(2));
            }
            resultSet.close();
            sql1.close();;
        }
    

      

  • 相关阅读:
    让history命令 显示执行命令的时间
    实现SSH免密登录
    数据库表空间一夜之间爆满 查看最大的表却才几百M 原来是大字段对象CLOB造成的
    Python-集合的操作
    Vim使用技巧
    Linux的内部命令和外部命令
    Redis缓存穿透和雪崩
    网络编程学习一:IP地址转换函数
    每日一问15:C++中的.h,cpp以及.hpp文件
    每日一问14: 缓存和缓冲的区别
  • 原文地址:https://www.cnblogs.com/sunanli/p/13550504.html
Copyright © 2011-2022 走看看