java+Mysql 图书管理系统(idea)
作者:mmseoamin日期:2023-12-13

目录

前言

部分界面截图

登录界面

注册界面

图书管理界面

关于我们界面

 部分代码

登录界面

数据库工具类


前言


jdk 版本:openjdk version "11.0.12"

MySql版本:5.7.40

加(vx:lixuanzi99313)帮调试 调试说明:远程协助

源代码:链接:https://github.com/lixuanzi/LibraryMansgementSystem

演示视频

【java+Mysql 图书管理系统 (idea) 附源码】 https://www.bilibili.com/video/BV1hx4y1u7af/?share_source=copy_web&vd_source=dd4a926a8cb08f13ae20e4d7331b51ca 

部分界面截图


登录界面

java+Mysql 图书管理系统(idea),第1张

注册界面

java+Mysql 图书管理系统(idea),第2张

图书管理界面

java+Mysql 图书管理系统(idea),第3张

关于我们界面

java+Mysql 图书管理系统(idea),第4张

 部分代码


登录界面

package com.lizixuan.ui;
import com.lizixuan.component.BackGroundPanel;
import com.lizixuan.util.JDBCUtils;
import com.lizixuan.util.PathUtils;
import com.lizixuan.util.ScreenUtils;
import com.lizixuan.verification.Login;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.Connection;
import java.sql.SQLException;
public class ApplicationMainInterface {
    JFrame jFrame = new JFrame("图书管理系统");
    final int WIDTH = 600;
    final int HEIGHT = 400;
    // 组装视图
    public void init() throws Exception {
        // 设置窗口居中
        jFrame.setBounds((ScreenUtils.getScreenWidth() - WIDTH) / 2, (ScreenUtils.getScreenHeight() - HEIGHT) / 2, WIDTH, HEIGHT);
        // 设置大小固定
        jFrame.setResizable(false);
        jFrame.setIconImage(ImageIO.read(new File(PathUtils.getRealPath("favicon.png"))));
        // 设置窗口内容
        BackGroundPanel bgPanel = new BackGroundPanel(ImageIO.read(new File(PathUtils.getRealPath("bg.jpg"))));
        bgPanel.setBounds(0, 0, WIDTH, HEIGHT);
        // 组装登录
        Box vBox = Box.createVerticalBox();
        // 组装用户名
        Box uBox = Box.createHorizontalBox();
        JLabel uLabel = new JLabel("用户名:");
        JTextField uField = new JTextField(15);
        uBox.add(uLabel);
        uBox.add(Box.createHorizontalStrut(20));
        uBox.add(uField);
        // 组装密码
        Box pBox = Box.createHorizontalBox();
        JLabel pLabel = new JLabel("密    码:");
        JPasswordField pField = new JPasswordField(15);
        pBox.add(pLabel);
        pBox.add(Box.createHorizontalStrut(20));
        pBox.add(pField);
        // 组装按钮
        Box btnBox = Box.createHorizontalBox();
        JButton loginBtn = new JButton("登录");
        JButton regisBtn = new JButton("注册");
        JButton JDBCBtn = new JButton("测试数据库连接");
        // 对登录按钮监听
        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取输入的内容
                String username = uField.getText().trim();
                String password = pField.getText().trim();
                // 初始化 Login
                Login login = new Login();
                login.loginVer(username);
                if (username.equals("admin") && password.equals("123456")) {
                    JOptionPane.showMessageDialog(jFrame, "恭喜,尊贵的超级用户 Admin 登录成功!");
                    try {
                        new ManagerInterface().init("Admin");
                    } catch (Exception ex) {
                        throw new RuntimeException(ex);
                    }
                    jFrame.dispose();
                } else if (password.equals(login.password)) {
                    JOptionPane.showMessageDialog(jFrame, "恭喜,尊贵的用户" + username + " 登录成功!");
                    try {
                        new ManagerInterface().init(username);
                    } catch (Exception ex) {
                        throw new RuntimeException(ex);
                    }
                    jFrame.dispose();
                } else if (login.contains == false) {
                    JOptionPane.showMessageDialog(jFrame, "用户名不存在!");
                } else {
                    JOptionPane.showMessageDialog(jFrame, "帐号或密码有误!", "警告", JOptionPane.ERROR_MESSAGE);
                }
            }
        });
        // 对注册按钮监听
        regisBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    new RegisterInterface().init();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
                jFrame.dispose();
            }
        });
        // 测试数据库连接
        JDBCBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    Connection connection = JDBCUtils.getConnection();
                    if (!connection.isClosed()) {
                        JOptionPane.showMessageDialog(jFrame, "测试数据库连接成功!");
                    } else {
                        JOptionPane.showMessageDialog(jFrame, "测试数据库连接失败!", "警告", JOptionPane.ERROR_MESSAGE);
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        });
        btnBox.add(JDBCBtn);
        btnBox.add(Box.createHorizontalStrut(10));
        btnBox.add(loginBtn);
        btnBox.add(Box.createHorizontalStrut(10));
        btnBox.add(regisBtn);
        // WelCome
        /*JLabel welComeLabel = new JLabel("欢迎您");
        welComeLabel.setFont(new Font("微软雅黑",Font.BOLD,30));
        vBox.add(welComeLabel);*/
        vBox.add(Box.createVerticalStrut(100));
        vBox.add(uBox);
        vBox.add(Box.createVerticalStrut(20));
        vBox.add(pBox);
        vBox.add(Box.createVerticalStrut(40));
        vBox.add(btnBox);
        bgPanel.add(vBox);
        jFrame.add(bgPanel);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
    // 客户端程序入口
    public static void main(String[] args) throws Exception {
        new ApplicationMainInterface().init();
    }
}

数据库工具类

package com.lizixuan.util;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
    // 声明常量
    private static String url;
    private static String user;
    private static String password;
    // 静态代码块加载驱动
    static {
        try {
            InputStream inputStream = ClassLoader.getSystemResourceAsStream("db.properties");
            // 加载配置对象
            Properties properties = new Properties();
            properties.load(inputStream);
            url = properties.getProperty("url");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
        } catch (Exception e) {
            System.out.println("连接失败");;
        }
    }
    // 单列设计模式
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,user,password);
    }
    // 关闭资源
    public static void close(Connection connection, Statement statement) throws SQLException {
        if(connection!=null){
            connection.close();
        }
        if(statement!=null){
            statement.close();
        }
    }
    public static void close(Connection connection, Statement statement, ResultSet resultSet) throws SQLException {
        if(connection!=null){
            connection.close();
        }
        if(statement!=null){
            statement.close();
        }
        if(resultSet!=null){
            resultSet.close();
        }
    }
}
 

上一篇:SQL sever中的视图

下一篇:mysql之row