mysql jdbc 占位符_JDBC中占位符报错是什么鬼啊
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
import java.sql.*;
import org.junit.Test;
/**
* 測試sql注入問題
* @author Wangjianyu
*
*/
public class TextLogin {
@Test
public void testLogin() {
try {
login("23'or'23","2322");
login2("23","2322");
login2("23'or'23","2322");
login("23","2322");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 用戶登陸方法1
* @param username
* @param password
* @throws Exception
*/
public void login(String username,String password) throws Exception {
//注冊驅動
Class.forName("com.mysql.cj.jdbc.Driver");
//獲取連接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/web08?serverTimezone=UTC","root","748159263");
//創建執行sql語句的對象
Statement stmt=conn.createStatement();
//書寫一個SQL語句
String sql="select * from tbl_user where "+"uname='"+username+"' and upassword='"+password+"'";
//執行sql語句
ResultSet rs=stmt.executeQuery(sql);
//對結果集進行處理
if(rs.next()) {
System.out.println("登錄"+username+"成功");
System.out.println(sql);
}else {
System.out.println("賬號或密碼錯誤");
}
if(rs!=null) {
rs.close();
}
if(stmt!=null) {
stmt.close();
}
if(conn!=null) {
conn.close();
}
}
//使用預編譯說明
public void login2(String username,String password) throws Exception {
//注冊驅動
Class.forName("com.mysql.cj.jdbc.Driver");
//獲取連接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/web08?serverTimezone=UTC","root","748159263");
//編寫sql語句
String sql="select * from tbl_user where uname=? and upassword=?";
//創建預處理對象
PreparedStatement pstmt=conn.prepareStatement(sql);
//設置參數(給占位符)
pstmt.setString(1,username);
pstmt.setString(1,password);
//執行查詢操作
ResultSet rs=pstmt.executeQuery(sql);
//對結果集進行處理
if(rs.next()) {
System.out.println("登錄"+username+"成功");
System.out.println(sql);
}else {
System.out.println("賬號或密碼錯誤");
}
if(rs!=null) {
rs.close();
}
if(pstmt!=null) {
pstmt.close();
}
if(conn!=null) {
conn.close();
}
}
}
總結
以上是生活随笔為你收集整理的mysql jdbc 占位符_JDBC中占位符报错是什么鬼啊的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 阿里云 优化_MySQL性能
- 下一篇: OpenGL ARB 看来终于想通了,O