|
|
|
|
公众号矩阵

JDBC连接数据库实现—手把手教你打造一款简单的图书管理系统

本文基于JDBC数据库基础,带大家打造了一款简易的图书管理系统。文章介绍了简单的图书增删改查管理的案例,让读者能够熟练的使用JDBC加载驱动程序和学会数据库的连接。

作者:Java进阶者来源:Java进阶学习交流|2021-06-24 10:52

大家好,我是Java进阶者,今天给大家继续分享JDBC技术。

一、前言

图书馆的管理员对书本进行管理,例如对书本的上架、下架,录入书本信息等操作,这里面就蕴含了丰富的数据库知识。本文通过所学的JDBC连接数据库实现数据的访问的知识,带大家一起来打造一款简单的图书的增删改查管理系统!

二、项目准备

操作系统:Windows

开发工具:Eclipse

数据库系统:MySQL

编程语言:Java

三、项目目标

1)掌握常用的SQL语句的写法

2)理解数据库的加载和连接

3)掌握JDBC对数据库操作访问方法

四、项目实现

(一)创建book表,如下所示:

(二)导入拓展包

1.导入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse编辑软件的当前项目右键选择“Bulid Path”,再选择“Configure Build Path...”,选择Libraies,在右边有个“Add External JARs...”按钮把这个拓展包加进来,然后点击“OK”。具体操作如下图所示:

(三)编写代码,如下所示:

Book.java

  1. public class Book { 
  2.     //定义图书的编号、名称、出版社、价格 
  3.     private String id,name,press; 
  4.     private double price; 
  5.     //构造方法 
  6.     public Book(String id, String name, String press, double price) { 
  7.         this.id = id; 
  8.         this.name = name
  9.         this.press = press; 
  10.         this.price = price; 
  11.     public String getId() { 
  12.         return id; 
  13.     public void setId(String id) { 
  14.         this.id = id; 
  15.     public String getName() { 
  16.         return name
  17.     public void setName(String name) { 
  18.         this.name = name
  19.     public String getPress() { 
  20.         return press; 
  21.     public void setPress(String press) { 
  22.         this.press = press; 
  23.     public double getPrice() { 
  24.         return price; 
  25.     public void setPrice(double price) { 
  26.         this.price = price; 
  27.   } 

在上面代码中,首先是定义了图书的编号、名称、出版社、价格的属性,之后,定义有参数的构造方法,使用访问器的set属性名()方法来设置属性、get属性名()方法来获取属性。

BookManager.java

  1. import java.sql.*; 
  2. import java.util.Scanner; 
  3. public class BookManager { 
  4.     //定义com.mysql.jdbc的Driver类路径、数据库的地址、用户名、密码 
  5.     static String driver ="com.mysql.jdbc.Driver"
  6.     static String url="jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8"
  7.     static String user="root"
  8.     static String pwd="168168"
  9.     //创建Connection、Statement、ResultSet对象 
  10.     static Connection con; 
  11.     static Statement stmt; 
  12.     static ResultSet rs; 
  13.     public static void main(String[] args) { 
  14.         BookManager bm=new BookManager(); 
  15.         try { 
  16.             Class.forName(driver);//加载驱动程序 
  17.             System.out.println("加载驱动成功!"); 
  18.             con=DriverManager.getConnection(url,user,pwd); 
  19.             stmt=con.createStatement(); 
  20.         } catch (ClassNotFoundException e) { 
  21.             e.printStackTrace(); 
  22.         } catch (SQLException e) { 
  23.             // TODO Auto-generated catch block 
  24.             e.printStackTrace(); 
  25.         } 
  26.         //模块化 
  27.         System.out.println("1---插入图书"); 
  28.         System.out.println("2---删除图书"); 
  29.         System.out.println("3---更新图书信息"); 
  30.         System.out.println("4---查询图书信息"); 
  31.         System.out.println("请输入你的选择1~4:"); 
  32.         Scanner sc=new Scanner(System.in); 
  33.         int i=sc.nextInt(); 
  34.         switch(i){ 
  35.         case 1: 
  36.             insertBook();break; 
  37.         case 2: 
  38.             deleteBook();break; 
  39.         case 3: 
  40.             updateBook();break; 
  41.         case 4: 
  42.             queryBook();break; 
  43.         default
  44.             System.out.println("您的输入有误!"); 
  45.         } 
  46.     private static void queryBook(){//查询 
  47.         String sql="select * from book"
  48.         try { 
  49.             rs=stmt.executeQuery(sql); 
  50.             while(rs.next()){ 
  51.                 System.out.println(rs.getString("id")); 
  52.                 System.out.println(rs.getString("name")); 
  53.                 System.out.println(rs.getString("press")); 
  54.                 System.out.println(rs.getDouble("price")); 
  55.             } 
  56.         } catch (SQLException e) { 
  57.             e.printStackTrace(); 
  58.         } 
  59.     private static void updateBook(){//修改 
  60.         System.out.println("请输入图书Id:"); 
  61.         Scanner sc=new Scanner(System.in); 
  62.         String oldid=sc.next(); 
  63.         System.out.println("请输入您要更新图书Id:"); 
  64.         String newid=sc.next(); 
  65.         String sql="update book set id='"+newid+"' where id='"+oldid+"'"
  66.         try { 
  67.             stmt.executeUpdate(sql); 
  68.         } catch (SQLException e) { 
  69.             e.printStackTrace(); 
  70.         } 
  71.         System.out.println(sql); 
  72.     private static void deleteBook(){//删除 
  73.         System.out.println("请输入您要删除的图书Id:"); 
  74.         Scanner sc=new Scanner(System.in); 
  75.         String id=sc.next(); 
  76.         String sql="delete from book where id='"+id+"'"
  77.         System.out.println(sql); 
  78.         try { 
  79.             stmt.executeUpdate(sql); 
  80.         } catch (SQLException e) { 
  81.             e.printStackTrace(); 
  82.         } 
  83.     private static void insertBook(){//插入 
  84.         Scanner sc=new Scanner(System.in); 
  85.         System.out.println("请输入您要添加的图书id:"); 
  86.         String id=sc.next(); 
  87.         System.out.println("请输入您要添加的图书name:"); 
  88.         String name=sc.next(); 
  89.         System.out.println("请输入您要添加的图书press:"); 
  90.         String press=sc.next(); 
  91.         System.out.println("请输入您要添加的图书price:"); 
  92.         String price=sc.next(); 
  93.         try { 
  94.             Book b=new Book(id,name,press,Integer.valueOf(price)); 
  95.             String sql="insert into book values('"+b.getId()+"','"+b.getName()+"','"+b.getPress()+"',"+b.getPrice()+")"
  96.             System.out.println(sql); 
  97.             stmt.executeUpdate(sql); 
  98.         } catch (SQLException e) { 
  99.             e.printStackTrace(); 
  100.         } 
  101.     } 

在上面代码中,首先是定义了com.mysql.jdbc的Driver类路径、数据库的地址、用户名、密码,创建Connection、Statement、ResultSet对象。

接着使用Class.forName()方法来加载程序驱动,之后使用getConnection()方法和数据库进行连接,返回一个Connection对象,在该对象的createStatement()方法创建一个Statement对象。

根据用户的输入来操作数据库的增删改查操作,使用switch语句来编写,例如用户输入的数字是1,表示进行插入数据的操作。

在代码中的insertBook()、deleteBook()、updateBook()、queryBook()方法分别表示插入图书、删除图书、更新图书、查询图书。首先是先写相对应的MySQL语句,使用executeUpdate()方法用于插入图书、删除图书、更新图书。使用executeQuery()方法用于查询图书。

效果图如下所示:

五、总结

本文基于JDBC数据库基础,带大家打造了一款简易的图书管理系统。文章介绍了简单的图书增删改查管理的案例,让读者能够熟练的使用JDBC加载驱动程序和学会数据库的连接。

【编辑推荐】

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区
  2. 中国程序员开发的远程桌面火了!Mac可用,仅9MB,支持自建中继器
  3. 3分钟带你彻底搞懂 Kafka
  4. 抖音服务器带宽有多大,才能供上亿人同时刷?
  5. 火爆Github!这个号称后现代编辑能超越Vim么?
  6. 2021年最危险的七大攻击技术
【责任编辑:姜华 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

带你轻松入门 RabbitMQ

带你轻松入门 RabbitMQ

轻松入门RabbitMQ
共4章 | loong576

18人订阅学习

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

10人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

40人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微