日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

JDBC连接mysql数据库操作

發(fā)布時(shí)間:2023/12/18 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDBC连接mysql数据库操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.創(chuàng)建所需對(duì)象,并進(jìn)行初始化

Connection connection=null; Statement statement=null; PreparedStatement pst; ResultSet rs=null;

二.加載mysql驅(qū)動(dòng)

Class.forName("com.mysql.jdbc.Driver");

三.創(chuàng)建鏈接(url為數(shù)據(jù)庫(kù)連接,root帳號(hào),pwd密碼)

connection=DriverManager.getConnection(url,root,pwd);

四.創(chuàng)建statement一般創(chuàng)建為預(yù)編形的即PreparedStatement,如果使用Statement會(huì)引起sql注入攻擊,首先是一般的Statement:

statement=connection.createStatement(); String sql="select * from user where username='"+username+"'"+"and password='"+password+"'"; rs=statement.executeQuery(sql);if(rs.next()){response.getWriter().print("connection is ok");}else {response.getWriter().print("用戶名密碼錯(cuò)誤");}

五.測(cè)試:1.輸入正確帳號(hào)="張三",密碼=1234;獲得效果

?

2.輸入錯(cuò)誤帳號(hào)=12312,密碼=1231234' or '1'='1;獲得效果,并將sql語(yǔ)句打印出來(lái)

3.總結(jié):這句sql相當(dāng)與( select * from user)一般的stament會(huì)因?yàn)閟ql拼接的問(wèn)題,可能會(huì)被惡意攻擊,攻擊者可以無(wú)需帳號(hào)密碼即可登錄,可甚至可以刪除你的數(shù)據(jù)庫(kù)。

六.使用PreparedStatement防止sql注入,增強(qiáng)安全性,而且他比statement的效率更高,因?yàn)樗穷A(yù)先編譯好的sql語(yǔ)句,使用?來(lái)代表參數(shù),通過(guò)pst.setString方法將值傳入,

第一個(gè)參數(shù)代表是第幾個(gè)?的位置(從1開(kāi)始),第二個(gè)參數(shù)代表是參數(shù)值。

String sql="select * from user where username=? and password=?";pst=connection.prepareStatement(sql);pst.setString(1, username);pst.setString(2, password);System.out.println(pst.toString());rs=pst.executeQuery();if(rs.next()){response.getWriter().print("connection is ok");}else {response.getWriter().print("用戶名密碼錯(cuò)誤");}

七.測(cè)試:輸入錯(cuò)誤帳號(hào)=12312,密碼=1231234' or '1'='1(sql注入方法能否正常登錄)

八.總結(jié),為什么能防止sql,看打印出來(lái)的sql語(yǔ)句便可以知道,預(yù)編譯的語(yǔ)句在執(zhí)行時(shí)會(huì)自動(dòng)轉(zhuǎn)義一些字符,從而防止sql注入

?

轉(zhuǎn)載于:https://www.cnblogs.com/hckblogs/p/7701184.html

總結(jié)

以上是生活随笔為你收集整理的JDBC连接mysql数据库操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。