javasql轉義
使用預處理.估計%應該用轉義字元..用預處理安全防止sql注入..具體方法如下:
//conn = DBUtil.getInstance().getConnection();這個是獲取conn的一個方法
//DBUtil.getInstance().close(pstmt, conn);這個是我關閉pstmt conn的方法
//關鍵就是使用PreparedStatement 這個預處理。要導入包import java.sql.PreparedStatement;
public void addStudent(BufferedReader br){
String name = null;
String sex = null;
String age = null;
String id = creatId();
Connection conn =null;
PreparedStatement pstmt = null;
System.out.println("請輸入學生相應的信息:");
try {
//從鍵盤輸入學生名稱
System.out.println("請您輸入學生姓名 :");
name = br.readLine();
//從鍵盤輸入性別
System.out.println("請您輸入學生性別 :");
sex = br.readLine();
//從鍵盤輸入年齡
System.out.println("請您輸入學生年齡 :");
age = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// System.out.println(name + sex + age);
// insertStudent(name,sex,age);
conn = DBUtil.getInstance().getConnection();
//通過輸出判斷conn是否正確
// String sql = "insert into t_student(id,name,sex,age) values(111,"+"'"+name+"','"+sex+"',"+age+")";
String sql = "insert into t_student(id,name,sex,age) values(?,?,?,?)";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, name);
pstmt.setString(3, sex);
pstmt.setString(4, age);
pstmt.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBUtil.getInstance().close(pstmt, conn);
System.out.println("記錄插入成功");
}
如果還有疑問聯系我:qq 6 0 3 051135