通过JDBK操作数据库
一、配置程序——讓我們程序能找到數據庫的驅動jar包
1.把.jar文件復制到項目中去,整合的時候方便。
2.在eclipse項目右擊“構建路徑”--“配置構建路徑”--“庫”--“添加外部jar”--找到數據庫的驅動jar包--點擊確定。會在左側包資源管理器中出現“引用的庫”,在里面就能找到我們剛才導入的jar包。
二、與數據庫建立連接
1.加載數據訪問驅動
2.連接到數據庫
建立與MySQL數據庫的連接:
Class.forName("com.mysql.jdbc.Driver");//加載數據庫驅動
Connection conn = DriverManager.getConnectio ("jdbc:mysql://127.0.0.1:3306/mydb","賬號","密碼");
Statement state = conn.createStatement();//建立數據庫連接,獲得連接對象conn;
建立與SQL Server數據庫的連接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加載數據庫驅動
Connection conn = DriverManager.getConnectio ("jdbc:sqlsever://127.0.0.1:1433/DatabaseName=mydb","賬號","密碼");//建立數據庫連接,獲得連接對象conn;
其中mydb是表名。
三、查詢、插入、修改、刪除數據庫中的數據
建立表login
1.查詢數據
1.1使用Statement接口制作一個登錄驗證
賬號密碼輸入正確時:輸入 zhangsan ?zhangsan 出現 “恭喜您張三登錄成功”
賬號密碼輸入錯誤時:輸入 zhangsan ?lisi ? ?出現“您輸入的賬號密碼有誤”
但是上述方法會有“注入”問題出現,如輸入 ? asdf' or 1=1 #會出現登錄成功。輸入中的單引號會和前面的單引號形成配對,而#會注釋掉后面的語句,1=1隨時成立,就會出現登錄成功。
1.2使用PreparedStatement接口制作一個登錄驗證
public class Test {public static void main(String[] args) throws Exception {Scanner sc = new Scanner(System.in);String zhang = sc.nextLine();String pas = sc.nextLine();Class.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding = GBK", "root", "");String sql = "select * from login where zhanghao=? and password =?";PreparedStatement state = conn.prepareStatement(sql);state.setString(1, zhang);state.setString(2,pas);ResultSet rs = state.executeQuery();Boolean ok = rs.next();if(ok){System.out.println("恭喜您"+rs.getString(3)+"登錄成功");}else{System.out.println("您輸入的賬號密碼有誤");}conn.close();}賬號密碼輸入正確時:輸入 zhangsan ?zhangsan 出現 “恭喜您張三登錄成功”
賬號密碼輸入錯誤時:輸入 zhangsan ?lisi ? ?出現“您輸入的賬號密碼有誤”
此種方式不會出現“注入” 問題。
2.向數據庫中插入數據
2.1使用Statement接口插入數據
public static void main(String[] args) throws Exception {Scanner sc = new Scanner(System.in);String zhang = sc.nextLine();String pas = sc.nextLine();Class.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding = GBK", "root", "");Statement state = conn.createStatement();String sql = "insert into wang (zhanghao,password,name) values('zhangyu','zhangyu','張宇')";state.executeUpdate(sql);//插入 刪除 更新數據時用updateconn.close();
}
運行結果:
2.2使用PreparedStatement接口插入數據
public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/wang?characterEncoding=GBK", "root", "");String sql ="insert into login (zhanghao,password,name) values(?,?,?)";PreparedStatement state = conn.prepareStatement(sql); state.setString(1, "zhangyu");state.setString(2,"zhangyu");state.setString(3,"張宇");state.executeUpdate();conn.close(); }運行結果:
轉載于:https://www.cnblogs.com/ermeng/p/6249978.html
總結
以上是生活随笔為你收集整理的通过JDBK操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到捉龙虾是什么意思周公解梦
- 下一篇: ORM SQLAlchemy 简介