JDBC是代表一组独立于任何数据库管理系统(DBMS)的API
MySQL8使用时,url需要加参数:serverTimezone=UTC,否则会报错
Statement用于执行静态SQL语句,而PreparedStatement用于执行预编译的SQL语句,通常对于执行多次相似的语句更有效。
执行增、删、改,使用 int executeUpate()方法,接收执行条数。
执行查询,使用ResultSet executeQuery()方法,接收返回结果集。
1 | // Statement对象执行SQL |
文件类型用new FileInputStream(path)
两者区别:
Statement 和预加载(PreparedStatement)在数据库操作中有以下主要区别:
- 编译方式:
- Statement:每次执行SQL时都会编译
- PreparedStatement:SQL预编译一次,多次执行
- 参数处理:
- Statement:直接拼接SQL字符串,有SQL注入风险
- PreparedStatement:使用参数化查询,更安全
- 性能:
- Statement:每次执行都需要编译,性能较低
- PreparedStatement:预编译后执行效率更高,特别适合重复操作
- 数据类型处理:
- Statement:所有值都作为字符串处理
- PreparedStatement:可以正确处理各种数据类型
实践建议
- 优先使用PreparedStatement,特别是在:
- 有用户输入的情况下(防注入)
- 需要多次执行相同SQL时(性能)
- 处理非字符串数据类型时
- 仅在以下情况考虑Statement:
- 执行一次性、简单的SQL语句
- 执行DDL语句(如CREATE TABLE)
- 需要动态拼接非常复杂的SQL时
jdbc获取自增长键值
1 | pst.executeUpdate(); |
批处理
1 | for (int i = 1; i <= 1000; i++) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 芃狐!



