目錄
前言
什么是JDBC????
前置準備
使用JDBC的五個關鍵步驟
1.建立與數據庫的連接
2.創建具體的sql語句和Statement
3.執行SQL語句
4.處理結果集
5.釋放資源
完整流程展示
前言
筆者在先前的博客就提過會寫關于JDBC的內容
[Mysql] 的基礎知識和sql 語句.教你速成(上)——邏輯清晰,涵蓋完整-CSDN博客
作為一個初學者,JDBC很大程度上解決了我之前的困惑——應用程序是怎么和數據庫關聯起來的
在本文中,我以先前分享過的圖書管理系統為例子,來向大家初步介紹如何使用JDBC
圖書管理系統(java) 代碼展示和思路介紹 (9000字小長文)_圖書管理系統關鍵代碼展示-CSDN博客
什么是JDBC????
前置準備
1.下載好驅動包
2.創建好項目以后,再創建目錄存放驅動包,并且設置為library
具體操作可以看我另一篇博客
圖文講解IDEA如何導入JDBC驅動包-CSDN博客
使用JDBC的五個關鍵步驟
1.建立與數據庫的連接
在Java中創建一個數據源(DataSource)對象,并實例化為MySQL數據庫的數據源(MysqlDataSource) (向上轉型)
然后設置好 URL? User 和Password? ?
其中關于URL 說明如下:
URL
(Uniform Resource Locator,統一資源定位符)是用于標識和定位互聯網上資源的地址。它是一個字符串,描述了資源的位置和訪問方式
URL是互聯網中標準的資源定位方式,用于瀏覽器訪問網頁、下載文件、發送請求等操作。在編程中,通過URL可以指定需要訪問的網絡資源,進行網絡通信和數據傳輸。
同時呢,代碼如下
DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的數據庫密碼");
關于URL,作為我們自己練習來說,127.0.0.1 是一個回環IP地址 ,3306是我們的端口號, jsh在這代表連接哪個數據庫,基本都是默認的,直接復制即可(除了連接什么數據庫自己定)
然后建立連接
Connection connection=dataSource.getConnection();
2.創建具體的sql語句和Statement
這里就要考驗你的sql語句是否扎實了
舉例來說
我們要寫一個sql命令,它的數據類型是String
String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
System.out.println("增加圖書");Scanner scanner=new Scanner(System.in);System.out.println("請輸入您要添加的圖書的書名:");String name = scanner.nextLine();System.out.println("請輸入您要添加的圖書的作者名:");String author = scanner.nextLine();System.out.println("請輸入您要添加的圖書的類型:");String type = scanner.nextLine();System.out.println("請輸入您要添加的圖書的價格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);
在寫好我們的命令以后,創建?PreparedStatement,它的作用是將sql語句傳到數據庫當中,
它也給了我們一組方法,可以手動輸入數據去替換我們的占位符(?)
在方法中,左邊的數字代表問好的位置,右邊的標識符代表我們要替換的數據
3.執行SQL語句
現在,我們已經建立好連接,寫好了命令,現在就需要他執行!
執行也有兩種方法,分別去應用廣義上的寫(包括修改增加刪除)和查詢
int n=preparedStatement.executeUpdate();
?這里我們以"寫"作為例子去看
int executeUpdate() throws SQLException;
?可以看到這是一個 int 方法,我們用n去接收,來查看有幾條命令執行了
4.處理結果集
如果是查詢操作,通常會有結果集,但這里我們就不細說了,到時候看案例就知道了
5.釋放資源
順序通常是釋放最后調用的對象
preparedStatement.close();connection.close();
完整流程展示
這里給大家看個大概的流程
//1 創建DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的密碼");//2 建立鏈接Connection connection=dataSource.getConnection();//3 創建sql語句System.out.println("增加圖書");Scanner scanner=new Scanner(System.in);System.out.println("請輸入您要添加的圖書的書名:");String name= scanner.nextLine();System.out.println("請輸入您要添加的圖書的作者名:");String author = scanner.nextLine();System.out.println("請輸入您要添加的圖書的類型:");String type = scanner.nextLine();System.out.println("請輸入您要添加的圖書的價格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);//4 發送給服務器int n=preparedStatement.executeUpdate();//5 釋放資源preparedStatement.close();connection.close();
具體案例更新在下篇