Statement存在的问题
拼接字段的时候太麻烦,而且容易出错
有SQL注入的问题
-
使用PreparedStatement
使用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);
System.out.print("请输入部门编号 :");
int deptNo = sc.nextInt();
System.out.print("请输入部门名称 :");
String deptName = sc.next();
System.out.print("请输入部门所在地 :");
String deptLoc = sc.next();
// 1. 注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 连接数据库
String url = "jdbc:mysql://192.168.160.131:3306/subquery";
Connection conn = DriverManager.getConnection(url, "root", "2wsx#EDC");
// 3. 操作数据库
// a. ?相当于占位符
String sql = "insert into dept values(?,?,?)";
PreparedStatement pre = conn.prepareStatement(sql);
// b. 1就是代表第一个?,以此类推
pre.setInt(1, deptNo);
pre.setString(2, deptName);
pre.setString(3, deptLoc);
int len = pre.executeUpdate();
System.out.println(len>0?"插入成功":"插入失败");
pre.close();
conn.close();
sc.close();
}
}
```