图书馆管理系统(对于数据库)

db.properties:

url=jdbc:mysql://localhost:3306/soft?characterEncoding=UTF-8
user=root
password=
driver=com.mysql.jdbc.Driver

//数据库连接
DBUtils :

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

public class DBUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;

   static{
       try {
           Properties properties = new Properties();
           ClassLoader classLoader = DBUtils.class.getClassLoader();
           URL res = classLoader.getResource("db.properties");
           String path = res.getPath();
           properties.load(new FileReader(path));
           //获取数据
           url = properties.getProperty("url");
           user = properties.getProperty("user");
           password = properties.getProperty("password");
           driver = properties.getProperty("driver");
           System.out.println(url + "  " + password + "  " + user);
           Class.forName("com.mysql.jdbc.Driver");
       } catch (IOException e) {
           e.printStackTrace();
       } catch (ClassNotFoundException e) {
           e.printStackTrace();
       }
   }

   public static Connection getConn() throws SQLException {
       return DriverManager.getConnection(url, user, password);
   }

    public static void close(PreparedStatement pst, Connection conn) {
        if( pst != null){
            try {
                pst.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if( conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        try {
            Connection conn = DBUtils.getConn();
            if (conn != null) {
                System.out.println("连接成功");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

//实体类
Library :

    public class Library {
    private int bId;
    private String bName;
    private String author;
    private String bStyle;
    private String publish;
    public Library() {
    }

    public Library(int bId, String bName, String author, String bStyle, String publish) {
        this.bId = bId;
        this.bName = bName;
        this.author = author;
        this.bStyle = bStyle;
        this.publish = publish;
    }

    public int getbId() {
        return bId;
    }

    public void setbId(int bId) {
        this.bId = bId;
    }

    public String getbName() {
        return bName;
    }

    public void setbName(String bName) {
        this.bName = bName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getbStyle() {
        return bStyle;
    }

    public void setbStyle(String bStyle) {
        this.bStyle = bStyle;
    }

    public String getPublish() {
        return publish;
    }

    public void setPublish(String publish) {
        this.publish = publish;
     }
    }

//管理系统
LibrarySystem :

import com.ndky.devil4.DbConn;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class LibrarySystem {
    private static Connection conn=null;
    private static PreparedStatement pst=null;
    Scanner sc=new Scanner(System.in);
    ResultSet rs=null;
    //初始界面
    public void print(Library library) {

        boolean flag = true;
        while (flag) {
            System.out.println("******************图书馆系统******************");
            System.out.println("*********1 添加图书信息      *****************");
            System.out.println("*********2 查看图书信息      *****************");
            System.out.println("*********3 修改图书信息      *****************");
            System.out.println("*********4 删除图书信息      *****************");
            System.out.println("*********5 退出              *****************");
            int i = sc.nextInt();
            switch (i) {
                case 1:
                    InsertBook(library);
                    break;
                case 2:
                    lookBook(library);
                    break;
                case 3:
                    UpdateBook(library);
                    break;
                case 4:
                    deleteBook(library);
                    break;
                case 5:
                    flag = false;
                    break;
                default:
                    System.out.println("请输入1-5");
                    break;
            }
        }
    }
//删除图书
    private void deleteBook(Library library) {
        try {
            conn = DbConn.GetConnection();
            String sql = "delete from "+ library.getClass().getSimpleName().toLowerCase() +  "  where bName=?";
            pst = conn.prepareStatement(sql);
            System.out.println("请输入书名:");
            library.setbName(sc.next());
            pst.setString(1, library.getbName());
            int i = pst.executeUpdate();
            System.out.println(i);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

//修改图书
    private void UpdateBook(Library library) {
        try {
            conn = DbConn.GetConnection();
            String sql = "update "+ library.getClass().getSimpleName().toLowerCase() +  " set bStyle=? where bName=?";
            pst = conn.prepareStatement(sql);
            System.out.println("请输入类型:");
            library.setbStyle(sc.next());
            System.out.println("请输入书名:");
            library.setbName(sc.next());
            pst.setString(1, library.getbStyle());
            pst.setString(2, library.getbName());
            int count = pst.executeUpdate();
            System.out.println(count);
            DBUtils.close(pst,conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
//查看图书
    private void lookBook(Library library) {
        try {
            conn = DbConn.GetConnection();
            String sql = "select * from "+ library.getClass().getSimpleName().toLowerCase();
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("bId"));
                System.out.println(rs.getString("bName"));
                System.out.println(rs.getString("author"));
                System.out.println(rs.getString("bStyle"));
                System.out.println(rs.getString("publish"));
            }
            DBUtils.close(pst,conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
//增加图书
    public  void InsertBook(Library library) {
        try {
            conn = DBUtils.getConn();
            String sql = "insert into "+ library.getClass().getSimpleName().toLowerCase() +  " (bName,author,bStyle,publish) values(?,?,?,?)";
           /* String sql1 = "insert into " + library.getClass().getSimpleName().toLowerCase() + "(";
            String sql2 = ") values(";
            Field[] fields = library.getClass().getDeclaredFields();
            for (int i = 1; i < fields.length; i++) {
                fields[i].setAccessible(true);
                if (i == 1) {
                    sql1 = sql1 + fields[i];
                    sql2 = sql2 + "?";
                } else {
                    sql1 = sql1 + "," + fields[i];
                    sql2 = sql2 + ",?";
                }
            }
            String sql = sql1 + sql2 + ")";*/
            System.out.println(sql);
            pst = conn.prepareStatement(sql);
            System.out.println("请输入书名:");
            library.setbName(sc.next());
            System.out.println("请输入作者:");
            library.setAuthor(sc.next());
            System.out.println("请输入类型:");
            library.setbStyle(sc.next());
            System.out.println("请输入出版社:");
            library.setPublish(sc.next());
            pst.setString(1, library.getbName());
            pst.setString(2, library.getAuthor());
            pst.setString(3, library.getbStyle());
            pst.setString(4, library.getPublish());
            int i = pst.executeUpdate();
            System.out.println(i);
            DBUtils.close(pst,conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {
        Library library=new Library();
        LibrarySystem libarySystem = new LibrarySystem();
        libarySystem.print(library);
    }
}
2.2 主要功能说明: 一.欢迎界面:改界面主要是作为本系统的封面,程序运行后该界面会出 现在屏幕中间,操作者可以点击该界面即可计入下一个窗体。 二.入口:本系统中权限的设置主要是靠入口,选择不同的登录身份进入 系统后将会得到不一样的执行权限。若选择退出系统,则将会退出整个软件。 三. 读者登陆界面:该窗体主要是给一般读者登陆系统执行图书的查询和借阅功能的,当读者输入的编号和密码正确后即可进入系统,当用户输入用户名和密码出现错误后,系统会提示用户重新输入。当用户三次输入均出现错误时,系统会自动关闭。 四.管理员登陆界面:该窗体主要是提供给系统管理员进入系统进行操作的,其中用法和读者登陆界面一样,不同的是进入系统后具有的操作权限不同。管理员具有全部权限。 五.图书管理:(1)图书信息录入界面:此界面主要用于首次录入图书信 息,因此该界面应该具有输入图书所有信息的元素, 如图书编号,书名,书号,作者…. (2)图书信息修改界面:此界面主要是用于已经存在馆里的图书的信息的修改,因此该界面应该有查找和修改的功能,所以除了具有图书信息录入界面的元素外,还应该有上一条,下一条,查询等元素。 六.读者管理:(1)读者注册界面:此界面主要是用于录入新读者的信息, 因此此界面应该具有读者的所有信息,另外应该还具 有赋予读者一个进入系统的密码的元素。 (2)读者信息修改:此界面主要用于对已经注册过本系统 的读者的信息的修改,包括密码等等元素。 七.图书服务:(1)图书查询界面:此界面主要是用于查询,借阅,预 约图书,查询时可按图书的书名,作者,出版社来 查询,查询到的图书用表格显示,并且可以显示图书 的借阅情况。 (2)借书还书界面:该界面主要是用于读者的借书和还 书的情况,并且读者可以归还图书。 八.数据安全:(1)数据备份界面:该界面主要用于对本系统的重要数 据进行备份,以便不小心失去数据后可以恢复数据 提高系统的安全性。 (2)数据恢复界面:该界面是和数据备份界面配合使用的,当需要恢复已经备份的数据时,即可使用该窗体。 九.系统管理:(1)帮助和相关界面:该界面主要是向使用本系统的读者或者管理员提供相应的提示和帮助,同时显示一些关于本系统的相关信息。 (2)密码设置界面:该界面主要是用于管理员的注册和密码修改,注册界面可以注册新的管理员,密码修改界面可以对已经存在的管理员的信息的修改。 (3)退出本系统界面:该界面主要是用来安全退出整个软件,包括退出了vfp软件 (4)恢复vfp系统界面:该界面主要是用来退出当前运行的图书管理系统,恢复到vfp系统继续进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值