常用接口PreparedStatement,接口Statement可能会出现SQL注入问题,
package com.lzy.jdbc;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Demo01 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");
String sql = "insert into t_user (username,pwd,regTime) values(?,?,?)";
ps = conn.prepareStatement(sql);
// ps.setString(1, "lzy");
// ps.setString(2, "123456");
// ps.setDate(3, new java.sql.Date(System.currentTimeMillis()));
// 可以使用setObject方法处理参数
ps.setObject(1, "lzy2");
ps.setObject(2, "1234567");
ps.setObject(3, new java.sql.Date(System.currentTimeMillis()));
System.out.println("插入一行记录");
// ps.execute();
int count = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
代码中
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");
为链接上数据库
testjdbc为数据库名
String sql = "insert into t_user (username,pwd,regTime) values(?,?,?)";
该串代码为sql语句后面三个"?"为占位符
ps.setString(1, "lzy");
ps.setString(2, "123456");
ps.setDate(3, new java.sql.Date(System.currentTimeMillis()));
该串代码为三个?处添加信息,也可以使用以下代码,不需要考虑属性
ps.setObject(1, "lzy2");
ps.setObject(2, "1234567");
ps.setObject(3, new java.sql.Date(System.currentTimeMillis()));