“使用Statement的演示及其弊端”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第27行: 第27行:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
*但是使用 Statement 操作数据库存在弊端:
 +
**问题1:存在拼串操作,繁琐
 +
**问题2:存在 SQL 注入问题
 +
*SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的 SQL 语句段或命令,如为:

2022年12月14日 (三) 10:03的版本

https://www.bilibili.com/video/BV1eJ411c7rf?p=12

操作和访问数据库

  • 数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个 Socket 连接。
  • 在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:
    • Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。
    • PreparedStatement:SQL 语句被编译并存储在此对象中,可以使用此对象多次高效地执行该语句。
    • CallableStatement:用于执行 SQL 存储过程
操作和访问数据库 图1.png



使用 Statement 操作数据表的弊端

  • 通过调用 Connection 对象的 createStatement() 方法创建该对象。该对象用于执行静态的 SQL 语句,并且返回执行结果。
  • Statement 接口中定义了下列方法用于执行 SQL 语句:
    package java.sql;
    
    public interface Statement extends Wrapper, AutoCloseable {
        ResultSet executeQuery(String sql) throws SQLException;
        int executeUpdate(String sql) throws SQLException;
    }
    
  • 但是使用 Statement 操作数据库存在弊端:
    • 问题1:存在拼串操作,繁琐
    • 问题2:存在 SQL 注入问题
  • SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的 SQL 语句段或命令,如为: