目录
前言
部分界面截图
登录界面
注册界面
图书管理界面
关于我们界面
部分代码
登录界面
数据库工具类
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
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中的视图