注入测试不全(下面测试同理),有空回去看
package com.kuang.lesson02;
import com.kuang.lesson02.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQL注入 {
public static void main(String[] args) {
// login("kuangsheng","123456");
login("'or' 1=1","123456");
}
public static void login(String username, String password){
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
conn = JdbcUtils.getConnection();
st= conn.createStatement();
// SQL
String sql="select * from users where `NAME`='"+username+"' AND `password`='"+password+"'";
rs= st.executeQuery(sql);
if(rs.next()){
System.out.println(rs.getObject("NAME"));
System.out.println(rs.getObject("password"));
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
JdbcUtils.release(conn,st,rs);
}
}
}
preparedstatement对象
增 删 改
Connection conn=null;
PreparedStatement st=null;
try {
conn = JdbcUtils.getConnection();
// 区别
// 使用?占位符代替参数
String sql="INSERT INTO users(`id`, `NAME`,`PASSWORD`,`email`,`birthday`)values(?,?,?,?,?)";
st = conn.prepareStatement(sql); // 预编译SQL 先写sql , 然后不执行
st.setInt(1,4); // id 赋值
st.setString(2,"qinjiang");
st.setString(3,"1232112");
st.setString(4,"24734673@qq.com");
// 注意点 sql.Date 数据库
// util.Date java new Date().getTime() 获得时间戳
st.setDate(5,new java.sql.Date(new Date().getTime()));
// 执行
int i = st.executeUpdate();
if(i>0){
System.out.println("插入成功");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.release(conn,st,null);
}
}
package com.kuang.lesson03;
import com.kuang.lesson02.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
public class TestDelete {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement st=null;
try {
conn = JdbcUtils.getConnection();
// 区别
// 使用?占位符代替参数
String sql="delete from users where id=?";
st = conn.prepareStatement(sql); // 预编译SQL 先写sql , 然后不执行
// 注意点 sql.Date 数据库
// util.Date java new Date().getTime() 获得时间戳
st.setInt(1,4);
// 执行
int i = st.executeUpdate();
if(i>0){
System.out.println("删除成功");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.release(conn,st,null);
}
}
}
package com.kuang.lesson03;
import com.kuang.lesson02.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
public class TestUpdate {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement st=null;
try {
conn = JdbcUtils.getConnection();
// 区别
// 使用?占位符代替参数
String sql="update users set NAME =? where id=?";
st = conn.prepareStatement(sql); // 预编译SQL 先写sql , 然后不执行
// 手动给参数赋值
st.setString(1,"狂神");
st.setInt(2,1);
// 执行
int i = st.executeUpdate();
if(i>0){
System.out.println("更新成功");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.release(conn,st,null);
}
}
}
查
package com.kuang.lesson03;
import com.kuang.lesson02.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestSelect {
public static void main(String[] args) {
Connection conn=null;
PreparedStatement st=null;
ResultSet rs=null;
try {
conn = JdbcUtils.getConnection();
String sql="select * from users where id=?"; //编写sql
st= conn.prepareStatement(sql); // 预编译
st.setInt(1,2); // 传递参数
rs = st.executeQuery();// 执行
if(rs.next()){
System.out.println(rs.getString("NAME"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.release(conn,st,rs);
}
}
}