Compare commits
6 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
3ea5031ada | 2 years ago |
|
|
9ceed82d18 | 2 years ago |
|
|
9bd49608a2 | 2 years ago |
|
|
cdc44fb5f3 | 2 years ago |
|
|
dd295cb74c | 2 years ago |
|
|
6fbf69be5f | 2 years ago |
@ -0,0 +1,78 @@
|
||||
package Model.access;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* 管理员信息表的增删改查
|
||||
* @author rsw
|
||||
*
|
||||
*/
|
||||
public class AdmiAccess {
|
||||
/**
|
||||
* 查询管理员的账号密码
|
||||
*/
|
||||
public boolean queryAdmi(String count, String password) throws SQLException {
|
||||
String sql = "SELECT adm_count,adm_password FROM bookms.administrator WHERE adm_count=? AND adm_password=?";
|
||||
return Connect.exist(sql, count,password);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询指定管理员的信息(含管理员自身信息)
|
||||
*/
|
||||
public Vector<Vector<Object>> queryAdmi(String count) throws SQLException {
|
||||
String sql = "SELECT adm_count,adm_name,adm_id_number,adm_tele,adm_email FROM bookms.administrator WHERE adm_count=? AND issuper='0';";
|
||||
return Connect.queryExact_public(sql, count);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询全部管理员的信息
|
||||
*/
|
||||
public Vector<Vector<Object>> seleAdmi() throws SQLException {
|
||||
String sql = "SELECT adm_count,adm_name,adm_id_number,adm_tele,adm_email FROM bookms.administrator WHERE issuper='0';";
|
||||
return Connect.queryExact_public(sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除管理员
|
||||
*/
|
||||
public void deleAdmi(String superNumber) throws SQLException {
|
||||
String sql = "DELETE FROM bookms.administrator WHERE adm_count=?";
|
||||
Connect.update_public(sql, superNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改管理员信息
|
||||
*/
|
||||
public void updateAdmi(String adm_tele, String adm_email, String superNumber) throws SQLException {
|
||||
String sql = "UPDATE bookms.administrator SET adm_tele=?,adm_email=? WHERE adm_count=?";
|
||||
Connect.update_public(sql, adm_tele, adm_email, superNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增管理员
|
||||
*/
|
||||
public void insterAdmi(String adm_count, String adm_name, String adm_id_number, String adm_tele, String adm_email,
|
||||
String adm_keeppass, String adm_password) throws SQLException {
|
||||
String sql = "INSERT INTO bookms.administrator(adm_count,adm_name,adm_id_number,adm_tele,adm_email,adm_keeppass,adm_password,issuper) VALUES(?,?,?,?,?,?,?,'0')";
|
||||
Connect.update_public(sql, adm_count, adm_name, adm_id_number, adm_tele, adm_email, adm_keeppass, adm_password);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
*/
|
||||
public void updateAdmiPass(String alterPass, String adm_count, String adm_password, String adm_keeppass)
|
||||
throws SQLException {
|
||||
String sql = "UPDATE bookms.administrator SET adm_password='" + alterPass
|
||||
+ "' WHERE adm_count=? AND adm_password=? AND adm_keeppass=?";
|
||||
Connect.update_public(sql, adm_count, adm_password, adm_keeppass);
|
||||
}
|
||||
|
||||
/**
|
||||
* 超级管理员验证
|
||||
*/
|
||||
public boolean proveSuper(String count, String password) throws SQLException {
|
||||
String sql = "SELECT adm_count,adm_password FROM bookms.administrator WHERE adm_count=? AND adm_password=? AND issuper='1'";
|
||||
return Connect.exist(sql, count,password);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
package Model.table;
|
||||
|
||||
/**
|
||||
* 管理员表的字段 映射
|
||||
* @author rsw
|
||||
*/
|
||||
public class Administrator {
|
||||
private int adm_id;
|
||||
private String adm_count;
|
||||
private String adm_password;
|
||||
private String adm_name;
|
||||
private String adm_id_number;
|
||||
private String adm_tele;
|
||||
private String adm_email;
|
||||
private String adm_keeppass;
|
||||
private boolean issuper;
|
||||
|
||||
public int getAdm_id() {
|
||||
return adm_id;
|
||||
}
|
||||
|
||||
public void setAdm_id(int adm_id) {
|
||||
this.adm_id = adm_id;
|
||||
}
|
||||
|
||||
public String getAdm_count() {
|
||||
return adm_count;
|
||||
}
|
||||
|
||||
public void setAdm_count(String adm_count) {
|
||||
this.adm_count = adm_count;
|
||||
}
|
||||
|
||||
public String getAdm_password() {
|
||||
return adm_password;
|
||||
}
|
||||
|
||||
public void setAdm_password(String adm_password) {
|
||||
this.adm_password = adm_password;
|
||||
}
|
||||
|
||||
public String getAdm_name() {
|
||||
return adm_name;
|
||||
}
|
||||
|
||||
public void setAdm_name(String adm_name) {
|
||||
this.adm_name = adm_name;
|
||||
}
|
||||
|
||||
public String getAdm_id_number() {
|
||||
return adm_id_number;
|
||||
}
|
||||
|
||||
public void setAdm_id_number(String adm_id_number) {
|
||||
this.adm_id_number = adm_id_number;
|
||||
}
|
||||
|
||||
public String getAdm_tele() {
|
||||
return adm_tele;
|
||||
}
|
||||
|
||||
public void setAdm_tele(String adm_tele) {
|
||||
this.adm_tele = adm_tele;
|
||||
}
|
||||
|
||||
public String getAdm_email() {
|
||||
return adm_email;
|
||||
}
|
||||
|
||||
public void setAdm_email(String adm_email) {
|
||||
this.adm_email = adm_email;
|
||||
}
|
||||
|
||||
public String getAdm_keeppass() {
|
||||
return adm_keeppass;
|
||||
}
|
||||
|
||||
public void setAdm_keeppass(String adm_keeppass) {
|
||||
this.adm_keeppass = adm_keeppass;
|
||||
}
|
||||
|
||||
public boolean isIssuper() {
|
||||
return issuper;
|
||||
}
|
||||
|
||||
public void setIssuper(boolean issuper) {
|
||||
this.issuper = issuper;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package View;
|
||||
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.sql.SQLException;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTabbedPane;
|
||||
|
||||
/**
|
||||
* 管理员界面
|
||||
* @author rsw
|
||||
*
|
||||
*/
|
||||
public class ManageFace extends JFrame {
|
||||
final int WIDTH = 1000, HEIGHT = 730;
|
||||
JTabbedPane jtab = new JTabbedPane(JTabbedPane.TOP);// 创建选项卡窗格,选项卡标题在上方
|
||||
JPanel[] jpan = new JPanel[6];
|
||||
static String count;
|
||||
ManageBook manageBook =new ManageBook();
|
||||
ManageBookType manageBookType=new ManageBookType();
|
||||
ManageReader manageReader=new ManageReader();
|
||||
ManageReaderType manageReaderType=new ManageReaderType();
|
||||
ManageBorrowInfo manageBorrowInfo =new ManageBorrowInfo();
|
||||
ManageSuper manageSuper =new ManageSuper();
|
||||
public ManageFace(String count) throws SQLException {
|
||||
this.count=count;
|
||||
this.setLayout(null);
|
||||
this.setTitle("图书管理系统(管理员端)");
|
||||
this.setSize(WIDTH, HEIGHT);
|
||||
this.setLocationRelativeTo(null);// 设置窗体居中显示
|
||||
this.setResizable(false);// 窗口不能改变大小
|
||||
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);// 单击窗口关闭按钮,结束程序
|
||||
this.setVisible(true);// 使窗口显示
|
||||
|
||||
jtab.setSize(WIDTH, HEIGHT);
|
||||
|
||||
jpan[0] = manageBook.addPanel0();
|
||||
jtab.addTab("图书信息管理", jpan[0]);
|
||||
jtab.setSelectedIndex(0);
|
||||
|
||||
jpan[1] = manageBookType.addPanel1();
|
||||
jtab.addTab("图书类型管理", jpan[1]);
|
||||
|
||||
jpan[2] = manageReader.addPanel2();
|
||||
jtab.addTab("读者信息管理", jpan[2]);
|
||||
|
||||
jpan[3] = manageReaderType.addPanel3();
|
||||
jtab.addTab("读者类型管理 ", jpan[3]);
|
||||
|
||||
jpan[4] = manageBorrowInfo.addPanel4();
|
||||
jtab.addTab("图书借阅管理", jpan[4]);
|
||||
|
||||
jpan[5] = manageSuper.addPanel5(count);
|
||||
jtab.addTab("超级管理员", jpan[5]);
|
||||
|
||||
this.add(jtab);
|
||||
this.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
int c = JOptionPane.showConfirmDialog(null, "是否要退出系统程序", "操作验证", JOptionPane.YES_NO_OPTION);
|
||||
if (c == JOptionPane.YES_OPTION) {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,223 @@
|
||||
package View;
|
||||
|
||||
import Controller.AdmiCon;
|
||||
import Tool.PubJdialog;
|
||||
import Tool.TableTool;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Vector;
|
||||
|
||||
/**
|
||||
* 超级管理员面板
|
||||
*
|
||||
* @author rsw
|
||||
*/
|
||||
public class ManageSuper implements ActionListener {
|
||||
JButton[] jbt_super = {new JButton("查询管理员信息"), new JButton("新增管理员信息"), new JButton("删除管理员信息"),
|
||||
new JButton("修改管理员信息")};
|
||||
JTextField jtext;
|
||||
JTable table_super;
|
||||
JPanel jpan;
|
||||
DefaultTableModel dfttable_super;
|
||||
String count, superNumber, adm_tele, adm_email;
|
||||
String[] columnStr = {"账号", "姓名", "身份证号", "手机号", "邮箱"};
|
||||
JButton[] jbt_proveSuper = {new JButton("修改个人信息"), new JButton("修改个人密码"), new JButton("超级管理员验证")};
|
||||
boolean isCompile, refresh;
|
||||
int row;
|
||||
Vector<String> columnName;
|
||||
AdmiCon admiCon = new AdmiCon();
|
||||
|
||||
public ManageSuper() {
|
||||
|
||||
}
|
||||
|
||||
protected JPanel addPanel5(String count) throws SQLException {
|
||||
this.count = count;
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
JPanel jpanup_super = new JPanel();
|
||||
jpanup_super.setLayout(null);
|
||||
jpanup_super.setPreferredSize(new Dimension(1000, 300));
|
||||
panel.setPreferredSize(new Dimension(1000, 700));
|
||||
|
||||
jtext = new JTextField();
|
||||
jtext.setBounds(30, 250, 150, 30);
|
||||
jtext.setEnabled(false);
|
||||
for (int i = 0; i < jbt_super.length; i++) {
|
||||
jbt_super[i].setBounds(200 + i * 160, 250, 150, 30);
|
||||
jpanup_super.add(jbt_super[i]);
|
||||
jbt_super[i].setEnabled(false);
|
||||
jbt_super[i].addActionListener(this);
|
||||
}
|
||||
for (int i = 0; i < jbt_proveSuper.length; i++) {
|
||||
jbt_proveSuper[i].setBounds(200 + i * 180, 100, 150, 30);
|
||||
jpanup_super.add(jbt_proveSuper[i]);
|
||||
jbt_proveSuper[i].addActionListener(this);
|
||||
}
|
||||
columnName = new Vector<String>();// 字段名
|
||||
for (int i = 0; i < columnStr.length; i++) {
|
||||
columnName.add(columnStr[i]);
|
||||
}
|
||||
// 设置表格模型的数据
|
||||
dfttable_super = new DefaultTableModel(admiCon.queryAdmi(count), columnName);
|
||||
|
||||
// 设置表格的编辑状态
|
||||
table_super = new JTable(dfttable_super) {
|
||||
@Override
|
||||
public boolean isCellEditable(int row, int column) {
|
||||
return false;// 表格不允许被编辑
|
||||
}
|
||||
};
|
||||
ListSelectionModel selectionModel = table_super.getSelectionModel();// 创建表格选择器
|
||||
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 一次只能选择一个列表索引
|
||||
selectionModel.addListSelectionListener(new ListSelectionListener() {
|
||||
@Override
|
||||
public void valueChanged(ListSelectionEvent e) {
|
||||
if (selectionModel.getValueIsAdjusting()) {
|
||||
if (table_super.getSelectedRow() < 0) {
|
||||
return;
|
||||
}
|
||||
row = table_super.getSelectedRow();
|
||||
superNumber = table_super.getValueAt(table_super.getSelectedRow(), 0).toString();
|
||||
adm_tele = table_super.getValueAt(table_super.getSelectedRow(), 3).toString();
|
||||
adm_email = table_super.getValueAt(table_super.getSelectedRow(), 4).toString();
|
||||
}
|
||||
}
|
||||
});
|
||||
// 设置表格的公共属性
|
||||
TableTool.setTable(table_super, dfttable_super);
|
||||
|
||||
JScrollPane scrollPane = new JScrollPane(table_super);
|
||||
jpanup_super.add(jtext);
|
||||
panel.add(jpanup_super, BorderLayout.NORTH);
|
||||
panel.add(scrollPane);
|
||||
|
||||
return panel;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// TODO Auto-generated method stub
|
||||
// 查询
|
||||
if (e.getSource() == jbt_super[0]) {
|
||||
count = jtext.getText();
|
||||
// 设置表头
|
||||
refresh = true;
|
||||
dfttable_super.fireTableDataChanged();
|
||||
dfttable_super.setRowCount(0);
|
||||
try {
|
||||
if (count.equals("")) {
|
||||
dfttable_super.setDataVector(admiCon.seleAdmi(), columnName);
|
||||
} else {
|
||||
dfttable_super.setDataVector(admiCon.queryAdmi(count), columnName);// 设定模型数据和字段,初始化该表
|
||||
}
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
refresh = false;
|
||||
}
|
||||
// 新增
|
||||
else if (e.getSource() == jbt_super[1]) {
|
||||
boolean is = false;
|
||||
try {
|
||||
new PubJdialog(is).setVisible(true);
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
// 删除
|
||||
else if (e.getSource() == jbt_super[2]) {
|
||||
if (superNumber != null) {
|
||||
try {
|
||||
// 判断删除的管理员账号是否为目前所登录的账号,如果是——弹出对话框、结束程序、打开登录界面
|
||||
if (superNumber.equals(count)) {
|
||||
int c = JOptionPane.showConfirmDialog(null, "此账号为您所登录的管理员账号,如果删除此管理员账号,您需要重新登录。是否执行此操作???",
|
||||
"警告!!!", JOptionPane.WARNING_MESSAGE);
|
||||
if (c == JOptionPane.YES_OPTION) {
|
||||
admiCon.deleAdmi(superNumber);
|
||||
dfttable_super.removeRow(table_super.getSelectedRow());// 删除表格中的这一行
|
||||
System.exit(0);
|
||||
new Main();
|
||||
}
|
||||
} else {
|
||||
int c = JOptionPane.showConfirmDialog(null, "是否要删除此账号", "警告!!!", JOptionPane.WARNING_MESSAGE);
|
||||
if (c == JOptionPane.YES_OPTION) {
|
||||
admiCon.deleAdmi(superNumber);
|
||||
dfttable_super.removeRow(table_super.getSelectedRow());// 删除表格中的这一行
|
||||
}
|
||||
}
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "您没有选中管理员!!!", "操作失败", JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
}
|
||||
// 更新
|
||||
else if (e.getSource() == jbt_super[3]) {
|
||||
JLabel[] jlab_super = {new JLabel("账号:"), new JLabel("手机号:"), new JLabel("邮箱:")};
|
||||
JTextField[] jtext_super = new JTextField[3];
|
||||
JLabel[] jlab_hint = {new JLabel("不可修改"), new JLabel("13、14、15、17、18开头"), new JLabel("邮箱格式")};
|
||||
Object[] superUpdata = {superNumber, adm_tele, adm_email};
|
||||
if (superNumber != null) {
|
||||
try {
|
||||
new PubJdialog(150, 3, jlab_super, jtext_super, superUpdata, 10, jlab_hint).setVisible(true);
|
||||
if (PubJdialog.success) {
|
||||
table_super.setValueAt(jtext_super[1].getText(), row, 3);
|
||||
table_super.setValueAt(jtext_super[2].getText(), row, 4);
|
||||
PubJdialog.success = false;
|
||||
}
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "您没有选中管理员!!!", "操作失败", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
// 修改个人信息
|
||||
else if (e.getSource() == jbt_proveSuper[0]) {
|
||||
JLabel[] jlab_super = {new JLabel("账号:"), new JLabel("手机号:"), new JLabel("邮箱:")};
|
||||
JLabel[] jlab_hint = {new JLabel("不可修改"), new JLabel("13、14、15、17、18开头"), new JLabel("邮箱格式")};
|
||||
JTextField[] jtext_super = new JTextField[3];
|
||||
try {
|
||||
Object[] superUpdata = {count, admiCon.queryAdmi(count).elementAt(0).elementAt(3),
|
||||
admiCon.queryAdmi(count).elementAt(0).elementAt(4)};
|
||||
new PubJdialog(150, 3, jlab_super, jtext_super, superUpdata, 10, jlab_hint).setVisible(true);
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
// 修改个人密码
|
||||
else if (e.getSource() == jbt_proveSuper[1]) {
|
||||
new PubJdialog(count, false).setVisible(true);
|
||||
}
|
||||
// 超级管理员验证
|
||||
else if (e.getSource() == jbt_proveSuper[2]) {
|
||||
try {
|
||||
new PubJdialog(jtext, jbt_super).setVisible(true);
|
||||
if (PubJdialog.success) {
|
||||
dfttable_super.setDataVector(admiCon.seleAdmi(), columnName);
|
||||
for (int i = 0; i < jbt_proveSuper.length; i++) {
|
||||
jbt_proveSuper[i].setEnabled(false);// 超级管理员验证成功,个人管理员信息按钮不可用
|
||||
}
|
||||
}
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
superNumber = TableTool.setNull(table_super, superNumber);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package Controller;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.Vector;
|
||||
|
||||
import Model.access.AdmiAccess;
|
||||
|
||||
/**
|
||||
* 管理员表的控制器
|
||||
* @author rsw
|
||||
*
|
||||
*/
|
||||
public class AdmiCon {
|
||||
AdmiAccess admiDao = new AdmiAccess();
|
||||
|
||||
/**
|
||||
* 管理员登录
|
||||
*/
|
||||
public boolean queryAdmi(String count, String password) throws SQLException {
|
||||
boolean findAdmi = admiDao.queryAdmi(count, password);
|
||||
return findAdmi;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询指定管理员的信息(含管理员自身信息)
|
||||
*/
|
||||
public Vector<Vector<Object>> queryAdmi(String count) throws SQLException {
|
||||
return admiDao.queryAdmi(count);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询全部管理员的信息
|
||||
*/
|
||||
public Vector<Vector<Object>> seleAdmi() throws SQLException {
|
||||
return admiDao.seleAdmi();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除管理员
|
||||
*/
|
||||
public void deleAdmi(String superNumber) throws SQLException {
|
||||
admiDao.deleAdmi(superNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改管理员信息
|
||||
*/
|
||||
public void updateAdmi(String adm_tele, String adm_email, String superNumber) throws SQLException {
|
||||
admiDao.updateAdmi(adm_tele, adm_email, superNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增管理员
|
||||
*/
|
||||
public void insterAdmi(String adm_count, String adm_name, String adm_id_number, String adm_tele, String adm_email,
|
||||
String adm_keeppass, String adm_password) throws SQLException {
|
||||
admiDao.insterAdmi(adm_count, adm_name, adm_id_number, adm_tele, adm_email, adm_keeppass, adm_password);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
*/
|
||||
public void updateAdmiPass(String alterPass, String adm_count, String adm_password, String adm_keeppass)
|
||||
throws SQLException {
|
||||
admiDao.updateAdmiPass(alterPass, adm_count, adm_password, adm_keeppass);
|
||||
}
|
||||
|
||||
/**
|
||||
* 超级管理员验证
|
||||
*/
|
||||
public boolean proveSuper(String count, String password) throws SQLException {
|
||||
return admiDao.proveSuper(count, password);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue