前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JDBC连接数据库实现——手把手教你打造一款简单的图书管理系统

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

作者头像
Java进阶者
发布2021-07-01 10:00:07
1.3K1
发布2021-07-01 10:00:07
举报
文章被收录于专栏:Java进阶学习交流

愿得一人心,白头不相离。

大家好,我是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
代码语言:javascript
复制
public class Book {
    //定义图书的编号、名称、出版社、价格
    private String id,name,press;
    private double price;
    //构造方法
    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;
  }
}

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

BookManager.java
代码语言:javascript
复制
import java.sql.*;
import java.util.Scanner;
public class BookManager {
    //定义com.mysql.jdbc的Driver类路径、数据库的地址、用户名、密码
    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";
    //创建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);//加载驱动程序
            System.out.println("加载驱动成功!");
            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类路径、数据库的地址、用户名、密码,创建Connection、Statement、ResultSet对象。

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

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

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

效果图如下所示:

五、总结

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

最后需要拓展包的小伙伴,可以在公众号后台回复“拓展包”关键字进行获取。

我是Java进阶者,希望大家通过本文的学习,对你有所帮助!欢迎大家加我微信,有问题可以随时帮大家解决噢,交个朋友也好哇~

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java进阶学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大家好,我是Java进阶者,今天给大家继续分享JDBC技术。
  • 一、前言
  • 二、项目准备
  • 三、项目目标
  • 四、项目实现
    • (一)创建book表,如下所示:
      • (二)导入拓展包
        • (三)编写代码,如下所示:
          • Book.java
          • BookManager.java
      • 五、总结
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档