java基礎專欄—JDBC

JDBC

​ JDBC(Java Database Connectivity)一套用於執行SQL語句的Java API,能夠對多種關係的數據庫提供統一訪問,由一套接口和類(驅動程序)組成,是java數據庫的訪問規範。屏蔽了數據庫之間的差別,經過驅動程序來鏈接數據庫與設備。這個驅動是由SQL人員提供的。只面向接口編程,不關心實現類,方法會由接口自動去調用java

MYSQL驅動程序

​ mysql驅動也是一套類庫,實現了Sun公司提供的規範性接口,可是這個驅動類中有許多的實現類,可是咱們不會直接去用類庫,咱們直接使用Sun公司的接口規範。mysql

  1. 註冊驅動通知虛擬機使用哪一個數據庫的驅動程序
|--java.lang.Object
	|--java.sql.DriverManager
	
|--java.sql.Deriver
//每一個驅動類都要實現的接口
|--java.JDBC.Deriver
//在JDBC中的實現類
public static void registerDriver(Driver driver)
//向DriverManager註冊給定的驅動
DeriverManager.registerDeriver(new Deriver())
//這種方式與源碼相同,註冊了兩次,因此不用這種方式
//使用反射方式直接使用就會有靜態代碼塊去執行建立註冊
  Class.forName("com.mysql.jdbc.Deriver");
  1. 得到鏈接(TCP)使用JDBC完成對數據庫的鏈接
//獲取數據庫鏈接
public static Connection getConnection(String url,String user,String passward)
  //返回接口的實現類都在JDBC驅動jar包中
  //jdbc:mysql://localhost:3306/DBName
  1. 獲取語句執行平臺經過鏈接對象,獲取SQL語句的執行者
Conection con = DriverManager.getConnection(jdbc:myasql://127.0.0.2:3306/DB,root,wbydh555,);
Statement stat = con.creatStatement();
  1. 獲取SQL語句向數據庫執行SQL語句
int row = stat.executeUpdate(String sql);
//能執行insert delete update
ResultSet rs = stat.executeQuery(String sql);
//返回的是ResultSet接口的實現類對象
  1. 處理結果
//對ResultSet的結果集進行遍歷就是對結果集的處理
//其返回值是Mysql的數據表
ResultSet rs = stat.executeQuery(String sql);
while(re.next()){
    //使用結果集ResultSet的結果接口的getxxx
  	//getObject(String cloumn)
}
  1. 釋放資源調用close
rs.close();
stat.close();
con.close();

導入JAR

放入lib文件夾->Build Path->addsql

Sql注入攻擊

Class.forName("com.mysql.jdbc.Driver");
Scanner in = new Scanner(System.in);
String user = in.nextLine();
String pass = in.nextLine()
Connection con = Driver.Manager.getConnection(url,user,passward);
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery(sql)
while(rs.next()){
    rs.getObject(String cloumn);
}
rs.close();
stat.close();
con.cloe();

PreparedStatement:對Sql語句進行預編譯數據庫

  • 能夠屢次使用這個Sql語句
  • 能夠防止注入攻擊
  • 他是Statement類的子類
PreparedStatement pstat = con.preparedStatement();

使用的方式是在全部的參數的位置都使用佔位符來代替編程

String sql = "UPDATE sort SET sname=?,sprice=? WHERE sid=?";
pstat.setObject(1,"user");
pstat.setObject(2,"pass");
pstat.setObject(e,"2134");

使用數據庫存取對象

經過對SQL語句的拼裝拿到對應的對象的數據ui

ResultSet rs = pst.executeQuery();
List<Sort> list = new ArrayList<Sort>():
while(rs.next()){
    Sort s = new Sort(rs.getxxx);
}
相關文章
相關標籤/搜索