當前位置:
首頁 > 知識 > JDBC通俗易懂簡單的操作增、刪、改、查

JDBC通俗易懂簡單的操作增、刪、改、查

是時候再寫點東西啦,保持一個好的習慣,那麼這次就講下JDBC的基本操作吧~

JDBC還是相對簡單的,關鍵在於入手的角度,那麼就講下常用的MVC模型視圖控制器吧~

下面我貼出了JAVA項目所寫的類:

上面的圖片是幾個類,分別是:

、DButil 這裡面寫的是動態載入資料庫驅動,以及獲取java.sql.Connection的對象。

、Personmodel 這裡面寫的是資料庫列(欄位)所對應的欄位,裡面還定義了相應的set和get方法。

、Persondao 這裡面寫的主要是對資料庫相應的增刪改查方法 。

、Personaction 這個是對Persondao裡面增刪改查方法的進一步補充完善,後面我會講解。

、Personview 這個就是對應的將要展示數據的類了

下面我再分別貼出各個的代碼,然後細緻講解吧~

首先說吧,下面是代碼:

首先我定義了靜態變數 connection,然後在靜態代碼段裡面動態載入了資料庫驅動,並獲得了鏈接connection對象,然後我定義了get方法獲取到了該connection對象,(注意一般儘可能的把不需要創建對象的的工具類裡面的方法定義成靜態的,通過類名直接調用,不需要創建對象佔用空間並且簡化代碼),以後需要與資料庫建立連接進行相關操作的話,只要調用DButil的getconnection()方法即可(實現代碼的復用並且簡化代碼)。

下面說吧,代碼如下:

package DBmodel; import java.util.Date; public class Personmodel { private Integer id; private String name; private String sex; private String birthday; private String phone; private String email; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }

沒錯,就是以下人物信息欄位,並且有對應的set和get方法(注意體現封裝通過set方法給相應變數賦值,get方法獲取相應欄位的值,而不是直接操作相應變數,具體封裝的好處我不再啰嗦,可自行百度),然後大家可能蒙蔽了,我貼出資料庫設計表估計你就明白了,下面上圖:

看到沒,Personmodel這個模型類的作用就是為了對應資料庫的相應列(欄位),然後將資料庫相應欄位的操作對應到Personmodel類的某個對象中,然後進行操作,這就是Personmodel模型類的作用。

下面是,代碼如下:

這裡面寫的是資料庫的增刪改查操作, 首先看第一個方法是增加方法addperson()大家看方法裡面代碼,先獲得connection對象,然後獲得預編譯對象 preparedStatement ,注意獲得對象時調用方法的sql字元串參數,那個是將來要執行的SQL語句,下面preparedStatement的setxxx方法,裡面第一個參數值對應sql字元串裡面的相應?,第二個參數用了Personmodel的get方法( preparedStatement .setxxx參數意義可百度或查閱api),然後你會問了,那是什麼時候進行的set賦值呢?問得好,這時候Personaction類的意義就顯示出來了,裡面有相對應的方法對Persondao的增刪改查補充完善的相應方法,採用該方式邏輯更加清晰,我舉例了addperson()增加記錄方法的解釋,其他類似。

下面是,代碼如下:

package Action; import java.sql.SQLException; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Scanner; import DBmodel.Personmodel; import Dao.Persondao; public class Personaction { // private static Persondao persondao; private static Scanner scanner = new Scanner(System.in); public static void addone() throws SQLException { Personmodel personmodel = new Personmodel(); System.out.println("請依次輸入要新增記錄的以下屬性值~"); System.out.println("姓名:"); personmodel.setName(scanner.next()); System.out.println("性別:"); personmodel.setSex(scanner.next()); System.out.println("生日(例如:1994-01-01):"); personmodel.setBirthday(scanner.next()); System.out.println("電話:"); personmodel.setPhone(scanner.next()); System.out.println("郵箱:"); personmodel.setEmail(scanner.next()); Persondao.addperson(personmodel); System.out.println("指定記錄添加成功!"); } public static boolean deleteone() throws SQLException { List

personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("請輸入要刪除記錄的指定id:"); stringid = scanner.next(); if (!stringid.matches("\d+")) { System.out.println("請輸入正整數!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel : personmodels) { if (personmodel.getId() == id) { Persondao.deleteperson(id); System.out.println("刪除成功,刪除id為" + id + "的數據~"); return true; } } System.out.println("刪除失敗,指定id不存在~"); return false; } public static boolean update() throws SQLException { List

personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("請輸入要修改記錄的指定id:"); stringid = scanner.next(); if (!stringid.matches("\d+")) { System.out.println("請輸入正整數!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel2 : personmodels) { if (personmodel2.getId() == id) { Personmodel personmodel = new Personmodel(); personmodel.setId(id); System.out.println("請依次輸入要更改記錄的以下屬性值~"); System.out.println("姓名:"); personmodel.setName(scanner.next()); System.out.println("性別:"); personmodel.setSex(scanner.next()); System.out.println("生日(例如:1994-01-01):"); personmodel.setBirthday(scanner.next()); System.out.println("電話:"); personmodel.setPhone(scanner.next()); System.out.println("郵箱:"); personmodel.setEmail(scanner.next()); Persondao.updateperson(personmodel); System.out.println("指定記錄修改成功!"); return true; } } System.out.println("要修改的id記錄不存在!"); return false; } public static boolean selectone() throws SQLException { List

personmodels = Persondao.queryallperson(); String stringid = null; while (true) { System.out.println("請輸入要查詢記錄的指定id:"); stringid = scanner.next(); if (!stringid.matches("\d+")) { System.out.println("請輸入正整數!"); continue; } break; } int id = Integer.valueOf(stringid); for (Personmodel personmodel : personmodels) { if (personmodel.getId() == id) { personmodel = Persondao.queryoneperson(id); System.out.println("查詢成功,id為" + id + "的數據:"); System.out.print("|"); System.out.print("學生編號:" + personmodel.getId() + " "); System.out.print("姓名:" + personmodel.getName() + " "); System.out.print("性別:" + personmodel.getSex() + " "); System.out.print("生日:" + personmodel.getBirthday() + " "); System.out.print("電話:" + personmodel.getPhone() + " "); System.out.print("郵件:" + personmodel.getEmail() + " "); System.out.println(); return true; } } System.out.println("查詢失敗,指定id不存在~"); return false; } public static boolean selectonebyname() throws SQLException { List

personmodels = Persondao.queryallperson(); System.out.println("請輸入要查詢記錄的指定姓名:"); String name = scanner.next(); for (Personmodel personmodel2 : personmodels) { if (personmodel2.getName().equals(name)) { List

list = Persondao.queryonepersonbyname(name); for (int i = 0; i

personmodels = Persondao.queryallperson(); for (Personmodel personmodel : personmodels) { System.out.print("|"); System.out.print("學生編號:" + personmodel.getId() + " "); System.out.print("姓名:" + personmodel.getName() + " "); System.out.print("性別:" + personmodel.getSex() + " "); System.out.print("生日:" + personmodel.getBirthday() + " "); System.out.print("電話:" + personmodel.getPhone() + " "); System.out.print("郵件:" + personmodel.getEmail() + " "); System.out.println(); } } }

剛才講的時候,為了大家的方便理解我順帶解釋了,大家看代碼即可,我不再贅述啦。需要注意的一點是,我進行了控制台輸入語句的判斷,判斷是否是合法類型。

最後是,代碼如下:

注意看我的Personview的邏輯設計,主要採用了while循環的方式,不過也有相應的退出操作以及判斷是否合法代碼,感覺這種方式的設計還是相當容易看懂的。

以上要分享的代碼都貼了,該說的也說了,相信大家也都看得明白吧,如果你覺得我的文章對你有幫助的話,還希望你點贊、分享、轉發,讓更多的人看到,互相學習,交流! 好了,大家下篇文章見~~


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java吧 的精彩文章:

哈哈說說給程序猿做老婆的幾點總結
工具Eclipse&MyEclipse快捷鍵

TAG:java吧 |