PrepareStatement对象

PrepareStatement 可以防止SQL注入,效率更好。
里面的一些封装类是用的上一篇博客:
https://blog.csdn.net/weixin_45723046/article/details/123302467

操作步骤:

 1:  编写SQL2:预编译3:传递参数4:执行

1:新增:

public static void main(String[] args) {Connection coon = null;PreparedStatement pre = null;try {coon = jdbcUtils.getConnection();//区别//使用占位符 ? 代替参数String sql = "INSERT into users (id,`NAME`,`PASSWORD`,email,birthday)VALUES(?,?,?,?,?)";pre = coon.prepareStatement(sql);//预编译sql,先写sql ,然后不执行//手动给参数赋值pre.setInt(1,4);pre.setString(2,"hanshuo");pre.setString(3,"123456");pre.setString(4,"123456@qq.com");//注意点    sql.Date     数据库   Java.sql.Date();//          util.Date    Java     new.Date().getTime();获取时间戳;pre.setDate(5,new java.sql.Date(new Date().getTime()));//执行sqlint i = pre.executeUpdate();if (i>0){System.out.println("插入成功.");}} catch (SQLException e) {e.printStackTrace();}finally {jdbcUtils.release(coon,pre,null);}
}

2:删除

public static void main(String[] args) {Connection coon = null;PreparedStatement pre = null;try {coon = jdbcUtils.getConnection();//使用占位符  ?  代替参数String sql = "DELETE FROM users WHERE id = ?";pre = coon.prepareStatement(sql);//预编译,险些sql,然后不执行;//手动给参数赋值;pre.setInt(1, 4);//执行sql语句int i = pre.executeUpdate();if (i > 0) {System.out.println("删除成功!");}} catch (SQLException e) {e.printStackTrace();}finally {jdbcUtils.release(coon,pre,null);}
}

3:修改

public static void main(String[] args) {Connection coon = null;PreparedStatement pre = null;try {//连接数据库coon = jdbcUtils.getConnection();//预编译   先写sql语句   然后不执行;String sql = "update users set name = ? where id = ?";pre = coon.prepareStatement(sql);//手动给参数赋值;pre.setString(1,"hanshuo");pre.setInt(2,1);//执行int i = pre.executeUpdate();if (i > 0) {System.out.println("更改成功!");}} catch (SQLException e) {e.printStackTrace();}finally {jdbcUtils.release(coon,pre,null);}
}

4;查询

public static void main(String[] args) {Connection coon = null;PreparedStatement pre = null;ResultSet res = null;try {//连接数据库coon = jdbcUtils.getConnection();//先写sql语句 预编译,  ,用占位符代替参数,不执行;String sql = "SELECT * FROM `users` WHERE id = ?";//编写sqlpre = coon.prepareStatement(sql);//预编译//手动给参数赋值pre.setInt(1, 1);//传递参数//执行sql语句;res = pre.executeQuery();//执行while (res.next()) {System.out.println("查询成功1" + res.getString("NAME"));}} catch (SQLException e) {e.printStackTrace();} finally {jdbcUtils.release(coon, pre, res);}
}

PrepareStatement对象相关推荐

  1. PrepareStatement对象(新增、删除、更新、查询、防止SQL注入)

    MySQL三十三:PrepareStatement对象 PrepareStatement 可以防止SQL注入,并且效率高! 1.新增 package lesson03;import lesson02. ...

  2. jdbc preparestatement 执行多条语句_第二十一天JDBC编程

    JDBC编程 JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC ...

  3. 五、深入理解Mybatis中的参数parameterType (传递一个简单参数,传递多个参数:@Param、使用自定义对象、按位置、使用Map)

    1.1 parameterType parameterType: 接口中方法参数的类型, 类型的完全限定名或别名.这个属性是可选的,因为 MyBatis可以推断出具体传入语句的参数,默认值为未设置(u ...

  4. mybatis 添加语句返回对象_Mybatis底层源码分析

    MyBatis 流程图 整个流程可以分为两个阶段: 环境的初始化 SqlSessionFactoryBuilder对象使用build(Configuration configuration),创建Sq ...

  5. JDBC连接mysql数据库及PrepareStatement的作用及原理

    java连接mysql数据库,首先需要引入mysql-connection-java.jar包,前面的博客中给大家分享了mysql-connection-java-5.1.28.jar包,有需要的自行 ...

  6. 深究 PrepareStatement

    关注公众号[1024个为什么],及时接收最新推送文章! 本篇文章基于 MySQL Connector/J 5.1.40. 上篇文章<写个任务,翻车了 -- 记一次内存溢出排查>说到, JD ...

  7. PrepareStatement用法(附源码解析)

    PrepareStatement 基本用法 1. 加载驱动 首先在pom.xml 中引入 mysql 依赖 <dependency><groupId>mysql</gro ...

  8. 面试题:Statement与PrepareStatement的区别

    Statement用于执行静态SQL语句,在执行时,必须指定一个事先准备好的SQL语句. PrepareStatement是预编译的SQL语句对象,sql语句被预编译并保存在对象中.被封装的sql语句 ...

  9. java 方法查询_java 几种查询方式【转】

    Java数据库之插入记录 插入数据表记录有3种方案 一.使用Statement对象 实现插入数据表记录的SQL语句的语法是: 例如: 实现同样功能的Java程序代码是: 二.使用ResultSet对象 ...

  10. Mybatis 使用的 9 种设计模式,真是太有用了

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:蚂蚁学Python crazyant.net/2022.ht ...

最新文章

  1. 加密连接工具Cryptcat
  2. JBoss日志文件配置
  3. USTC English Club Note20171018
  4. 21个营销机构网站设计案例
  5. 促进儿童语言发展的方法
  6. 【哈利波特】Sherbert Lemon对HP的解读之11
  7. 利用vector实现一对一(pair<int,int>)
  8. mysql查询按值多的排序_MySQL查询结果按某值排序
  9. python查看是否存在某个变量名
  10. 运用范式的规范数据库设计的好处
  11. 159挑战 | 1:59:40,基普乔格打开人类新时代!
  12. 牛客多校第九场 ZOJ3774 The power of Fibonacci(二次剩余定理+斐波那契数列通项/循环节)题解...
  13. IIS安装时,安装程序无法复制一个或多个文件。特定错误码是0x4b8
  14. 利用Trie(字典树)实现敏感词过滤算法
  15. 百度问答怎么引流,百度知道引流技巧
  16. 基于国产全志A40I的机器人示教器解决方案
  17. Win10 安装 SQL Server 2008 与使用指南
  18. hl7消息介绍_消息格式及编码规则-HL7协议学习笔记(转)
  19. 云计算 - 虚拟化技术 - 总结
  20. cadence使用教程

热门文章

  1. 2000坐标系xy坐标几位_2000国家大地坐标系
  2. eclipse之 Type Hierachy:Viewing the type hierarchy
  3. 测试睡眠质量软件,测睡眠质量的app排行榜:推荐10款有趣又有效的睡眠APP
  4. win7 桌面html,极品壁纸再一张:Windows7桌面就是我的家
  5. 卡尔曼滤波与扩展卡尔曼滤波(EKF)
  6. 进程同步——信号量机制(操作系统)
  7. 安装mysql中error nr.1045_windows10安装mysql提示error Nr.1045的解决方法
  8. [渝粤教育] 西安建筑科技大学 环境规划与管理 参考 资料
  9. 九、MFC控件(一)
  10. 梯度散度旋度哈密顿量公式