PreparedStatement 和 Statement 的区别:1.PreparedStatement在使用时只需要编译一次,就可以运行多次,Statement每运行一次就编译一次,所以PreparedStatement的效率更高2.PreparedStatement需要的sql语句为用?(占位符)来替换值,Statement所需要的sql语句为字符串拼接3.PreparedStatement解决了sql注入的问题,Statement没有解决,因为PreparedStatement有一个预编译的过程,就算传入占位符的数据中有sql关键字也都被认为是值。Statement所需要的是字符串拼接,传入的整个字符串被默认为sql语句,如果用户手动拼接了字符串,那么会导致语句的改变
public class JDBCTest04 {public static void main(String[] args) throws Exception {Properties pro = new Properties();pro.load(new FileReader("src\\JDBC.properties"));String driver = pro.getProperty("driver");String url = pro.getProperty("url");String user = pro.getProperty("user");String password = pro.getProperty("password");Class.forName(driver);Connection connection = DriverManager.getConnection(url,user,password);///划重点PreparedStatement///PreparedStatement不同于Statement,在写sql语句时,用?(占位符)来代替值,后期为占位符赋值String sql1 = "select * from t_login where username = ?";PreparedStatement ps = connection.prepareStatement(sql1);//JDBC中下标都是从1开始ps.setString(1,"123");//在ps.setString中,sql语句就已经存在于ps中,所以在查询或者修改时不需要对其再进行赋值ResultSet resultSet = ps.executeQuery();///划重点Statement/String sql2 = "select * from t_login where username = " + 123;Statement statement = connection.createStatement();ResultSet resultSet1 = statement.executeQuery(sql2);///划重点//while (resultSet1.next()){System.out.println(resultSet1.getString("password"));}}
}

PreparedStatement和Statement的区别相关推荐

  1. 【笔试面试考点】PreparedStatement和Statement的区别与联系批量插入数据的优化

    目录 ​ 一.PreparedStatement和Statement的区别去联系 一.preparedStatement与Statement的联系: 二.区别: 二.批量插入数据到数据的逐步优化 一. ...

  2. PreparedStatement和Statement的区别和效率

    同样也是在一次面试中问到的,当时回答说PreparedStatement比Statement效率高: 其实这个回答是错误的!掌握的还是不够! 一.PreparedStatement相比于Stateme ...

  3. java PreparedStatement和statement的区别

    1. PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象.2.作为 St ...

  4. JDBC 笔记4 PreparedStatement 与Statement 的区别

    1  有安全性 PreparedStatement 可以由于不是使用拼接,防止了sql注入,提高了安全性. 2  更方便 PreparedStatement 可以自动对类型进行转换,代码可读性,可维护 ...

  5. Java中PreparedStatement和Statement的用法区别

    Java中PreparedStatement和Statement的用法区别 (2012-08-01 11:06:44) 转载▼ 标签: 杂谈   1. PreparedStatement接口继承Sta ...

  6. preparedStatement和Statement区别

    原文:https://blog.csdn.net/xuebing1995/article/details/72235380 一.概念 PreparedStatement是用来执行SQL查询语句的API ...

  7. JDBC:PreparedStatement与Statement在使用时的区别

    PreparedStatement与Statement在使用时的区别 1.Statement: a.写sql语句 b.然后再执行executeUpdate(sql)或executeQuery(sql) ...

  8. preparedStatement和Statement区别及联系

    1.两者之间的关系: preparedstatement和statement两者都是用来执行sql查询语句的API之一. preparedstatement接口继承了statement接口. 2.两者 ...

  9. prepareStatement与Statement的区别

    prepareStatement与Statement的区别 1.区别: stmt=conn.CreateStatement(); resultSet rs=stmt.executeQuery(sql) ...

最新文章

  1. ReverseMe-120(base64解码表) 逆向寒假生涯(21/100)
  2. Django return
  3. Bitmap Index
  4. Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城
  5. [渝粤教育] 中国地质大学 嵌入式操作系统 复习题 (2)
  6. java 压缩 乱码_如何解决java压缩文件乱码问题
  7. 【转】sharepoint foundation 2013升级sp1补丁后无法使用搜索功能
  8. freemark循环map_freemarker中循环map根据key值得value 报错
  9. android 天气接口简书,天气API接口说明
  10. tnsnames.ora配置未生效_nginx高可用配置未生效问题跟踪
  11. github出现Your account has been flagged.导致账号无法公开的解决办法
  12. 会声会影x4素材_怎么给视频打马赛克?运用会声会影2019
  13. mysql安全补丁,Oracle发布了本季安全补丁,包含了mysql在内的高危漏洞补丁
  14. xamarin.forms 自定义Switch 采用 syncfusion.button中的 sfswitch
  15. matplotlib is required for plotting.
  16. Python 以练促学之 List 篇
  17. 蚂蚁金服推出 BaaS 平台:巨头角逐之下,商业机会正快速来临
  18. 单片机计时器100000秒以内
  19. 负对数似然(negative log-likelihood, NLL)
  20. mysql根据单一字段去重

热门文章

  1. [C++] [MinGW] MinGW下载与使用
  2. 汇编语言%3c %3e 关系运算符,面向对象程序的设计 精讲.doc
  3. c++ 运行cmd命令行
  4. LCD接口设计系列一:基于eDP接口屏的硬件电路设计
  5. 如何下载FusionMap中国各省地图的SWF文件
  6. 关于一些常见/好用的matlab工具箱介绍
  7. 2105-小泉的难题
  8. 锂离子电池的国际标准和国家标准(含安全方面IEC62133等,IEC61060电性能和UN38.3 GB4943运输存储标准)
  9. Firefox使用Chrome主题
  10. 若依前后端分离框架学习-3:获取菜单