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();}
}
```
