<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JDBC連接數(shù)據(jù)庫實(shí)現(xiàn)——手把手教你打造一款簡單的圖書管理系統(tǒng)

          共 7123字,需瀏覽 15分鐘

           ·

          2024-05-06 10:00

          點(diǎn)擊上方“Java進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注

          后臺回復(fù)“Java”即可獲贈Java學(xué)習(xí)資料

          愿得一人心,白頭不相離。

          大家好,我是Java進(jìn)階者,今天給大家繼續(xù)分享JDBC技術(shù)。

          一、前言

          圖書館的管理員對書本進(jìn)行管理,例如對書本的上架、下架,錄入書本信息等操作,這里面就蘊(yùn)含了豐富的數(shù)據(jù)庫知識。本文通過所學(xué)的JDBC連接數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)的訪問的知識,帶大家一起來打造一款簡單的圖書的增刪改查管理系統(tǒng)!


          二、項(xiàng)目準(zhǔn)備

          操作系統(tǒng):Windows

          開發(fā)工具:Eclipse

          數(shù)據(jù)庫系統(tǒng):MySQL

          編程語言:Java


          三、項(xiàng)目目標(biāo)

          1)掌握常用的SQL語句的寫法

          2)理解數(shù)據(jù)庫的加載和連接

          3)掌握J(rèn)DBC對數(shù)據(jù)庫操作訪問方法


          四、項(xiàng)目實(shí)現(xiàn)

          (一)創(chuàng)建book表,如下所示:

          (二)導(dǎo)入拓展包

          1.導(dǎo)入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse編輯軟件的當(dāng)前項(xiàng)目右鍵選擇“Bulid Path”,再選擇“Configure Build Path...”,選擇Libraies,在右邊有個“Add External JARs...”按鈕把這個拓展包加進(jìn)來,然后點(diǎn)擊“OK”。具體操作如下圖所示:


          (三)編寫代碼,如下所示:

          Book.java

          public class Book {    //定義圖書的編號、名稱、出版社、價格    private String id,name,press;    private double price;    //構(gòu)造方法    public Book(String id, String name, String press, double price) {        this.id = id;        this.name = name;        this.press = press;        this.price = price;}    public String getId() {        return id;}    public void setId(String id) {        this.id = id;}    public String getName() {        return name;}    public void setName(String name) {        this.name = name;}    public String getPress() {        return press;}    public void setPress(String press) {        this.press = press;}    public double getPrice() {        return price;}    public void setPrice(double price) {        this.price = price;  }}

          在上面代碼中,首先是定義了圖書的編號、名稱、出版社、價格的屬性,之后,定義有參數(shù)的構(gòu)造方法,使用訪問器的set屬性名()方法來設(shè)置屬性、get屬性名()方法來獲取屬性。


          BookManager.java

          import java.sql.*;import java.util.Scanner;public class BookManager {    //定義com.mysql.jdbc的Driver類路徑、數(shù)據(jù)庫的地址、用戶名、密碼    static String driver ="com.mysql.jdbc.Driver";    static String url="jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8";    static String user="root";    static String pwd="168168";    //創(chuàng)建Connection、Statement、ResultSet對象    static Connection con;    static Statement stmt;    static ResultSet rs;    public static void main(String[] args) {        BookManager bm=new BookManager();        try {            Class.forName(driver);//加載驅(qū)動程序            System.out.println("加載驅(qū)動成功!");            con=DriverManager.getConnection(url,user,pwd);            stmt=con.createStatement();        } catch (ClassNotFoundException e) {            e.printStackTrace();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //模塊化        System.out.println("1---插入圖書");        System.out.println("2---刪除圖書");        System.out.println("3---更新圖書信息");        System.out.println("4---查詢圖書信息");        System.out.println("請輸入你的選擇1~4:");        Scanner sc=new Scanner(System.in);        int i=sc.nextInt();        switch(i){        case 1:            insertBook();break;        case 2:            deleteBook();break;        case 3:            updateBook();break;        case 4:            queryBook();break;        default:            System.out.println("您的輸入有誤!");        }}    private static void queryBook(){//查詢        String sql="select * from book";        try {            rs=stmt.executeQuery(sql);            while(rs.next()){                System.out.println(rs.getString("id"));                System.out.println(rs.getString("name"));                System.out.println(rs.getString("press"));                System.out.println(rs.getDouble("price"));            }        } catch (SQLException e) {            e.printStackTrace();        }}    private static void updateBook(){//修改        System.out.println("請輸入圖書Id:");        Scanner sc=new Scanner(System.in);        String oldid=sc.next();        System.out.println("請輸入您要更新圖書Id:");        String newid=sc.next();        String sql="update book set id='"+newid+"' where id='"+oldid+"'";        try {            stmt.executeUpdate(sql);        } catch (SQLException e) {            e.printStackTrace();        }        System.out.println(sql);}    private static void deleteBook(){//刪除        System.out.println("請輸入您要刪除的圖書Id:");        Scanner sc=new Scanner(System.in);        String id=sc.next();        String sql="delete from book where id='"+id+"'";        System.out.println(sql);        try {            stmt.executeUpdate(sql);        } catch (SQLException e) {            e.printStackTrace();        }}    private static void insertBook(){//插入        Scanner sc=new Scanner(System.in);        System.out.println("請輸入您要添加的圖書id:");        String id=sc.next();        System.out.println("請輸入您要添加的圖書name:");        String name=sc.next();        System.out.println("請輸入您要添加的圖書press:");        String press=sc.next();        System.out.println("請輸入您要添加的圖書price:");        String price=sc.next();        try {            Book b=new Book(id,name,press,Integer.valueOf(price));            String sql="insert into book values('"+b.getId()+"','"+b.getName()+"','"+b.getPress()+"',"+b.getPrice()+")";            System.out.println(sql);            stmt.executeUpdate(sql);        } catch (SQLException e) {            e.printStackTrace();        }    }}

          在上面代碼中,首先是定義了com.mysql.jdbc的Driver類路徑、數(shù)據(jù)庫的地址、用戶名、密碼,創(chuàng)建Connection、Statement、ResultSet對象。

          接著使用Class.forName()方法來加載程序驅(qū)動,之后使用getConnection()方法和數(shù)據(jù)庫進(jìn)行連接,返回一個Connection對象,在該對象的createStatement()方法創(chuàng)建一個Statement對象。

          根據(jù)用戶的輸入來操作數(shù)據(jù)庫的增刪改查操作,使用switch語句來編寫,例如用戶輸入的數(shù)字是1,表示進(jìn)行插入數(shù)據(jù)的操作。

          在代碼中的insertBook()、deleteBook()、updateBook()、queryBook()方法分別表示插入圖書、刪除圖書、更新圖書、查詢圖書。首先是先寫相對應(yīng)的MySQL語句,使用executeUpdate()方法用于插入圖書、刪除圖書、更新圖書。使用executeQuery()方法用于查詢圖書。

          效果圖如下所示:

          五、總結(jié)

          1.本文基于JDBC數(shù)據(jù)庫基礎(chǔ),帶大家打造了一款簡易的圖書管理系統(tǒng)。文章介紹了簡單的圖書增刪改查管理的案例,讓讀者能夠熟練的使用JDBC加載驅(qū)動程序和學(xué)會數(shù)據(jù)庫的連接。

          最后需要拓展包的小伙伴,可以在公眾號后臺回復(fù)“拓展包”關(guān)鍵字進(jìn)行獲取。

          我是Java進(jìn)階者,希望大家通過本文的學(xué)習(xí),對你有所幫助!歡迎大家加我微信,有問題可以隨時幫大家解決噢,交個朋友也好哇~

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Java學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群

          萬水千山總是情,點(diǎn)個【在看】行不行

          瀏覽 52
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄片视频免费播放 | 婷婷狠狠| 99国产视频在线 | 亚洲第一网站在线观看 | 国产精品久久久久久久久久久易记 |