Statement 和 PreparedStatement 的区别:

  1)语句不同

    PreparedStatement需要预编译以及需要参数

  2)由于PreparedStatement有缓存区,所以效率更高

  3)由于PreparedStatement有缓存区,所以更安全,防止了注入(1=1)

  PreparedStatement接口(推荐使用):

  代码1:

 1     /**
 2      * 添加数据语句
 3      **/
 4
 5     private static void Intinsert() {
 6
 7         Connection conn = null;
 8         PreparedStatement stsm = null;
 9         try {
10             // 1:调用工具类获取连接
11             conn = Jdbcutil.getConnection();
12
13             // 2:准备sql预编译语句
14             // ?占用一个参数位
15             String sql = "INSERT INTO person (NAME,sex,age) VALUES (?,?,?);";
16
17             // 3:执行sql预编译语句(检查语法)
18             stsm = conn.prepareStatement(sql);
19
20             // 4:设置传递的参数
21
22             stsm.setString(1, "张三");
23             stsm.setString(2, "男");
24             stsm.setInt(3, 20);
25
26             // 5:发送参数,执行sql
27             // 注意:这里的方法后面没有参数
28             int result = stsm.executeUpdate();
29             System.out.println("影响了" + result + "行");
30         } catch (Exception e) {
31             e.printStackTrace();
32         } finally {
33             // 6:关闭连接
34             Jdbcutil.close(conn, stsm);
35         }
36     }

  代码2:

 1 /**
 2      * 修改语句
 3      */
 4
 5     private static void testUpdate() {
 6
 7         Connection conn = null;
 8         PreparedStatement stsm = null;
 9
10         try {
11             // 1:创建连接
12             conn = Jdbcutil.getConnection();
13
14             // 2:创建sql预编译语言
15             String sql = "UPDATE person SET NAME = ?WHERE id = ?;";
16
17             // 3:执行sql预编译语言
18             stsm = conn.prepareStatement(sql);
19
20             // 4: 设置参数
21             stsm.setString(1, "李四");
22             stsm.setInt(2, 3);
23
24             // 5:发送参数,执行sql
25             int result = stsm.executeUpdate();
26             System.out.println("影响了" + result + "行");
27         } catch (Exception e) {
28             e.printStackTrace();
29         } finally {
30             Jdbcutil.close(conn, stsm);
31         }
32
33     }

  代码3: 

 1 /**
 2      * 查询语句
 3      */
 4
 5     private static void testSelect() {
 6
 7         ResultSet rs = null;
 8         Connection conn = null;
 9         PreparedStatement stsm = null;
10         try {
11             // 1:创建连接
12             conn = Jdbcutil.getConnection();
13
14             // 2:创建sql预编译语言
15             String sql = "SELECT * FROM person;";
16
17             // 3:执行预编译语言
18             stsm = conn.prepareStatement(sql);
19
20             // 这里不需要设置参数
21             // 4:执行sql语言
22             rs = stsm.executeQuery();
23
24             // 5:查看所有数据
25             while (rs.next()) {
26                 int id = rs.getInt("id");
27                 String name = rs.getString("name");
28                 String sex = rs.getString("sex");
29                 System.out.println(id + "," + name + "," + sex);
30             }
31         } catch (Exception e) {
32             e.printStackTrace();
33             throw new RuntimeException(e);
34         } finally {
35             Jdbcutil.close(conn, stsm, rs);
36         }
37
38     }

转载于:https://www.cnblogs.com/LZL-student/p/6012992.html

jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子相关推荐

  1. day04 JDBC java数据库连接

    day04 JDBC java数据库连接 yuxiaohu已关注 2017.12.03 16:12:19字数 139阅读 85 1 导包 mysql 提供的实现java接口的包路径 C:\Progra ...

  2. 详细解答Java中抽象类和接口的区别问题!

    接口(Interface)和抽象类(Abstract Class)是支持抽象类定义的两种机制. 一.抽象类 在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称 ...

  3. [Java基础]抽象类和接口的区别

    抽象类和接口的区别:

  4. Java中抽象类和接口的区别?

    抽象类和接口的概念 抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以 ...

  5. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化

    上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 1 // 创建驱动注册对象 2 Cl ...

  6. jdbc java数据库连接 5)CallableStatement 接口

    CallableStatement执行存储过程(也是预编译语言) 首先在sql中执行以下带有输入参数的代码: 1 DELIMITER $ 2 CREATE PROCEDURE pro_findById ...

  7. 详细解析Java中抽象类和接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...

  8. Java基础 抽象类和接口的区别、equals 与 == 的区别

    一.抽象类和接口有什么区别 抽象类与接口都用于抽象,但是抽象类可以有自己的部分实现,而接口规范某一行为,调用者实现这个接口. 主要区别: 1.抽象类还是类只能单继承,而接口却可以多实现. 2.抽象类满 ...

  9. 【转】详细解析Java中抽象类和接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...

最新文章

  1. 去除菜单项的加速键--‘’符号
  2. 面向对象(面向对象设计,面向对象编程,实例变量)
  3. 【翻译】(5)Android.mk File
  4. Altium designer 操作笔记
  5. 计算长方形的周长和面积(类和对象)_JAVA
  6. vue2移动端使用vee-validate进行表单验证
  7. 国内Linux shell,管理你的 shell 环境 | Linux 中国
  8. Codeforces Round #592 (Div. 2) G. Running in Pairs 构造(水)
  9. 企业级数据库备份方案完全攻略
  10. 怎样验证软件是否可信?是否被篡改?
  11. Spring Boot(3)---Spring Boot启动器Starter详解
  12. JAVA 5.17习题
  13. 九宫怎么排列和使用_开心数独:好友都在玩的数独九宫格小游戏,居家无聊杀时间必备!...
  14. SQL教程(从入门到精通)
  15. mysql中如何批量删除冗余数据库_WordPress清理数据库中的冗余数据加速网站运行速度...
  16. win10无法打开网页
  17. 光伏抢装潮:630的得与失
  18. [ 后缀数组 ] [ SDOI2008 ] BZOJ4698 Sandy的卡片
  19. 好物分享 | 也许是最好用的文件/目录对比软件
  20. 干货分享:常见的测试类型有哪些?

热门文章

  1. 【热门算法】ctr、cvr
  2. ngzorro html源码,angular使用NG ZORRO来构建博客展示项目(简单实现展示页面)
  3. ngzorro-nzMaxStack设置提示信息的最大显示数量
  4. 雨林木风U盘装系统综合教程
  5. 系统分析师真题2019试卷相关概念一
  6. 【Vue】Class与Style的绑定 —— 绑定对象与数组
  7. 计算机应用基础word2010文字处理,计算机应用基础(Word 2010 文字处理系统)
  8. 浙江恒威深交所上市:市值60亿 汪剑平家族色彩浓厚
  9. RHCSA笔记 - 安装虚拟机、安装rhel系统、连接Xshell
  10. 数字化转型案例:基于EdgeX和OpenVINO的数智化生产车间管理系统