JDBC(Java Database Connectivity)一套用於執行SQL語句的Java API,能夠對多種關係的數據庫提供統一訪問,由一套接口和類(驅動程序)組成
,是java數據庫的訪問規範。屏蔽了數據庫之間的差別
,經過驅動程序來鏈接數據庫與設備。這個驅動是由SQL人員提供的。只面向接口編程,不關心實現類,方法會由接口自動去調用java
mysql驅動也是一套類庫,實現了Sun公司提供的規範性接口,可是這個驅動類中有許多的實現類,可是咱們不會直接去用類庫,咱們直接使用Sun公司的接口規範。mysql
註冊驅動
通知虛擬機使用哪一個數據庫的驅動程序|--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");
得到鏈接(TCP)
使用JDBC完成對數據庫的鏈接//獲取數據庫鏈接 public static Connection getConnection(String url,String user,String passward) //返回接口的實現類都在JDBC驅動jar包中 //jdbc:mysql://localhost:3306/DBName
獲取語句執行平臺
經過鏈接對象,獲取SQL語句的執行者Conection con = DriverManager.getConnection(jdbc:myasql://127.0.0.2:3306/DB,root,wbydh555,); Statement stat = con.creatStatement();
獲取SQL語句
向數據庫執行SQL語句int row = stat.executeUpdate(String sql); //能執行insert delete update ResultSet rs = stat.executeQuery(String sql); //返回的是ResultSet接口的實現類對象
處理結果
//對ResultSet的結果集進行遍歷就是對結果集的處理 //其返回值是Mysql的數據表 ResultSet rs = stat.executeQuery(String sql); while(re.next()){ //使用結果集ResultSet的結果接口的getxxx //getObject(String cloumn) }
釋放資源
調用closers.close(); stat.close(); con.close();
放入lib文件夾->Build Path->addsql
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語句進行預編譯數據庫
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); }