Statement存在的问题

  1. 拼接字段的时候太麻烦,而且容易出错

  2. 有SQL注入的问题

  3. 无法存取二进制的数据,比如图片这些

    使用PreparedStatement

  4. 使用PreparedStatement插入数据 ```java package com.wisdom.java02;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.Scanner;

public class PreparedStatementTest { public static void main(String[] args) throws Exception{ // 0. 获取用户输入 Scanner sc = new Scanner(System.in);

  1. System.out.print("请输入部门编号 :");
  2. int deptNo = sc.nextInt();
  3. System.out.print("请输入部门名称 :");
  4. String deptName = sc.next();
  5. System.out.print("请输入部门所在地 :");
  6. String deptLoc = sc.next();
  7. // 1. 注册数据库驱动
  8. Class.forName("com.mysql.jdbc.Driver");
  9. // 2. 连接数据库
  10. String url = "jdbc:mysql://192.168.160.131:3306/subquery";
  11. Connection conn = DriverManager.getConnection(url, "root", "2wsx#EDC");
  12. // 3. 操作数据库
  13. // a. ?相当于占位符
  14. String sql = "insert into dept values(?,?,?)";
  15. PreparedStatement pre = conn.prepareStatement(sql);
  16. // b. 1就是代表第一个?,以此类推
  17. pre.setInt(1, deptNo);
  18. pre.setString(2, deptName);
  19. pre.setString(3, deptLoc);
  20. int len = pre.executeUpdate();
  21. System.out.println(len>0?"插入成功":"插入失败");
  22. pre.close();
  23. conn.close();
  24. sc.close();
  25. }

}

```