Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ef9ebbaddd | |||
| 1d90d8b6c4 | |||
| 11c97cb958 | |||
| bea3ef3e43 | |||
| 6d6af4dbf1 | |||
| ea0131ce37 | |||
| 773a387d5f | |||
| 8f53666563 | |||
| aa938c2a7a | |||
| eae0489af6 |
@@ -16,3 +16,8 @@ bin-release/
|
||||
# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
|
||||
# should NOT be excluded as they contain compiler settings and other important
|
||||
# information for Eclipse / Flash Builder.
|
||||
|
||||
# JetBrains
|
||||
*/.idea/
|
||||
*.iml
|
||||
TermFinalHomework/out/
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
- [实验一](实验一.md)
|
||||
|
||||
- ~~实验二 敬请期待~~
|
||||
- [实验二](实验二.sql)
|
||||
|
||||
- [实验三](实验三.sql)
|
||||
|
||||
@@ -30,6 +30,20 @@
|
||||
|
||||
- [实验十](实验十.sql)
|
||||
|
||||
- [实验十一](实验十一.sql)
|
||||
|
||||
- [实验十二](实验十二.sql)
|
||||
|
||||
- [实验十三](实验十三.sql)
|
||||
|
||||
- [实验十四](实验十四.sql)
|
||||
|
||||
- [实验十五](实验十五.md)
|
||||
|
||||
- [实验十六](实验十六.md)
|
||||
|
||||
- [大作业](TermFinalHomework/)
|
||||
|
||||
### 课后作业📖
|
||||
|
||||
[课后作业](课后作业/)
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.LoginFrm.LoginFrm">
|
||||
<grid id="27dc6" binding="panel1" default-binding="true" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<xy x="74" y="20" width="446" height="204"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<font name="PingFang SC"/>
|
||||
</properties>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="1e979" binding="titlePanel" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="North"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="4318d" class="javax.swing.JLabel" binding="titleLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="36" style="1"/>
|
||||
<text value="登录"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="a0f72" binding="bodyPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="40c81" binding="labelPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="West"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="a09bf" binding="uLabelPanel" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="2">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="c9cc0" class="javax.swing.JLabel" binding="uLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="18" style="1"/>
|
||||
<text value="用户名:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="29291" binding="pLabelPanel" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="2">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="dada" class="javax.swing.JLabel" binding="pLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="18" style="1"/>
|
||||
<horizontalAlignment value="10"/>
|
||||
<text value="密码:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="8481c" binding="fieldPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="4d39" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="fc448" class="javax.swing.JTextField" binding="uField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" style="1"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="f1071" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="5fc4f" class="javax.swing.JPasswordField" binding="pField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" style="1"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="2e911" binding="bottomPanel" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="fbf4e" class="javax.swing.JButton" binding="commitButton">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="18" style="1"/>
|
||||
<text value="登录"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.msksbr.LoginFrm;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import com.msksbr.MainFrm.MainFrm;
|
||||
import com.msksbr.SQL.Connector;
|
||||
import com.msksbr.images.EasterEgg;
|
||||
|
||||
public class LoginFrm extends JFrame {
|
||||
private final Connector connector;
|
||||
private final LoginMessangeExpection loginMessangeExpection;
|
||||
private JPanel panel1;
|
||||
private JPanel titlePanel;
|
||||
private JLabel titleLabel;
|
||||
private JPanel bodyPanel;
|
||||
private JPanel bottomPanel;
|
||||
private JButton commitButton;
|
||||
private JPanel labelPanel;
|
||||
private JPanel fieldPanel;
|
||||
private JPanel uLabelPanel;
|
||||
private JPanel pLabelPanel;
|
||||
private JLabel uLabel;
|
||||
private JLabel pLabel;
|
||||
private JTextField uField;
|
||||
private JPasswordField pField;
|
||||
private String username;
|
||||
private String password;
|
||||
|
||||
public LoginFrm() {
|
||||
loginMessangeExpection = new LoginMessangeExpection();
|
||||
setIconImage(new ImageIcon("src/com/msksbr/images/mainicon.png").getImage());
|
||||
try {
|
||||
connector = new Connector();
|
||||
} catch (ClassNotFoundException | SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
setTitle("登录到图书管理系统");
|
||||
setContentPane(panel1);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
pack();
|
||||
setVisible(true);
|
||||
setSize(400, 250);
|
||||
setResizable(false);
|
||||
|
||||
Dimension fieldDimension = new Dimension(250, 30);
|
||||
this.uField.setPreferredSize(fieldDimension);
|
||||
this.pField.setPreferredSize(fieldDimension);
|
||||
|
||||
this.pField.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
|
||||
loginMessangeEntered();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.commitButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
this.commitButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
loginMessangeEntered();
|
||||
}
|
||||
});
|
||||
|
||||
setLocation();
|
||||
setDialogLocation();
|
||||
}
|
||||
|
||||
private void setLocation() {
|
||||
ScreenSize screenSize = new ScreenSize();
|
||||
setLocation(screenSize.width / 2 - getWidth() / 2, screenSize.height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void setDialogLocation() {
|
||||
loginMessangeExpection.setLocation(getX() + getWidth() / 4, getY() + getHeight() / 4);
|
||||
}
|
||||
|
||||
private void loginMessangeEntered() {
|
||||
username = uField.getText();
|
||||
password = new String(pField.getPassword());
|
||||
Boolean ISMessageTrue = isLoginMessageTrue();
|
||||
if (ISMessageTrue) {
|
||||
dispose();
|
||||
try {
|
||||
new MainFrm();
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else {
|
||||
loginMessangeExpection.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
private Boolean isLoginMessageTrue() {
|
||||
if (username.equals("java") && password.equals("beans")) {
|
||||
new EasterEgg();
|
||||
return false;
|
||||
} else {
|
||||
try {
|
||||
ResultSet resultSet = connector.executeQuery("SELECT * FROM users WHERE username = '" + username + "'");
|
||||
if (resultSet != null && resultSet.next()) { // 检查结果集是否不为空
|
||||
if (resultSet.getString("password").equals(password)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.LoginFrm.LoginMessangeExpection">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="248" y="54" width="236" height="131"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="14" style="1"/>
|
||||
<text value="确认"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="42fcc" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="14" style="1"/>
|
||||
<text value="用户名或密码错误"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.msksbr.LoginFrm;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.*;
|
||||
|
||||
public class LoginMessangeExpection extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
|
||||
public LoginMessangeExpection() {
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
setResizable(false);
|
||||
setSize(200, 150);
|
||||
|
||||
setTitle("登录失败");
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
onCancel();
|
||||
}
|
||||
});
|
||||
|
||||
// 点击 X 时调用 onCancel()
|
||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||
addWindowListener(new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
});
|
||||
|
||||
// 遇到 ESCAPE 时调用 onCancel()
|
||||
contentPane.registerKeyboardAction(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onCancel();
|
||||
}
|
||||
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
private void onCancel() {
|
||||
// 必要时在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.msksbr.LoginFrm;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public class ScreenSize {
|
||||
public int width;
|
||||
public int height;
|
||||
public Dimension screenSize;
|
||||
|
||||
public ScreenSize() {
|
||||
screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
||||
width = screenSize.width;
|
||||
height = screenSize.height;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: com.msksbr.Main.Main
|
||||
Class-Path: mysql-connector-j-8.4.0.jar flatlaf-3.2.jar
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.msksbr.Main;
|
||||
|
||||
import com.formdev.flatlaf.FlatDarculaLaf;
|
||||
|
||||
import com.msksbr.LoginFrm.LoginFrm;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
|
||||
FlatDarculaLaf.install();
|
||||
new LoginFrm();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MainFrm">
|
||||
<grid id="27dc6" binding="panel1" default-binding="true" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="742" height="409"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="3e1f8" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="North"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children/>
|
||||
</grid>
|
||||
<grid id="a9381" binding="tablePanel" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="b90f2" class="javax.swing.JLabel" binding="backLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value=""/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="4f963" binding="bottomPanel" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="2">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children/>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.msksbr.MainFrm;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class MainFrm extends JFrame {
|
||||
private Connector connector;
|
||||
private JPanel panel1;
|
||||
private JPanel tablePanel;
|
||||
private JPanel bottomPanel;
|
||||
private JLabel backLabel;
|
||||
private JLabel countMessage = new JLabel();
|
||||
private MenuBar menuBar;
|
||||
|
||||
public MainFrm() throws SQLException, ClassNotFoundException {
|
||||
setIconImage(new ImageIcon("src/com/msksbr/images/mainicon.png").getImage());
|
||||
connector = new Connector();
|
||||
setTitle("图书管理系统");
|
||||
setContentPane(panel1);
|
||||
pack();
|
||||
|
||||
menuBar = new MenuBar();
|
||||
|
||||
|
||||
setJMenuBar(menuBar);
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
setSize(960, 720);
|
||||
|
||||
String countData = "本馆共藏书" + getCount("books") + "本,共记录学生信息" + getCount("students") + "条,已借阅" + getCount("rents") + "本书,人均借阅" + (double) getCount("rents") / getCount("students") + "本";
|
||||
countMessage.setText(countData);
|
||||
bottomPanel.add(countMessage);
|
||||
ImageIcon imageIcon = new ImageIcon("src/com/msksbr/images/backGround.png");
|
||||
imageIcon.setImage(imageIcon.getImage().getScaledInstance(250, 250, 0));
|
||||
|
||||
backLabel.setIcon(imageIcon);
|
||||
|
||||
setMinimumSize(new Dimension(960, 720));
|
||||
|
||||
setLocation();
|
||||
initDialogs();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
private void setLocation() {
|
||||
ScreenSize screenSize = new ScreenSize();
|
||||
setLocation(screenSize.width / 2 - getWidth() / 2, screenSize.height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
|
||||
private void initDialogs() {
|
||||
menuBar.exitItem.addActionListener(
|
||||
new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private int getCount(String table) throws SQLException {
|
||||
ResultSet rs = connector.executeQuery("SELECT COUNT(*) AS bookCount FROM " + table + ";");
|
||||
rs.next();
|
||||
return rs.getInt("bookCount");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
package com.msksbr.MainFrm;
|
||||
|
||||
import com.msksbr.MainFrm.MenuItemDiaog.*;
|
||||
import com.msksbr.MainFrm.MenuItemDiaog.Adder.BookAdder;
|
||||
import com.msksbr.MainFrm.MenuItemDiaog.Adder.RentAdder;
|
||||
import com.msksbr.MainFrm.MenuItemDiaog.Adder.StudentAdder;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class MenuBar extends JMenuBar {
|
||||
public JMenuItem exitItem;
|
||||
protected com.msksbr.MainFrm.MenuItemDiaog.aboutDIalog aboutDIalog;
|
||||
protected AuthorDIalog authorDIalog;
|
||||
|
||||
public MenuBar() {
|
||||
// “文件“菜单
|
||||
JMenu fileMenu = new JMenu("文件");
|
||||
exitItem = new JMenuItem("退出");
|
||||
fileMenu.add(exitItem);
|
||||
|
||||
// ”查询“菜单
|
||||
JMenu searchMenu = new JMenu("查询");
|
||||
JMenuItem bookSearch = new JMenuItem("查询图书信息");
|
||||
bookSearch.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new SearchDIalog("books");
|
||||
}
|
||||
}
|
||||
);
|
||||
JMenuItem studentSearch = new JMenuItem("查询学生信息");
|
||||
studentSearch.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new SearchDIalog("students");
|
||||
}
|
||||
});
|
||||
JMenuItem rentSearch = new JMenuItem("查询借阅信息");
|
||||
rentSearch.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new SearchDIalog("rents");
|
||||
}
|
||||
});
|
||||
searchMenu.add(bookSearch);
|
||||
searchMenu.add(studentSearch);
|
||||
searchMenu.add(rentSearch);
|
||||
|
||||
// ”添加“菜单
|
||||
JMenu addMenu = new JMenu("添加");
|
||||
JMenuItem bookAdd = new JMenuItem("添加图书信息");
|
||||
bookAdd.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new BookAdder();
|
||||
}
|
||||
});
|
||||
JMenuItem studentAdd = new JMenuItem("添加学生信息");
|
||||
studentAdd.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new StudentAdder();
|
||||
}
|
||||
});
|
||||
JMenuItem rentAdd = new JMenuItem("添加借阅信息");
|
||||
rentAdd.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new RentAdder();
|
||||
}
|
||||
});
|
||||
addMenu.add(bookAdd);
|
||||
addMenu.add(studentAdd);
|
||||
addMenu.add(rentAdd);
|
||||
|
||||
// ”删除“菜单
|
||||
JMenu removeMenu = new JMenu("删除");
|
||||
JMenuItem bookRemove = new JMenuItem("删除图书信息");
|
||||
bookRemove.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Remover("books");
|
||||
}
|
||||
});
|
||||
JMenuItem studentRemove = new JMenuItem("删除学生信息");
|
||||
studentRemove.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Remover("students");
|
||||
}
|
||||
});
|
||||
JMenuItem rentRemove = new JMenuItem("删除借阅信息");
|
||||
rentRemove.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new Remover("rents");
|
||||
}
|
||||
});
|
||||
removeMenu.add(bookRemove);
|
||||
removeMenu.add(studentRemove);
|
||||
removeMenu.add(rentRemove);
|
||||
|
||||
// ”关于“菜单
|
||||
JMenu aboutMenu = new JMenu("关于");
|
||||
JMenuItem about = new JMenuItem("关于软件");
|
||||
aboutDIalog = new aboutDIalog();
|
||||
about.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
aboutDIalog.setVisible(true);
|
||||
}
|
||||
});
|
||||
JMenuItem author = new JMenuItem("作者");
|
||||
authorDIalog = new AuthorDIalog();
|
||||
author.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
authorDIalog.setVisible(true);
|
||||
}
|
||||
});
|
||||
JMenuItem MITLicense = new JMenuItem("MIT许可证");
|
||||
MITLicense.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new MITDialog();
|
||||
}
|
||||
});
|
||||
JMenuItem thanksItem = new JMenuItem("鸣谢");
|
||||
thanksItem.addActionListener(
|
||||
new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new AcademyThanksDialog();
|
||||
}
|
||||
}
|
||||
);
|
||||
aboutMenu.add(about);
|
||||
aboutMenu.add(author);
|
||||
aboutMenu.add(MITLicense);
|
||||
aboutMenu.add(thanksItem);
|
||||
|
||||
//将菜单加入菜单栏
|
||||
add(fileMenu);
|
||||
add(searchMenu);
|
||||
add(addMenu);
|
||||
add(removeMenu);
|
||||
add(aboutMenu);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.AcademyThanksDialog">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="OK"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="75e6c" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="bd601" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="新疆理工学院"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="51315" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="78840" class="javax.swing.JLabel" binding="imageLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value=""/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class AcademyThanksDialog extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JLabel imageLabel;
|
||||
|
||||
public AcademyThanksDialog() {
|
||||
setTitle("鸣谢");
|
||||
setContentPane(contentPane);
|
||||
setModal(false);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
imageLabel.setIcon(new ImageIcon("src/com/msksbr/images/academy_logo.png"));
|
||||
pack();
|
||||
setResizable(false);
|
||||
setLocation();
|
||||
setAlwaysOnTop(true);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.Adder.BookAdder">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="添加"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="c66f9" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="West"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="a5571" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="eec5b" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties>
|
||||
<text value="书名:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="8fb87" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="bca8" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties>
|
||||
<text value="类别:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="f4a54" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="6fff7" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties>
|
||||
<text value="书号:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="5edf3" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="4eb7a" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties>
|
||||
<text value="ISBN:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="6ff4f" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="7a6bb" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="7e1ba" class="javax.swing.JTextField" binding="textField1" default-binding="true">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="c22f4" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="dd3f3" class="javax.swing.JTextField" binding="textField2" default-binding="true">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="20b32" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="4c60f" class="javax.swing.JTextField" binding="IDField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="db2b1" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="7e531" class="javax.swing.JTextField" binding="textField4" default-binding="true">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog.Adder;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.print.Book;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class BookAdder extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextField textField1;
|
||||
private JTextField textField2;
|
||||
private JTextField IDField;
|
||||
private JTextField textField4;
|
||||
private Connector connector;
|
||||
private int bID;
|
||||
private String bName;
|
||||
private String bType;
|
||||
private String ISBN;
|
||||
private String sql;
|
||||
|
||||
public BookAdder() {
|
||||
|
||||
try {
|
||||
connector = new Connector();
|
||||
bID = getBookMaxID() + 1;
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
|
||||
IDField.setText(String.valueOf(bID));
|
||||
IDField.setEditable(false);
|
||||
|
||||
setTitle("添加图书信息");
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
|
||||
setResizable(false);
|
||||
pack();
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
bName = textField1.getText();
|
||||
bType = textField2.getText();
|
||||
ISBN = textField4.getText();
|
||||
sql = "INSERT INTO books (book_name,book_id,book_type,ISBN) VALUES ('" + bName + "'," + bID + ",'" + bType + "','" + ISBN + "');";
|
||||
commit2SQL();
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
public int getBookMaxID() throws SQLException {
|
||||
ResultSet rs = connector.executeQuery("SELECT MAX(book_id) AS max_book_id FROM books;");
|
||||
rs.next();
|
||||
return rs.getInt("max_book_id");
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void commit2SQL() {
|
||||
try {
|
||||
connector.executeUpdate(sql);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.Adder.RentAdder">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<xy x="54" y="54" width="264" height="145"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="添加"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="e3beb" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="West"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="9c1af" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="请输入书号:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="c9df7" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="请输入学号:"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="10667" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="60ed0" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="5f80a" class="javax.swing.JTextField" binding="bIDField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="d1af9" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="26f68" class="javax.swing.JTextField" binding="sIDField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog.Adder;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class RentAdder extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextField bIDField;
|
||||
private JTextField sIDField;
|
||||
private int bID;
|
||||
private int sID;
|
||||
private Connector bConnector;
|
||||
private Connector sConnector;
|
||||
private String bookSearchSQL;
|
||||
private String studentSearchSQL;
|
||||
private String updateSQL;
|
||||
private ResultSet bIDResult;
|
||||
private ResultSet sIDResult;
|
||||
|
||||
public RentAdder() {
|
||||
try {
|
||||
bConnector = new Connector();
|
||||
sConnector = new Connector();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
setTitle("添加借阅信息");
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
pack();
|
||||
setResizable(false);
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
try {
|
||||
this.bID = Integer.valueOf(bIDField.getText());
|
||||
this.sID = Integer.valueOf(sIDField.getText());
|
||||
searchSQLMaker();
|
||||
updateSQLMaker();
|
||||
bIDResult = bConnector.executeQuery(bookSearchSQL);
|
||||
sIDResult = sConnector.executeQuery(studentSearchSQL);
|
||||
if (!bIDResult.next()) {
|
||||
JOptionPane.showMessageDialog(this, "未找到该书信息", "错误", JOptionPane.WARNING_MESSAGE);
|
||||
} else if (!sIDResult.next()) {
|
||||
JOptionPane.showMessageDialog(this, "未找到学生信息", "错误", JOptionPane.WARNING_MESSAGE);
|
||||
} else {
|
||||
if (bIDResult.getInt("borrowed_by") == 0) {
|
||||
bConnector.executeUpdate(updateSQL);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "该书已借出", "错误", JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
JOptionPane.showMessageDialog(this, "请输入一个整数", "错误", JOptionPane.ERROR_MESSAGE);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
dispose();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void searchSQLMaker() {
|
||||
this.bookSearchSQL = "SELECT * FROM books WHERE book_id =" + this.bID + ";";
|
||||
this.studentSearchSQL = "SELECT * FROM students WHERE student_id =" + this.sID + ";";
|
||||
}
|
||||
|
||||
private void updateSQLMaker() {
|
||||
this.updateSQL = "UPDATE books SET borrowed_by = " + this.sID + " WHERE book_id =" + this.bID + ";";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.Adder.StudentAdder">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="添加"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="5c571" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="8e179" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties>
|
||||
<text value="姓名:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="19f7f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e5161" class="javax.swing.JTextField" binding="textField1" default-binding="true">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="4197b" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="a91a6" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties>
|
||||
<text value="学号:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="6cf70" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="32fcc" class="javax.swing.JTextField" binding="IDField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="d8df3" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="adb15" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties>
|
||||
<text value="班级:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="cd800" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e20a7" class="javax.swing.JTextField" binding="textField3" default-binding="true">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="9af6b" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="bd9ba" class="javax.swing.JLabel">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties>
|
||||
<text value="性别:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="d4804" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="8ce32" class="javax.swing.JRadioButton" binding="maleRadioButton">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="男"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="27c62" class="javax.swing.JRadioButton" binding="femaleRadioButton">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="女"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog.Adder;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class StudentAdder extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextField textField1;
|
||||
private JTextField IDField;
|
||||
private JTextField textField3;
|
||||
private JRadioButton maleRadioButton;
|
||||
private JRadioButton femaleRadioButton;
|
||||
private Connector connector;
|
||||
private String sName;
|
||||
private int sID;
|
||||
private String sClass;
|
||||
private String sGender;
|
||||
private ButtonGroup genderGroup;
|
||||
private String sql;
|
||||
|
||||
public StudentAdder() {
|
||||
|
||||
try {
|
||||
connector = new Connector();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
genderGroup = new ButtonGroup();
|
||||
genderGroup.add(maleRadioButton);
|
||||
genderGroup.add(femaleRadioButton);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
sID = getStudentMaxID() + 1;
|
||||
IDField.setText(String.valueOf(sID));
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
IDField.setEditable(false);
|
||||
|
||||
setTitle("添加学生信息");
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
|
||||
setSize(new Dimension(260, 265));
|
||||
setResizable(false);
|
||||
pack();
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
sName = textField1.getText();
|
||||
sClass = textField3.getText();
|
||||
sGender = maleRadioButton.isSelected() ? "男" : "女";
|
||||
sql = "INSERT INTO students (student_name,student_id,student_class,student_gender) VALUES ('" + sName + "'," + sID + ",'" + sClass + "','" + sGender + "');";
|
||||
commit2SQL();
|
||||
dispose();
|
||||
}
|
||||
|
||||
private void commit2SQL() {
|
||||
try {
|
||||
connector.executeUpdate(sql);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public int getStudentMaxID() throws SQLException {
|
||||
ResultSet rs = connector.executeQuery("SELECT MAX(student_id) AS max_student_id FROM students;");
|
||||
rs.next();
|
||||
return rs.getInt("max_student_id");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.AuthorDIalog">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="确认"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="fe414" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="56d70" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="1c1ff" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="14"/>
|
||||
<text value="https://gitee.com/msksbr"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="da859" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="1727d" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="a162d" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="16" style="1"/>
|
||||
<text value="御坂昴"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e09f1" binding="iconPanel" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children/>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class AuthorDIalog extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JPanel iconPanel;
|
||||
|
||||
public AuthorDIalog() {
|
||||
setContentPane(contentPane);
|
||||
setModal(false);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
setVisible(false);
|
||||
JLabel authorLabel = new JLabel();
|
||||
authorLabel.setIcon(new ImageIcon("src/com/msksbr/images/AuthorProfile.jpg"));
|
||||
iconPanel.add(authorLabel);
|
||||
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
||||
setTitle("作者");
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
setResizable(false);
|
||||
setAlwaysOnTop(true);
|
||||
pack();
|
||||
setLocation();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.MITDialog">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="366"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="e3588" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="North"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="a6e23" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="本项目已在gitee.com开源"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="94766" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="确认"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="f0964" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="802af" class="javax.swing.JTextPane" binding="MITPane">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties>
|
||||
<text value=""/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class MITDialog extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextPane MITPane;
|
||||
|
||||
public MITDialog() {
|
||||
setTitle("开源信息");
|
||||
MITPane.setEditable(false);
|
||||
MITPane.setText("MIT License\n" +
|
||||
"\n" +
|
||||
"Copyright (c) 2024 御坂昴\n" +
|
||||
"\n" +
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy\n" +
|
||||
"of this software and associated documentation files (the \"Software\"), to deal\n" +
|
||||
"in the Software without restriction, including without limitation the rights\n" +
|
||||
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n" +
|
||||
"copies of the Software, and to permit persons to whom the Software is\n" +
|
||||
"furnished to do so, subject to the following conditions:\n" +
|
||||
"\n" +
|
||||
"The above copyright notice and this permission notice shall be included in all\n" +
|
||||
"copies or substantial portions of the Software.\n" +
|
||||
"\n" +
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n" +
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n" +
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n" +
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n" +
|
||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n" +
|
||||
"SOFTWARE.\n");
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
setModal(false);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
|
||||
pack();
|
||||
setResizable(false);
|
||||
setLocation();
|
||||
setAlwaysOnTop(true);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.Remover">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="删除"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="1b7c" class="javax.swing.JLabel" binding="idLable">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties>
|
||||
<text value=""/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="8147a" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="19c5" class="javax.swing.JTextField" binding="idField">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<columns value="15"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class Remover extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JLabel idLable;
|
||||
private JTextField idField;
|
||||
private String table;
|
||||
private String Searchsql;
|
||||
private String searchSQL;
|
||||
private String deleteSQL;
|
||||
private String searchErrMsg;
|
||||
private int id;
|
||||
private Connector searchConnector;
|
||||
private Connector deleteConnector;
|
||||
|
||||
public Remover(String table) {
|
||||
try {
|
||||
searchConnector = new Connector();
|
||||
deleteConnector = new Connector();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
this.table = table;
|
||||
if (table.equals("books")) {
|
||||
setTitle("删除图书信息");
|
||||
idLable.setText("请输入书号:");
|
||||
searchErrMsg = "未找到该图书信息";
|
||||
} else if (table.equals("students")) {
|
||||
setTitle("删除学生信息");
|
||||
idLable.setText("请输入学号:");
|
||||
searchErrMsg = "未找到该学生信息";
|
||||
} else if (table.equals("rents")) {
|
||||
setTitle("删除借阅信息");
|
||||
idLable.setText("请输入书号:");
|
||||
searchErrMsg = "未找到该借阅信息";
|
||||
}
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
pack();
|
||||
setResizable(false);
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
try {
|
||||
this.id = Integer.valueOf(idField.getText());
|
||||
searchSQLMaker();
|
||||
deleteSQLMaker();
|
||||
ResultSet rs = searchConnector.executeQuery(searchSQL);
|
||||
if (rs.next()) {
|
||||
deleteConnector.executeUpdate(deleteSQL);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, searchErrMsg, "错误", JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
JOptionPane.showMessageDialog(this, "请输入一个整数", "错误", JOptionPane.ERROR_MESSAGE);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
dispose();
|
||||
}
|
||||
|
||||
private void searchSQLMaker() {
|
||||
if (table.equals("books")) {
|
||||
searchSQL = "select * from " + table + " where book_id=" + id + ";";
|
||||
} else if (table.equals("students")) {
|
||||
searchSQL = "select * from " + table + " where student_id=" + id + ";";
|
||||
} else if (table.equals("rents")) {
|
||||
searchSQL = "select * from " + table + " where book_id=" + id + ";";
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteSQLMaker() {
|
||||
if (table.equals("books")) {
|
||||
deleteSQL = "delete from " + table + " where book_id=" + id + ";";
|
||||
} else if (table.equals("students")) {
|
||||
deleteSQL = "delete from " + table + " where student_id=" + id + ";";
|
||||
} else if (table.equals("rents")) {
|
||||
deleteSQL = "UPDATE books SET borrowed_by = null WHERE book_id=" + id + ";";
|
||||
}
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.SearchDIalog">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="查询"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="8f9fb" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="West"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="a8662" class="javax.swing.JLabel" binding="messageLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="请输入学号:"/>
|
||||
</properties>
|
||||
</component>
|
||||
<hspacer id="c8446">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
<vspacer id="36605">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="87c34" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="90640" class="javax.swing.JTextField" binding="idFIeld">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="150" height="-1"/>
|
||||
</grid>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<columns value="10"/>
|
||||
</properties>
|
||||
</component>
|
||||
<hspacer id="a6bdf">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
<vspacer id="ceec6">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
import com.msksbr.SQL.Connector;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class SearchDIalog extends JDialog {
|
||||
public JLabel messageLabel;
|
||||
protected int idInt;
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextField idFIeld;
|
||||
private String table;
|
||||
|
||||
public SearchDIalog(String table) {
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
if (table.equals("books")) {
|
||||
this.table = "books";
|
||||
this.setTitle("查询图书信息");
|
||||
messageLabel.setText("请输入书号:");
|
||||
} else if (table.equals("students")) {
|
||||
this.table = "students";
|
||||
this.setTitle("查询学生信息");
|
||||
messageLabel.setText("请输入学号:");
|
||||
} else if (table.equals("rents")) {
|
||||
this.table = "rents";
|
||||
this.setTitle("查询借阅信息");
|
||||
messageLabel.setText("请输入书号:");
|
||||
}
|
||||
setListener();
|
||||
pack();
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void setListener() {
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
idFIeld.addKeyListener(new KeyAdapter() {
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
|
||||
onOK();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
ResultSet rs = SQLExe();
|
||||
String message = "";
|
||||
try {
|
||||
if (rs != null && rs.next()) {
|
||||
String title = "";
|
||||
if (table.equals("books")) {
|
||||
message = "书名:\t" + rs.getString("book_name") + "\n类别:\t" + rs.getString("book_type") + "\n书号:\t" + rs.getInt("book_id") + "\nISBN:\t" + rs.getString("ISBN");
|
||||
title = "图书信息";
|
||||
} else if (table.equals("students")) {
|
||||
message = "学生姓名:\t" + rs.getString("student_name") + "\n学号:\t" + rs.getInt("student_id") + "\n班级:\t" + rs.getString("student_class") + "\n性别:\t" + rs.getString("student_gender");
|
||||
title = "学生信息";
|
||||
} else if (table.equals("rents")) {
|
||||
message = "学生姓名:\t" + rs.getString("student_name") + "\n学号:\t" + rs.getInt("student_id") + "\n班级:\t" + rs.getString("student_class") + "\n性别:\t" + rs.getString("student_gender") + "\n书名:\t" + rs.getString("book_name") + "\n书号:\t" + rs.getInt("book_id") + "\n类别:\t" + rs.getString("book_type") + "\nISBN:\t" + rs.getString("ISBN");
|
||||
title = "借阅信息";
|
||||
}
|
||||
new showMessae(message, title);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "未找到", "未找到", JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private ResultSet SQLExe() {
|
||||
ResultSet rs = null;
|
||||
try {
|
||||
idInt = Integer.valueOf(idFIeld.getText());
|
||||
Connector connector = new Connector();
|
||||
rs = connector.executeQuery(SQLExeMaker(table));
|
||||
} catch (NumberFormatException e) {
|
||||
JOptionPane.showMessageDialog(this, "请输入一个整数", "错误", JOptionPane.ERROR_MESSAGE);
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
private String SQLExeMaker(String table) {
|
||||
if (table.equals("books")) {
|
||||
return "SELECT * FROM books WHERE book_id = " + idInt + ";";
|
||||
} else if (table.equals("students")) {
|
||||
return "SELECT * FROM students WHERE student_id = " + idInt + ";";
|
||||
} else if (table.equals("rents")) {
|
||||
return "SELECT * FROM rents WHERE book_id = " + idInt + ";";
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.aboutDIalog">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="确认"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="f8413" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="48047" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="14"/>
|
||||
<text value="https://gitee.com/msksbr/system-homework-in-the-library"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="bae5e" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="b98e5" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="58e29" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font name="PingFang SC" size="16" style="1"/>
|
||||
<text value="图书管理系统 Demo"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="d8804" binding="iconPanel" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children/>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class aboutDIalog extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JPanel iconPanel;
|
||||
|
||||
public aboutDIalog() {
|
||||
setTitle("关于图书管理系统");
|
||||
setVisible(false);
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
setResizable(false);
|
||||
JLabel iconLabel = new JLabel();
|
||||
iconLabel.setIcon(new ImageIcon("src/com/msksbr/images/logo_128.png"));
|
||||
iconPanel.add(iconLabel);
|
||||
setModal(false);
|
||||
setAlwaysOnTop(true);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
pack();
|
||||
setLocation();
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.MainFrm.MenuItemDiaog.showMessae">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<text value="OK"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="165c3" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="b32d2" class="javax.swing.JTextPane" binding="textPane1" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="6" anchor="0" fill="3" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="150" height="50"/>
|
||||
</grid>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="text"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.msksbr.MainFrm.MenuItemDiaog;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class showMessae extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JTextPane textPane1;
|
||||
|
||||
public showMessae(String message, String title) {
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
this.textPane1.setText(message);
|
||||
this.setTitle(title);
|
||||
textPane1.setEditable(false);
|
||||
pack();
|
||||
setResizable(false);
|
||||
setCenterLocation();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void setCenterLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.msksbr.SQL;
|
||||
|
||||
import java.sql.*;
|
||||
|
||||
public class Connector {
|
||||
private Connection conn;
|
||||
private Statement stmt;
|
||||
private String url="sqlmsksbr.com";
|
||||
private Integer port=1433;
|
||||
private String username="sa";
|
||||
private String password="nothx";
|
||||
private String database="book";
|
||||
private Boolean encrypted=false;
|
||||
|
||||
private String loginURL=new UserInfo(url,port,database,username,password,encrypted).GetUserInfo();
|
||||
|
||||
public Connector() throws ClassNotFoundException, SQLException {
|
||||
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
|
||||
conn = DriverManager.getConnection(loginURL);
|
||||
stmt = conn.createStatement();
|
||||
}
|
||||
|
||||
public ResultSet executeQuery(String query) throws SQLException {
|
||||
return stmt.executeQuery(query);
|
||||
}
|
||||
|
||||
public int executeUpdate(String query) throws SQLException {
|
||||
return stmt.executeUpdate(query);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.msksbr.SQL;
|
||||
|
||||
public class UserInfo {
|
||||
private String url;
|
||||
private Integer port;
|
||||
private String database;
|
||||
private String username;
|
||||
private String password;
|
||||
private Boolean encrypted;
|
||||
|
||||
public UserInfo(String url, Integer port, String database, String username, String password,boolean encrypted) {
|
||||
this.url = url;
|
||||
this.port = port;
|
||||
this.database = database;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.encrypted = encrypted;
|
||||
}
|
||||
|
||||
public String GetUserInfo(){
|
||||
String LoginURL;
|
||||
LoginURL = "jdbc:sqlserver://";
|
||||
LoginURL=LoginURL+url;
|
||||
LoginURL=LoginURL+":"+port.toString();
|
||||
LoginURL=LoginURL+";databaseName="+database;
|
||||
LoginURL=LoginURL+";user="+username;
|
||||
LoginURL=LoginURL+";password="+password;
|
||||
LoginURL=LoginURL+";encrypt="+encrypted.toString().toLowerCase();
|
||||
return LoginURL;
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 75 KiB |
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.msksbr.images.EasterEgg">
|
||||
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="10" left="10" bottom="10" right="10"/>
|
||||
<constraints>
|
||||
<xy x="48" y="54" width="436" height="297"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="94766" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="9538f" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="e7465" class="javax.swing.JButton" binding="buttonOK">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Coding!"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e3588" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="3b48b" layout-manager="FlowLayout" hgap="5" vgap="5" flow-align="1">
|
||||
<constraints border-constraint="South"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="76717" class="javax.swing.JLabel">
|
||||
<constraints/>
|
||||
<properties>
|
||||
<font size="14" style="1"/>
|
||||
<text value="Coding with JavaBeans!"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="283b1" layout-manager="GridBagLayout">
|
||||
<constraints border-constraint="Center"/>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="9b6a4" class="javax.swing.JLabel" binding="imageLable">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value=""/>
|
||||
</properties>
|
||||
</component>
|
||||
<hspacer id="29912">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
<vspacer id="5cc54">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="0.0"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.msksbr.images;
|
||||
|
||||
import com.msksbr.LoginFrm.ScreenSize;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class EasterEgg extends JDialog {
|
||||
private JPanel contentPane;
|
||||
private JButton buttonOK;
|
||||
private JLabel imageLable;
|
||||
|
||||
public EasterEgg() {
|
||||
setTitle("Easter Egg!");
|
||||
setContentPane(contentPane);
|
||||
setModal(true);
|
||||
getRootPane().setDefaultButton(buttonOK);
|
||||
imageLable.setIcon(new ImageIcon("src/com/msksbr/images/BuzzBeans.png"));
|
||||
|
||||
buttonOK.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
onOK();
|
||||
}
|
||||
});
|
||||
|
||||
pack();
|
||||
setResizable(false);
|
||||
setLocation();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private void onOK() {
|
||||
// 在此处添加您的代码
|
||||
dispose();
|
||||
}
|
||||
|
||||
public void setLocation() {
|
||||
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 110 KiB |
@@ -111,14 +111,12 @@
|
||||
<tr>
|
||||
<td>主文件</td>
|
||||
<td>
|
||||
✅
|
||||
是
|
||||
</td>
|
||||
<td>
|
||||
🟩
|
||||
</td>
|
||||
<td>
|
||||
🟩
|
||||
否
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>最大尺寸</td>
|
||||
@@ -157,7 +155,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### 实现
|
||||
|
||||
其他**略**,只介绍如何增加文件
|
||||
|
||||
@@ -42,7 +42,7 @@ CREATE TABLE 课程表
|
||||
课程性质 VARCHAR(10) CHECK(课程性质 IN('公共基础','专业基础','专业选修','任意选修')),
|
||||
FOREIGN KEY(责任教师) REFERENCES 教师表(教师编号)
|
||||
);
|
||||
--(5) 选课表
|
||||
-- (5) 选课表
|
||||
CREATE TABLE 选课表(
|
||||
学号 VARCHAR(8),
|
||||
课程编号 VARCHAR(8),
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
-- 1.用户账号管理。
|
||||
-- (1)利用Transact-SQL 创建。
|
||||
-- 创建SQL Server 认证登录名
|
||||
CREATE LOGIN [用户名] WITH PASSWORD = '密码';
|
||||
-- 创建数据库用户并将其关联到登录名
|
||||
USE [目标数据库名];
|
||||
CREATE USER [用户名] FOR LOGIN [用户名];
|
||||
-- (2)查看用户账号。在“对象资源管理器”中,展开“安全性”文件夹下的“登录名”,可查看已创建的用户账号。
|
||||
-- 查询已创建的用户账号
|
||||
USE [目标数据库名];
|
||||
SELECT name FROM sys.database_principals WHERE
|
||||
type_desc = 'SQL_USER';
|
||||
-- (3)修改用户账号。对于需要修改的登录名,右击选择“属性”,在打开的对话框中修改用户信息,如密码、默认数据库等。
|
||||
-- 修改用户名
|
||||
ALTER LOGIN [旧用户名] WITH NAME = [新用户名];
|
||||
-- 修改用户账号密码
|
||||
ALTER LOGIN [用户名] WITH PASSWORD = '新密码';
|
||||
-- 修改用户账号的默认数据库
|
||||
ALTER LOGIN [用户名] WITH DEFAULT_DATABASE = [新数据库名];
|
||||
-- 2.设置用户权限。
|
||||
-- (1)确定需要设置权限的用户账号。
|
||||
-- (2)使用
|
||||
USE [数据库名]
|
||||
-- 选择目标数据库。
|
||||
-- (3)使用
|
||||
GRANT、DENY、REVOKE
|
||||
-- 命令来分配、拒绝或移除权限。
|
||||
-- 授予用户SELECT 权限
|
||||
USE [目标数据库名];
|
||||
GRANT SELECT ON [表名] TO [用户名];
|
||||
-- 撤销用户SELECT 权限
|
||||
USE [目标数据库名];
|
||||
REVOKE SELECT ON [表名] FROM [用户名];
|
||||
-- 3.角色管理
|
||||
-- (1)创建角色。
|
||||
-- (1)使用USE [数据库名]选择目标数据库。
|
||||
-- (2)使用CREATE ROLE [角色名]创建新角色。
|
||||
-- 创建数据库角色
|
||||
USE [目标数据库名];
|
||||
CREATE ROLE [角色名];
|
||||
-- 删除数据库角色
|
||||
USE [目标数据库名];
|
||||
DROP ROLE [角色名];
|
||||
@@ -0,0 +1,49 @@
|
||||
-- (1)对于学生管理数据库给出的学生表结构,定义一个名为female的变量,并在SELECT 语句中使用它找出女学生的编号和姓名
|
||||
DECLARE @female TABLE(
|
||||
编号 VARCHAR(8),
|
||||
姓名 VARCHAR(10)
|
||||
);
|
||||
|
||||
INSERT INTO @female(编号,姓名)
|
||||
SELECT 学号,姓名 FROM 学生表;
|
||||
|
||||
SELECT * FROM @female;
|
||||
|
||||
-- (2)定义一个变量,用于获取编号为20231212的学生的生源地,并将该生源地的学生编号和姓名显示出来
|
||||
DECLARE @origin VARCHAR(6);
|
||||
|
||||
SET @origin =(
|
||||
SELECT 生源地 FROM 学生表 WHERE 学号='12'
|
||||
); -- 这里没有编号是20231212的学生
|
||||
|
||||
SELECT 学号 AS 编号,姓名 FROM 学生表
|
||||
WHERE 生源地 = @origin;
|
||||
|
||||
-- (3)使用CASE语句对教师表按所在院系进行分类
|
||||
SELECT *
|
||||
,CASE 院系编号
|
||||
WHEN 1 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=1)
|
||||
WHEN 2 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=2)
|
||||
WHEN 3 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=3)
|
||||
WHEN 4 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=4)
|
||||
WHEN 5 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=5)
|
||||
WHEN 6 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=6)
|
||||
WHEN 7 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=7)
|
||||
WHEN 8 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=8)
|
||||
WHEN 9 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=9)
|
||||
WHEN 10 THEN (SELECT 院系表.名称 FROM 院系表 WHERE 院系=10)
|
||||
ELSE '未知'
|
||||
END AS 所在院系
|
||||
|
||||
FROM 教师表;
|
||||
|
||||
-- (4)使用循环控制语句计算10!
|
||||
DECLARE @i INT = 1;
|
||||
DECLARE @j INT = 1;
|
||||
|
||||
WHILE @i<10 BEGIN
|
||||
SET @i = @i+1
|
||||
SET @j = @j*@i;
|
||||
END
|
||||
|
||||
SELECT @j;
|
||||
@@ -0,0 +1,112 @@
|
||||
USE 学生管理;
|
||||
-- (1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。
|
||||
-- 插入触发器
|
||||
CREATE TRIGGER 插入警示
|
||||
ON 选课表
|
||||
AFTER INSERT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
CREATE TABLE #警示信息 (
|
||||
学号 VARCHAR(8),
|
||||
不及格门数 INT
|
||||
);
|
||||
INSERT INTO #警示信息(学号, 不及格门数)
|
||||
SELECT
|
||||
i.学号,
|
||||
COUNT(*) AS 不及格门数
|
||||
FROM
|
||||
选课表 AS q
|
||||
INNER JOIN INSERTED AS i ON q.学号 = i.学号
|
||||
WHERE
|
||||
q.成绩 < 60
|
||||
GROUP BY
|
||||
i.学号
|
||||
HAVING
|
||||
COUNT(*) >= 5;
|
||||
IF EXISTS (SELECT 1 FROM #警示信息)
|
||||
BEGIN
|
||||
DECLARE @警示文本 NVARCHAR(MAX);
|
||||
SELECT @警示文本 = STRING_AGG(
|
||||
CONCAT('警示: 学号 ', 学号, ' 的累计不及格门数已达到 ', 不及格门数, ' 门!'),
|
||||
CHAR(13) + CHAR(10)
|
||||
)
|
||||
FROM #警示信息;
|
||||
RAISERROR (@警示文本, 16, 1);
|
||||
ROLLBACK TRANSACTION;
|
||||
END
|
||||
DROP TABLE #警示信息;
|
||||
END;
|
||||
-- 更新触发器
|
||||
CREATE TRIGGER 更新警示
|
||||
ON 选课表
|
||||
AFTER UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
CREATE TABLE #警示信息 (
|
||||
学号 VARCHAR(8),
|
||||
不及格门数 INT
|
||||
);
|
||||
INSERT INTO #警示信息(学号, 不及格门数)
|
||||
SELECT
|
||||
i.学号,
|
||||
COUNT(*) AS 不及格门数
|
||||
FROM
|
||||
选课表 AS q
|
||||
INNER JOIN INSERTED AS i ON q.学号 = i.学号
|
||||
WHERE
|
||||
q.成绩 < 60
|
||||
GROUP BY
|
||||
i.学号
|
||||
HAVING
|
||||
COUNT(*) >= 5;
|
||||
IF EXISTS (SELECT 1 FROM #警示信息)
|
||||
BEGIN
|
||||
DECLARE @警示文本 NVARCHAR(MAX);
|
||||
|
||||
SELECT @警示文本 = STRING_AGG(
|
||||
CONCAT('警示: 学号 ', 学号, ' 的累计不及格门数已达到 ', 不及格门数, ' 门!'),
|
||||
CHAR(13) + CHAR(10)
|
||||
)
|
||||
FROM #警示信息;
|
||||
RAISERROR (@警示文本, 16, 1);
|
||||
ROLLBACK TRANSACTION;
|
||||
END
|
||||
|
||||
DROP TABLE #警示信息;
|
||||
END;
|
||||
|
||||
-- (2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。
|
||||
-- 插入触发器
|
||||
CREATE TRIGGER 教师职称警告_插入 ON 课程表
|
||||
AFTER INSERT
|
||||
AS
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM INSERTED
|
||||
JOIN 教师表 ON INSERTED.责任教师=教师表.教师编号
|
||||
WHERE (教师表.职称 != '教授' AND 教师表.职称 != '副教授')AND INSERTED.课程性质='专业基础'
|
||||
)
|
||||
BEGIN
|
||||
RAISERROR ('教授专业基础课的教师必须为教授或副教授',16,1);
|
||||
ROLLBACK TRANSACTION;
|
||||
END;
|
||||
END;
|
||||
-- 更新触发器
|
||||
CREATE TRIGGER 教师职称警告_更新 ON 课程表
|
||||
AFTER UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM INSERTED
|
||||
JOIN 教师表 ON INSERTED.责任教师=教师表.教师编号
|
||||
WHERE (教师表.职称 != '教授' AND 教师表.职称 != '副教授')AND INSERTED.课程性质='专业基础'
|
||||
)
|
||||
BEGIN
|
||||
RAISERROR ('教授专业基础课的教师必须为教授或副教授',16,1);
|
||||
ROLLBACK TRANSACTION;
|
||||
END;
|
||||
END;
|
||||
@@ -0,0 +1,39 @@
|
||||
-- 用SQL 语言定义学生表、课程表和选课表,要求完成以下完整性约束条件:
|
||||
CREATE DATABASE new_学生管理;
|
||||
|
||||
USE new_学生管理;
|
||||
|
||||
-- (1)定义每个表的主码。
|
||||
-- (2)定义参照完整性。
|
||||
-- (3)定义课程的学分不超过4学分。
|
||||
CREATE TABLE 学生表(
|
||||
学号 VARCHAR(64),
|
||||
性别 VARCHAR(3) CHECK(性别 IN('男','女')), -- 参照完整性
|
||||
PRIMARY KEY(学号) -- 定义主码
|
||||
);
|
||||
|
||||
CREATE TABLE 课程表(
|
||||
课程号 VARCHAR(64),
|
||||
学分 SMALLINT CHECK(学分 <=4), --设置学分不超过四分
|
||||
PRIMARY KEY(课程号) -- 定义主码
|
||||
);
|
||||
|
||||
CREATE TABLE 选课表(
|
||||
选课编号 VARCHAR(64),
|
||||
学号 VARCHAR(64)
|
||||
PRIMARY KEY(选课编号), -- 定义主码
|
||||
FOREIGN KEY (学号) REFERENCES 学生表(学号)
|
||||
)
|
||||
|
||||
-- (4)显示说明当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,如何进行处理?
|
||||
-- 实体完整性
|
||||
INSERT INTO 学生表(学号)
|
||||
VALUES
|
||||
('1'),
|
||||
('1');
|
||||
|
||||
-- 参照完整性
|
||||
INSERT INTO 学生表(学号) VALUES('1');
|
||||
INSERT INTO 选课表(选课编号,学号) VALUES
|
||||
('1','2');
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# 实验十五🧪
|
||||
|
||||
## 题目一
|
||||
|
||||
### 原题
|
||||
|
||||
利用向导为`学生管理`数据库生成一个`完全备份`
|
||||
|
||||
### 分析
|
||||
|
||||
- 要求:备份
|
||||
- 备份类型:完全备份
|
||||
|
||||
### 实现
|
||||
|
||||
1. 打开SSMS,点击备份
|
||||
|
||||
<img src="F:\git\database-system-homework\img\实验十五\image-20241204163120483.png" alt="image-20241204163120483" style="zoom:50%;" />
|
||||
|
||||
2. 选择完全备份
|
||||
|
||||
<img src="F:\git\database-system-homework\img\实验十五\image-20241204163319192.png" alt="image-20241204163319192" style="zoom:50%;" />
|
||||
|
||||
3. 确定
|
||||
|
||||
## 题目二
|
||||
|
||||
### 原题
|
||||
|
||||
将`张三`同学的名字改为:`张兵`,然后`执行恢复`,将数据库恢复到修改“张三”同学姓名之前的状态
|
||||
|
||||
### 分析
|
||||
|
||||
- 任务:修改条目、执行恢复
|
||||
- 修改条目:`张三`->`张兵`
|
||||
|
||||
### 实现
|
||||
|
||||
1. 修改`张三`的名字为`张兵`
|
||||
|
||||
```sql
|
||||
UPDATE 学生表
|
||||
SET 姓名='张兵'
|
||||
WHERE 姓名='张三';
|
||||
```
|
||||
|
||||
2. 执行恢复
|
||||
|
||||
<img src="F:\git\database-system-homework\img\实验十五\image-20241204164336221.png" alt="image-20241204164336221" style="zoom:50%;" />
|
||||
|
||||
<img src="F:\git\database-system-homework\img\实验十五\image-20241204164409979.png" alt="image-20241204164409979" style="zoom:50%;" />
|
||||
@@ -0,0 +1,95 @@
|
||||
# 实验十六🧪
|
||||
|
||||
## 1. 安装数据库管理系统
|
||||
|
||||
### 实验步骤
|
||||
1. 下载SQL Server安装程序。
|
||||
2. 运行安装程序并按照向导完成安装。
|
||||
3. 配置SQL Server服务,确保其可以正常启动。
|
||||
4. 打开SQL Server Management Studio (SSMS) 并连接到本地服务器以验证安装。
|
||||
|
||||
### 实验结果
|
||||
- SQL Server安装成功,SSMS能够成功连接到本地服务器。
|
||||
|
||||
## 2. 创建数据库和数据表
|
||||
|
||||
### 实验步骤
|
||||
1. 打开SSMS并连接到SQL Server实例。
|
||||
2. 创建一个新的数据库,例如使用T-SQL命令:
|
||||
```sql
|
||||
CREATE DATABASE mydatabase;
|
||||
GO
|
||||
```
|
||||
3. 在新创建的数据库中创建数据表,例如使用T-SQL命令:
|
||||
```sql
|
||||
USE mydatabase;
|
||||
GO
|
||||
CREATE TABLE users (
|
||||
id INT IDENTITY(1,1) PRIMARY KEY,
|
||||
username NVARCHAR(255) NOT NULL,
|
||||
password NVARCHAR(255) NOT NULL
|
||||
);
|
||||
GO
|
||||
```
|
||||
|
||||
### 实验结果
|
||||
- 数据库`mydatabase`创建成功。
|
||||
- 数据表`users`创建成功,包含`id`、`username`和`password`字段。
|
||||
|
||||
## 3. 插入数据到数据表中
|
||||
|
||||
### 实验步骤:
|
||||
1. 连接到`mydatabase`数据库。
|
||||
2. 向`users`表中插入数据,例如:
|
||||
```sql
|
||||
INSERT INTO users (username, password) VALUES ('user1', 'password1');
|
||||
GO
|
||||
```
|
||||
|
||||
### 实验
|
||||
- 数据成功插入,通过查询`SELECT * FROM users;`可以查看到新插入的数据。
|
||||
|
||||
## 4. 进行数据库备份
|
||||
|
||||
### 实验步骤
|
||||
1. 在SSMS中,找到数据库,右键选择“任务” -> “备份...”。
|
||||
2. 在备份向导中,设置备份文件的位置和名称,完成备份。
|
||||
|
||||
### 实验结果
|
||||
- 数据库备份成功,备份文件已生成在指定位置。
|
||||
|
||||
## 5. 修改数据表中的数据
|
||||
|
||||
### 实验步骤
|
||||
1. 连接到`mydatabase`数据库。
|
||||
2. 更新`users`表中的数据,例如:
|
||||
```sql
|
||||
UPDATE users SET username = 'user1_updated' WHERE id = 1;
|
||||
GO
|
||||
```
|
||||
|
||||
### 实验结果
|
||||
- 数据更新成功,通过查询可以验证`username`字段已更新。
|
||||
|
||||
## 6. 使用备份进行数据库恢复
|
||||
|
||||
### 实验步骤
|
||||
1. 在SSMS中,找到服务器实例,右键选择“任务” -> “还原...”。
|
||||
2. 在还原向导中,选择之前备份的数据库文件进行还原。
|
||||
|
||||
### 实验结果
|
||||
- 数据库恢复成功,所有数据和结构与备份前一致。
|
||||
|
||||
## 7. 进行开发操作,如查询、更新、删除数据等
|
||||
|
||||
### 实验步骤
|
||||
1. 连接到`mydatabase`数据库。
|
||||
2. 执行各种T-SQL操作,如查询、更新和删除数据:
|
||||
- 查询:`SELECT * FROM users;`
|
||||
- 更新:`UPDATE users SET password = 'newpassword' WHERE id = 1;`
|
||||
- 删除:`DELETE FROM users WHERE id = 1;`
|
||||
|
||||
### 实验结果
|
||||
- 查询结果返回所有用户数据。
|
||||
- 更新操作成功,密码字段更新。
|
||||
- 删除操作成功,指定用户被删除。
|
||||
@@ -0,0 +1,37 @@
|
||||
-- 建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值):
|
||||
-- 1.按要求设计完成如下功能的存储过程。
|
||||
-- (1)查询平均分数在x到y范围内的学生信息。 该存储过程有两个参数:要求查询的学生信息包括学号、姓名、院系名称和平均成绩。
|
||||
CREATE PROCEDURE quire_stu_between
|
||||
@x INT,
|
||||
@y INT
|
||||
AS
|
||||
BEGIN
|
||||
SELECT 学生表.学号, 学生表.姓名, 院系表.名称, 学生表.平均成绩
|
||||
FROM 学生表
|
||||
JOIN 院系表 ON 学生表.院系编号 = 院系表.院系
|
||||
WHERE 学生表.平均成绩 BETWEEN @x AND @y;
|
||||
END;
|
||||
|
||||
-- (2)更新操作,以学号、课程编号和考试成绩作参数更新指定学生和课程的考试成绩,并返回该学生的平均成绩。
|
||||
CREATE PROCEDURE update_stu_grade
|
||||
@学号 VARCHAR(8),
|
||||
@课程编号 VARCHAR(8),
|
||||
@考试成绩 SMALLINT
|
||||
AS
|
||||
BEGIN
|
||||
UPDATE 选课表
|
||||
SET 成绩=@考试成绩
|
||||
WHERE 学号=@学号 AND 课程编号=@课程编号;
|
||||
|
||||
SELECT 平均成绩 FROM 学生表
|
||||
WHERE 学号=@学号;
|
||||
END;
|
||||
|
||||
-- 2.在客户端以存储过程和输入SQL语句的方式分别执行相同的查询或操作,比较使用和不使用存储过程的区别。
|
||||
-- 使用存储过程
|
||||
EXEC quire_stu_between @x=85,@y=90;
|
||||
-- 使用SQL查询
|
||||
SELECT 学生表.学号, 学生表.姓名, 院系表.名称, 学生表.平均成绩
|
||||
FROM 学生表
|
||||
JOIN 院系表 ON 学生表.院系编号 = 院系表.院系
|
||||
WHERE 学生表.平均成绩 BETWEEN 85 AND 90;
|
||||