JDBC(Java Data Base Connectivity,Java數據庫連接)是一種用於執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基准,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。 JDBC並不能直接訪問數據庫,需要借助於數據庫廠商提供的JDBC驅動程序。
數據庫連接
如果要在Java訪問數據庫,首先要加載一個數據庫驅動,數據庫驅動只需要在第一次訪問時加載一次。然後再每次訪問數據庫時創建一個Connection實例,獲取數據庫連接,這樣就可以執行操作數據庫的SQL語句。最後用完後釋放掉數據庫的連接。
數據庫驅動類
不同的數據庫實現JDBC接口不同,所以就產生了不同的數據庫驅動包。驅動包就包含一些負責數據庫連接的類,把我們要操作的SQL語句傳遞到裡面去。我的PC用的是SQL2012,所以我們要去這裡http://www.microsoft.com/zh-cn/search/DownloadResults.aspx?q=jdbc下載驅動
下完後在新建的java_project導入驅動包
右擊選中項目>>Build Path >>Add External Archives... 選中下載解壓的文件
導入成功後的項目:
package com.Project_DataBase01; import java.sql.Connection; import java.sql.DriverManager; public class SelectQuery { private Connection conn; /* * 創建一個返回Connection的方法 */ public Connection getConnection(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); System.out.println("數據庫驅動加載成功"); conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=java_conn_test","sa","123456"); if(conn==null){ System.out.println("數據庫連接失敗"); System.out.println("-----------------------"); }else { System.out.println("數據庫連接成功"); System.out.println("-----------------------"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return conn; } }
進行SqlServe數據庫java_conn_test中的tb_User進行數據的增刪改查。
package com.Project_DataBase01; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class StartMain { private static Connection conn; public static void main(String[] args) { // TODO Auto-generated method stub conn=new SelectQuery().getConnection(); GetInsert(); GetSelect(); GetUpdate(); GetSelect(); GetDelete(); GetSelect(); } /* * INSERT */ public static void GetInsert(){ if(conn!=null){ //INSERT System.out.println("-----------INSERT------------"); int x=1+(int)(Math.random()*5000); String insert_str="INSERT INTO tb_User (UserName,UserPwd,UserId) VALUES ('name_"+x+"','pwd_"+x+"',NEWID())"; try { Statement insertstatement=conn.createStatement(); int result= insertstatement.executeUpdate(insert_str); if(result>0){ System.out.println("添加成功"); System.out.println("-----------------------"); } else { System.out.println("添加失敗"); System.out.println("-----------------------"); } } catch (Exception e) { System.out.println("添加失敗"); System.out.println("-----------------------"); // TODO: handle exception } } else { System.out.println("請檢查數據庫連接"); System.out.println("-----------------------"); } } /* * SELECT */ public static void GetSelect(){ if(conn!=null){ //SELECT System.out.println("-----------SELECT------------"); String select_str=" SELECT * FROM tb_User "; try { PreparedStatement selectps=conn.prepareStatement(select_str); ResultSet rs=selectps.executeQuery(); while (rs.next()) { String name=rs.getString("UserName"); String pwd=rs.getString("UserPwd"); String UserId=rs.getString("UserId"); System.out.println(name+"\t"+pwd+"\t"+UserId); } System.out.println("查詢成功"); System.out.println("-----------------------"); } catch (Exception e) { // TODO: handle exception System.out.println("查詢失敗"); System.out.println("-----------------------"); } } else { System.out.println("請檢查數據庫連接"); System.out.println("-----------------------"); } } /* * UPDATE */ public static void GetUpdate(){ if(conn!=null){ //UPDATE System.out.println("-----------INSERT------------"); String update_str="UPDATE tb_User SET UserPwd=UserPwd+'xxxxxxxx' WHERE UserId='fa562573-218a-4205-b67d-ebdfac3f8329'"; try { Statement updatestatement=conn.createStatement(); int result=updatestatement.executeUpdate(update_str); if(result>0){ System.out.println("修改成功!"); System.out.println("-----------------------"); }else { System.out.println("修改失敗"); System.out.println("-----------------------"); } } catch (Exception e) { // TODO: handle exception System.out.println("修改失敗"); System.out.println("-----------------------"); } } else { System.out.println("請檢查數據庫連接"); System.out.println("-----------------------"); } } /* * DELETE */ public static void GetDelete(){ if(conn!=null){ //DELETE System.out.println("-----------DELETE------------"); String delete_str="DELETE tb_User WHERE UserId!='fa562573-218a-4205-b67d-ebdfac3f8329'"; try { Statement deletestatement=conn.createStatement(); int result=deletestatement.executeUpdate(delete_str); if(result>0){ System.out.println("刪除成功!"); System.out.println("-----------------------"); }else { System.out.println("刪除失敗"); System.out.println("-----------------------"); } } catch (Exception e) { // TODO: handle exception System.out.println("刪除失敗"); System.out.println("-----------------------"); } } else { System.out.println("請檢查數據庫連接"); System.out.println("-----------------------"); } } }
運行程序: