Java图书管理程序2.0

介绍

这是利用Java编写的一个拥有增删改查功能的图书管理程序,利用了MySQL数据库能实现对书本的ISBN码和书本名称以及价格的储存与修改。

软件架构

  1. JDK 11
  2. MySQL 5.7.224
  3. maven 3.8.4
  4. mysql-connector-java 8.0.28.jar

安装教程

  1. 导入到idea社区版
  2. 导入mysql-connector-java 8.0.28.jar这是链接MySQL数据库的驱动
  3. 下载并安装好MySQL数据库

使用说明

  1. 通过输入数字来选择想要的功能
  2. 按照提示操作即可

参与贡献

  1. 我把名字打长就会有人跟着念

项目结构

项目结构截图

MySQL数据库内容

在这里插入图片描述

Main类

public class Main {
    public static void main(String[] args)
    {
        GongNeng.run();//进行功能选择
    }
}

功能选择类



import java.util.Scanner;
public class GongNeng {

    public static void run()
    {
        System.out.println("|---------------------图书管理系统2.0----------------------------|");
        System.out.println("|            1、查找                                            |");
        System.out.println("|            2、插入                                            |");
        System.out.println("|            3、删除                                            |");
        System.out.println("|            4、修改                                            |");
        System.out.println("|            5、退出                                            |");
        System.out.println("|>>>>请输入你想要的功能所对应的相应数字(列如输入数字1进入到查询功能):<<<<|");
        Scanner scanner=new Scanner(System.in);
        String chooseStr=scanner.next();
        if (chooseStr.equals("1"))
        {
           ChaXun chaXun=new ChaXun();
           chaXun.choose();
           run();
        }
        else if (chooseStr.equals("2"))
        {
            ChaRu chaRu=new ChaRu();
            chaRu.shuru();
            run();
        }
        else if (chooseStr.equals("3"))
        {
            ShanChu shanChu=new ShanChu();
            shanChu.choosegonneng();
            run();
        }
        else if (chooseStr.equals("4"))
        {
            XiuGai xiuGai=new XiuGai();
            xiuGai.choose();
            run();
        }
        else if (chooseStr.equals("5"))
            System.exit(0);
        else
            run();
    }
}

增加数据类

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class ChaRu {
    String  book_name;
    String book_ISBN;
    float book_price;
    private Connection con2;

    public void shuru()
    {
        System.out.println(">输入书本ISBN:");
        Scanner scanner=new Scanner(System.in);
        book_ISBN =scanner.nextLine();//输入文本时用nextLine()方法,一直读取到行分隔符为止
        System.out.println(">输入书名称:");
        Scanner scanner1=new Scanner(System.in);
        book_name =scanner1.nextLine();
        System.out.println(">输入书本价格:(请保留两位小数)");
        Scanner scanner2=new Scanner(System.in);
        book_price =scanner2.nextFloat();
        String sqlStr="'"+book_ISBN+"'"+","+"'"+book_name+"'"+","+"'"+book_price+"'";
        jdbc(sqlStr);
    }
    public void jdbc(String str_value)
    {
        Statement statement;
        con2=GetDBConnection.connectDB("library","root","x20000j08r01");//链接数据库
        String sqlStr="insert into book(ISBN,bookname,price) values("+str_value+")";
        try{
            statement = con2.createStatement();
            /*statement.executeUpdate(sqlStr);*/
            int count=statement.executeUpdate(sqlStr);//计算执行了多少条SQL语句
            if(count > 0){
                System.out.println("添加成功!");
            }else{
                System.err.println("添加失败");
            }
            con2.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

删除功能类

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class ShanChu {
    public void choosegonneng()
    {

        System.out.println(">>>>请选择要按照什么信息来删除书本:(输入1按照书本名称来删除书本信息,输入2按照书本ISBN来删除书本信息,输入数字3退出程序,输入其他重新选择)<<<<<");
        Scanner scanner=new Scanner(System.in);
        String chooseStr=scanner.next();
        if (chooseStr.equals("1"))//选择功能
        {
            ShuRu_bookname();
        }
        else if (chooseStr.equals("2"))
        {
            ShuRu_bookISBN();
        }
        else if (chooseStr.equals("3"))
        {
            System.exit(0);
        }
        else
        {
            choosegonneng();
        }
    }
    public void ShuRu_bookname()
    {
        System.out.println(">>>>>请输入要删除书本的名称:");
        Scanner scanner=new Scanner(System.in);
        String bookname=scanner.nextLine();
        String sql_str="DELETE FROM book WHERE bookname="+"'"+bookname+"'";
        jdbc(sql_str);
    }
    public void ShuRu_bookISBN()
    {
        System.out.println(">>>>>>请输入要删除书本的ISBN码:");
        Scanner scanner=new Scanner(System.in);
        String bookisbn=scanner.next();
        String sql_str="DELETE FROM book WHERE ISBN="+"'"+bookisbn+"'";
        jdbc(sql_str);
    }
    public void jdbc(String str_value)
    {
        Statement statement;
        Connection con2 = GetDBConnection.connectDB("library", "root", "x20000j08r01");//链接数据库
        try{
            statement = con2.createStatement();
            int count=statement.executeUpdate(str_value);//计算执行了多少条SQL语句
            if(count > 0){
                System.out.println("删除成功!");
            }else{
                System.err.println("删除失败");
            }
            con2.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

修改数据类

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class XiuGai {
    String sqlStr;
    String sql_str;
    ChaXun chaXun=new ChaXun();
    Bookinfo bookinfo=new Bookinfo();
    String ISBN;
    String  bookname;
    float price;
    public void choose(){
        System.out.println(">>>>请选择要修改的书本,输入数字1通过书名来选择,输入数字2通过ISBN码来选择,输入数字3退出程序,输入其他重新选择:<<<<<");
        Scanner scanner=new Scanner(System.in);
        String chooseStr=scanner.next();
        if (chooseStr.equals("1"))
        {
            System.out.println(">>>>请输入要修改的书本名称:");
            Scanner scanner2=new Scanner(System.in);
            String setBookname1= scanner2.nextLine();
            String setbookname2="'"+setBookname1+"'";
            sqlStr="select ISBN,bookname,price from book where bookname="+setbookname2;
            chaXun.jdbc(sqlStr);
            if (chaXun.rs_number!=0)//判断是否匹配到书本
            {
                ISBN=bookinfo.getISBN();//获取要修改的书的信息
                bookname=bookinfo.getBookname();
                xiugai();
            }

        }
        else if (chooseStr.equals("2"))
        {
            System.out.println(">>>>>请输入要修改的书本的ISBN码:");
            Scanner scanner3=new Scanner(System.in);
            String setbookisbn= scanner3.next();
            String setbookisbn2="'"+setbookisbn+"'";
            sqlStr="select ISBN,bookname,price from book where ISBN="+setbookisbn2;
            chaXun.jdbc(sqlStr);
            if (chaXun.rs_number!=0)
            {
                ISBN=bookinfo.getISBN();
                bookname=bookinfo.getBookname();
                xiugai();
            }
        }

        else if (chooseStr.equals("3"))
        {
            System.exit(0);
        }
        else
            choose();
    }
    public void  xiugai()
    {
        System.out.println("请选择要修改该书的信息");
        System.out.println(">>>>输入数字1修改该书本的名称,输入数字2修改该书本的ISBN码,输入数字3修改该书本的价格,输入数字4退出程序,输入其他重新选择:");
        Scanner scanner=new Scanner(System.in);
        String chooseStr=scanner.next();
        if (chooseStr.equals("1"))
        {
            System.out.println(">>>>请输入要修改的书本名称:");
            Scanner scanner2=new Scanner(System.in);
            String setBookname1= scanner2.nextLine();
            String setbookname2="'"+setBookname1+"'";
            sql_str="UPDATE book \n" +
                    "SET bookname= \n" +setbookname2+
                    "WHERE bookname="+"'"+bookname+"'";
            jdbc(sql_str);
        }
        else if (chooseStr.equals("2"))
        {
            System.out.println(">>>>>请输入要修改的书本的ISBN码:");
            Scanner scanner3=new Scanner(System.in);
            String setbookisbn= scanner3.nextLine();
            String setbookisbn2="'"+setbookisbn+"'";
            sql_str="UPDATE book \n" +
                    "SET ISBN= \n" +setbookisbn2+
                    "WHERE ISBN="+"'"+ISBN+"'";
            jdbc(sql_str);
        }
        else if (chooseStr.equals("3"))
        {
            System.out.println(">>>>>请输入要修改的书本的价格:");
            Scanner scanner3=new Scanner(System.in);
            String setbookprice= scanner3.next();
            String setbookprice2="'"+setbookprice+"'";
            sql_str="UPDATE book \n" +
                    "SET price= \n" +setbookprice2+
                    "WHERE bookname="+"'"+bookname+"'";
            jdbc(sql_str);
        }
        else if (chooseStr.equals("4"))
        {
            System.exit(0);
        }
        else
            xiugai();
    }

    private void jdbc(String sql_str) {
        Statement statement;
        Connection con2 = GetDBConnection.connectDB("library", "root", "x20000j08r01");//链接数据库
        try{
            statement = con2.createStatement();
            int count=statement.executeUpdate(sql_str);//计算执行了多少条SQL语句
            if(count > 0){
                System.out.println("修改成功!");
            }else{
                System.err.println("修改失败");
            }
            con2.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

查询类

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class ChaXun {
    Statement statement;
    Connection con2;
    ResultSet rs;
    int rs_number=0;
    String sqlStr;
    Bookinfo bookinfo=new Bookinfo();
    public void choose(){
        System.out.println("请选择查询方式(支持模糊查询):");
        System.out.println(">>>>输入数字1通过书名来查询,输入数字2通过ISBN码来查询,输入数字3退出,输入其他重新选择:<<<<");
        Scanner scanner=new Scanner(System.in);
        String chooseStr=scanner.next();
        if (chooseStr.equals("1"))
        {
            System.out.println(">>>>请输入要查询的书本名称:");
            Scanner scanner2=new Scanner(System.in);
            String setBookname1= scanner2.next();
            String setbookname2="'"+"%"+setBookname1+"%"+"'";
            sqlStr="select ISBN,bookname,price from book where bookname like "+setbookname2;
            jdbc(sqlStr);

        }
        else if (chooseStr.equals("2"))
        {
            System.out.println(">>>>>请输入要查询的书本的ISBN码:");
            Scanner scanner3=new Scanner(System.in);
            String setbookisbn= scanner3.next();
            String setbookisbn2="'"+"%"+setbookisbn+"%"+"'";
            sqlStr="select ISBN,bookname,price from book where ISBN like "+setbookisbn2;
            jdbc(sqlStr);

        }

        else if (chooseStr.equals("3"))
        {
           System.exit(0);
        }
        else
            choose();
    }
    public void jdbc(String sqlStr)
    {
        con2=GetDBConnection.connectDB("library","root","x20000j08r01");
        try {
            statement= con2.createStatement();
            rs=statement.executeQuery(sqlStr);
            while (rs.next())
            {
                bookinfo.setISBN(rs.getString(1));
                bookinfo.setBookname(rs.getString(2));
                bookinfo.setPrice(rs.getFloat(3));
                System.out.println(bookinfo.toString());
                rs_number++;
            }
            con2.close();
            if (rs_number==0)
            {
                System.err.println("未查询到数据!");
            }
            else
                System.out.println("查询成功一共查询到"+rs_number+"本书!");
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
}

bookinfo类

public class Bookinfo {
    static String ISBN;
    static String bookname;
    static float price;
    public String getISBN() {
        return ISBN;
    }
    public void setISBN(String ISBN) {
        this.ISBN = ISBN;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "书的信息为{" +
                "ISBN='" + ISBN + '\'' +
                ", bookname='" + bookname + '\'' +
                ", price=" + price +
                '}';
    }
}

数据库链接类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class GetDBConnection {
//todo 记得在运行程序前检查有没有打开MySQL服务,如果没有就执行命令:net start mysql,关闭指令为:net stop mysql(记得用管理员身份运行cmd)
    public static Connection connectDB( String DBName,String id,String p)
    {
        Connection con=null;
        String url="jdbc:mysql://localhost:3306/"+DBName+"?useSSL=true&serverTime=CST&characterEncoding=utf-8";
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
           con= DriverManager.getConnection(url,id,p);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }
}

运行截图

这是运行结果截图

总结

本项目的仓库地址为图书管理2.0,相比之前的图书管理1.0利用文本文件来充当数据库新版的图书管理系统使用了MySQL数据库来储存数据,与之前相比还增加了一个修改功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值