swing小区安全管理系统

使用原生jdbc+swing,废话就不多说了,直接贴代码:

github地址:https://github.com/PineappleLB/village-Manage-Project/tree/master 点击打开链接

package jdbc;import java.sql.Connection;
import java.sql.DriverManager;public class Jdbc {private static String DBDriver = "com.mysql.jdbc.Driver";private static String DBURL = "jdbc:mysql://localhost:3306/Home";private static String DBUser = "root";private static String DBPass = "123456";private static Connection conn = null;/*** 创建数据库连接* @param driver* @param dburl* @param user* @param pass* @return*/private static Connection initConnection(String driver, String dburl, String user, String pass) {DBDriver = driver == null ? DBDriver : driver;DBURL = dburl == null ? DBURL : dburl;DBUser = user == null ? DBUser : user;DBPass = pass == null ? DBPass : pass;try {Class.forName(DBDriver);return DriverManager.getConnection(DBURL, DBUser, DBPass);} catch (Exception e) {e.printStackTrace();}return null;}/*** 获取数据库连接* @return*/public static Connection getMyConnection() {if(conn == null) {conn = initConnection(null, null, null, null);}return conn;}public void closeMyConnetion() {try {conn.close();} catch (Exception e) {e.printStackTrace();}}}

数据库操作类:

package jdbc;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import model.Admin;
import model.WarningConfig;public class JDBCUtil {//数据库连接对象private static Connection conn;//sql语句private static String sql;private static ResultSet rs;/*** 判断用户名和密码是否正确* @param name* @param pass* @return*/public static int adminLogin(String name, String pass) {Admin admin = selectAdminByName(name);if(admin != null && admin.getPassword().equals(pass)) {return 1;}return 0;}/*** 根据姓名查询用户信息* @param name* @return*/private static Admin selectAdminByName(String name) {try {conn = Jdbc.getMyConnection();sql = "select id, name, password, token from admin where name = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, name);rs = stmt.executeQuery();Admin admin = null;while(rs.next()) {admin = new Admin();admin.setId(rs.getInt("id"));admin.setName(rs.getString("name"));admin.setPassword(rs.getString("password"));admin.setToken(rs.getString("token"));}return admin;} catch (SQLException e) {e.printStackTrace();}return null;}public static int adminRegist(String name, String pass) {try {conn = Jdbc.getMyConnection();sql = "insert into admin (id, name, password, token) "+ "values(default, ?, ?, ?)";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, name);stmt.setString(2, pass);stmt.setString(3, pass);int result = stmt.executeUpdate();return result;} catch (SQLException e) {e.printStackTrace();}return 0;}/*** 查询所有单元* @return*/public static String[] selectUnits() {try {conn = Jdbc.getMyConnection();sql = "SELECT unit FROM `USER` GROUP BY unit;";PreparedStatement stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();List<String> strs = new ArrayList<>();while(rs.next()) {strs.add(rs.getInt("unit") + "单元");}String []arr = new String[strs.size()];strs.toArray(arr);return arr;} catch (SQLException e) {e.printStackTrace();}return null;}public static String[] selectUsernamesByUnit(int unit) {try {conn = Jdbc.getMyConnection();sql = "SELECT `NAME` FROM `USER`";if(unit > 0) {sql += " WHERE unit = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setInt(1, unit);   rs = stmt.executeQuery();} else {PreparedStatement stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();}List<String> strs = new ArrayList<>();while(rs.next()) {strs.add(rs.getString("name"));}String []arr = new String[strs.size()];strs.toArray(arr);return arr;} catch (SQLException e) {e.printStackTrace();}return null;}public static String[] selectAlertItems() {try {conn = Jdbc.getMyConnection();sql = "SELECT alertName FROM alertSelection;";PreparedStatement stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();List<String> strs = new ArrayList<>();while(rs.next()) {strs.add(rs.getString("alertName"));}String []arr = new String[strs.size()];strs.toArray(arr);return arr;} catch (SQLException e) {e.printStackTrace();}return null;}public static WarningConfig selectWarningConfigByUsername(String username, String alertItem) {try {conn = Jdbc.getMyConnection();sql = "SELECT warningConfig.id, alertSelection.alertName, safeMin, safeMax, `NAME` FROM warningConfig "+ "LEFT JOIN `USER` ON user.id=userId LEFT JOIN alertSelection ON alertSelection.id=warningConfig.alertName "+ "WHERE alertSelection.alertName = ? AND `NAME` = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, alertItem);stmt.setString(2, username);rs = stmt.executeQuery();WarningConfig config = null;while(rs.next()) {config = new WarningConfig();config.setAlertname("alertSelection.alertName");config.setSafemax(rs.getInt("safeMax"));config.setSafemin(rs.getInt("safeMin"));config.setUserid("name");}return config;} catch (SQLException e) {e.printStackTrace();}return null;}public static int saveWarningMessage(String username, String alertItem, int value) {try {conn = Jdbc.getMyConnection();sql = "INSERT INTO alertInfo(alertName, `TIME`, safeMin, safeMax, userId,VALUE) " + "SELECT DISTINCT alertName,NOW(),safeMin,safeMax,userId,? FROM `USER` LEFT JOIN warningConfig ON warningConfig.userId=user.id " + "WHERE warningConfig.alertName=(SELECT id FROM alertSelection WHERE alertName= ? ) " + "AND user.id=(SELECT id FROM `USER` WHERE user.name= ? )";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setInt(1, value);stmt.setString(2, alertItem);stmt.setString(3, username);return stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}return 0;}public static int saveWarningMessage(String username, String alertItem, int value, String date) {try {conn = Jdbc.getMyConnection();sql = "INSERT INTO alertInfo(alertName, `TIME`, safeMin, safeMax, userId,VALUE) " + "SELECT DISTINCT alertName, ?,safeMin,safeMax,userId,? FROM `USER` LEFT JOIN warningConfig ON warningConfig.userId=user.id " + "WHERE warningConfig.alertName=(SELECT id FROM alertSelection WHERE alertName= ? ) " + "AND user.id=(SELECT id FROM `USER` WHERE user.name= ? )";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, date);stmt.setInt(2, value);stmt.setString(3, alertItem);stmt.setString(4, username);return stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}return 0;}public static String selectRoomByUsername(String username) {try {conn = Jdbc.getMyConnection();sql = "SELECT room FROM `USER` WHERE `NAME` = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, username);rs = stmt.executeQuery();if(rs.next()) {return rs.getString("room");}} catch (SQLException e) {e.printStackTrace();}return null;}public static String[] selectRoomsByUnit(int unit) {try {conn = Jdbc.getMyConnection();sql = "SELECT room FROM `USER`";if(unit > 0) {sql += " WHERE unit = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setInt(1, unit);  rs = stmt.executeQuery();} else {PreparedStatement stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();}List<String> strs = new ArrayList<>();while(rs.next()) {strs.add(rs.getString("room"));}String []arr = new String[strs.size()];strs.toArray(arr);return arr;} catch (SQLException e) {e.printStackTrace();}return null;}public static String selectUsernameByRoom(String room) {try {conn = Jdbc.getMyConnection();sql = "SELECT `NAME` FROM `USER` WHERE room = ?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, room);rs = stmt.executeQuery();if(rs.next()) {return rs.getString("name");}} catch (SQLException e) {e.printStackTrace();}return null;}public static Object[][] selectAlertTableModels(String username, String alertType) {try {conn = Jdbc.getMyConnection();sql = "SELECT alertSelection.alertName as alertType,`TIME`,safeMin,safeMax,`VALUE`,`NAME` FROM alertInfo " + "LEFT JOIN alertSelection ON alertInfo.alertName=alertSelection.id LEFT JOIN `USER` ON user.id=alertInfo.userId" + " WHERE user.id IN (SELECT id FROM `USER` WHERE `NAME`=?)";//alertSelection.alertName=? AND if("任意".equals(alertType)) {PreparedStatement stmt = conn.prepareStatement(sql);
//              stmt.setString(1, alertType);stmt.setString(1, username);rs = stmt.executeQuery();} else {sql += " AND alertSelection.alertName=?";PreparedStatement stmt = conn.prepareStatement(sql);stmt.setString(1, username);stmt.setString(2, alertType);rs = stmt.executeQuery();}List<Object[]> list = new ArrayList<>();while(rs.next()) {Object[] objs = new Object[5];objs[0] = rs.getString("alertType");objs[1] = rs.getString("time");objs[2] = rs.getInt("safeMin") + "-" + rs.getInt("safeMax");objs[3] = rs.getInt("value");objs[4] = rs.getString("name");list.add(objs);}if(list.size() > 0 && list.get(0) != null && list.get(0).length > 0) {Object[][] returnObjs = new Object[list.size()][list.get(0).length];list.toArray(returnObjs);return returnObjs;}} catch (SQLException e) {e.printStackTrace();}return null;}}

登录页面:

package view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;import jdbc.JDBCUtil;
import lunch.VillageManageApplication;public class LoginPage extends JFrame implements ActionListener{/*** */private static final long serialVersionUID = 1L;private JButton loginButton = new JButton("连接");private JButton exitButton = new JButton("退出");private JButton registButton = new JButton("注册");private JTextField nameText = new JTextField();//登录输入框private JPasswordField passwordText = new JPasswordField();//密码输入框private MainPage mainPage;//主要功能页面private RegistePage registPage;public void init() {mainPage = VillageManageApplication.mainPage;//主要功能页面registPage = VillageManageApplication.registePage;}public LoginPage() {setTitle("智能小区安全系统");setLayout(null);JLabel lblLogin1=new JLabel("用户名:");JLabel lblPassword=new JLabel("密 码:");setSize(400,200);setLocation(300,200);lblLogin1.setBounds(45,15,50,20);nameText.setBounds(100,15,210,20);lblPassword.setBounds(45,45,50,20);passwordText.setBounds(100,45,210,20);loginButton.setBounds(65,100,80,20);exitButton.setBounds(152,100,80,20);registButton.setBounds(240,100,80,20);loginButton.addActionListener(this);//添加点击事件处理exitButton.addActionListener(this);registButton.addActionListener(this);add(lblLogin1);add(nameText);add(lblPassword);add(passwordText);add(loginButton);add(exitButton);add(registButton);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭动作}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource() == loginButton) {String name = nameText.getText();String pass = new String(passwordText.getPassword());int result = JDBCUtil.adminLogin(name, pass);if(result > 0) {this.setVisible(false);mainPage.setVisible(true);nameText.setText("");passwordText.setText("");} else {JOptionPane.showMessageDialog(this, "用户名或密码错误! 登录失败!");}} else if (e.getSource() == exitButton){System.exit(0);} else if (e.getSource() == registButton){setVisible(false);registPage.setVisible(true);}}}

注册页面:

package view;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;import jdbc.JDBCUtil;
import lunch.VillageManageApplication;public class RegistePage extends JFrame implements ActionListener{/*** */private static final long serialVersionUID = 1L;private JButton loginButton = new JButton("返回登录");private JButton exitButton = new JButton("退出");private JButton registButton = new JButton("注册");private JTextField nameText = new JTextField();//登录输入框private JPasswordField passwordText = new JPasswordField();//密码输入框private LoginPage loginPage;public void init() {loginPage = VillageManageApplication.loginPage;}public RegistePage() {setTitle("智能小区安全系统");setLayout(null);JLabel lblLogin1=new JLabel("用户名:");JLabel lblPassword=new JLabel("密 码:");setSize(400,200);setLocation(300,200);lblLogin1.setBounds(45,15,50,20);nameText.setBounds(100,15,210,20);lblPassword.setBounds(45,45,50,20);passwordText.setBounds(100,45,210,20);loginButton.setBounds(45,100,100,20);exitButton.setBounds(152,100,80,20);registButton.setBounds(240,100,80,20);loginButton.addActionListener(this);//添加点击事件处理exitButton.addActionListener(this);registButton.addActionListener(this);add(lblLogin1);add(nameText);add(lblPassword);add(passwordText);add(loginButton);add(exitButton);add(registButton);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭动作}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource() == loginButton) {this.setVisible(false);loginPage.setVisible(true);} else if(e.getSource() == registButton) {String name = nameText.getText();String pass = new String(passwordText.getPassword());int result = JDBCUtil.adminRegist(name, pass);if(result > 0) {int i = JOptionPane.showConfirmDialog(this, "注册成功,是否跳转到登录界面?");if(i == JOptionPane.OK_OPTION) {this.setVisible(false);loginPage.setVisible(true);} nameText.setText("");passwordText.setText("");}}}}

主页面:

/** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/
package view;import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DateFormatter;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;import jdbc.JDBCUtil;
import model.WarningConfig;/**** @author Administrator*/
public class MainPage extends JFrame {/*** */private static final long serialVersionUID = 1L;// Variables declaration - do not modify          private JLabel jLabel1 = new JLabel("业主id:");private JLabel jLabel10 = new JLabel();private JLabel jLabel11 = new JLabel();private JLabel jLabel12 = new JLabel();private JLabel jLabel13 = new JLabel();private JLabel jLabel14 = new JLabel();private JLabel jLabel2 = new JLabel("警报项:");private JLabel jLabel3 = new JLabel("值:");private JLabel jLabel4 = new JLabel("单元号:");private JLabel jLabel6 = new JLabel();private JLabel jLabel7 = new JLabel();private JLabel jLabel8 = new JLabel();private JLabel jLabel9 = new JLabel();private JTable jTable = new JTable();private JButton aCancelButton = new JButton();//存储页面取消按钮private JButton aOKButton = new JButton(); //存储页面确认按钮private JButton sSelectButton = new JButton(); //查询页面查询按钮private JButton uCancelButton = new JButton("取消修改"); //信号处理页面取消按钮private JButton uOKButton = new JButton("确认修改"); //信号处理页面确认按钮private JFormattedTextField aAlertTypeTextField = new JFormattedTextField(); //存储页面时间格式化字段private JFormattedTextField aValueTextFiled = new JFormattedTextField(); // 存储页面值输入字段private JFormattedTextField uValueTextFiled = new JFormattedTextField(); // 信号处理页面值输入字段   private JScrollPane jScrollPane = new JScrollPane();//查询页面private JComboBox<String> sAlertTypeSelect = new JComboBox<>(); //警报类型选项框private JComboBox<String> sRoomSelect = new JComboBox<>();      //房间号选项框private JComboBox<String> sUnitSelect = new JComboBox<>();     //单元号选项框private JComboBox<String> sUserSelect = new JComboBox<>();     //业主id选项框//信号处理页面private JComboBox<String> uAlertTypeSelect = new JComboBox<>(); //警报类型选项框private JComboBox<String> uUnitSelect = new JComboBox<>();      //单元号选项框private JComboBox<String> uUserIdSelect = new JComboBox<>();   //业主id选项框//信号存储页面private JComboBox<String> aUnitSelect = new JComboBox<>();        //单元号选项框private JComboBox<String> aUserSelect = new JComboBox<>();     //业主id选项框private JComboBox<String> aAlertTypeSelect = new JComboBox<>();//警报类型选项框private JInternalFrame updateInfoInFrame = new JInternalFrame(); //信号处理页面private JInternalFrame selectInfoInFrame = new JInternalFrame();   //查询信号页面private JInternalFrame addInfoInFrame = new JInternalFrame();      //存储信号页面private JMenuBar topMenu = new JMenuBar();                 //顶部导航栏private JMenuItem selectInfoMenuItem = new JMenuItem();         //查询警报选项private JMenuItem updateInfoMenuItem = new JMenuItem();            //信号处理选项private JMenuItem addInfoMenuItem = new JMenuItem();               //存储信号选项//------------------------------需要使用的数据属性------------------------------------------------private String[] units;        //单元下拉选项private String[] alertTypes;//警报下拉选项//------------------------------end------------------------------------------------
//    private // End of variables declaration               public void init() {}/*** Creates new form NewJFrame*/public MainPage() {this.units = JDBCUtil.selectUnits();this.alertTypes = JDBCUtil.selectAlertItems();initComponents();updateInfoMenuItemActionPerformed(null);}private void initComponents() {setLocation(500, 300);//信号处理菜单项点击事件updateInfoMenuItem.addActionListener((evt) -> {updateInfoMenuItemActionPerformed(evt);});//信号存储菜单项点击事件addInfoMenuItem.addActionListener((evt) -> {addInfoMenuItemActionPerformed(evt);});//信号查询菜单项点击事件selectInfoMenuItem.addActionListener((evt) -> {selectInfoMenuItemActionPerformed(evt);});setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);updateInfoInFrame.setTitle("信号处理");updateInfoInFrame.setToolTipText("");updateInfoInFrame.setVisible(true);uOKButton.addActionListener((evt) -> {uOKButtonActionPerformed(evt);});uCancelButton.addActionListener((evt) -> {uCancelButtonActionPerformed(evt);});uUnitSelect.addActionListener((evt) -> {uUnitSelectActionPerformed(evt);});//单元号下拉框改变时自动改变业主选项uUnitSelect.addItemListener((e) -> {if(e.getStateChange() == ItemEvent.SELECTED) {unitSelectItemChangePerformed(e, uUnitSelect, uUserIdSelect);}});sUserSelect.addItemListener((e) -> {userSelectItemChangePerformed(e, sUserSelect, sRoomSelect);});sRoomSelect.addItemListener((e) -> {roomSelectItemChangePerformed(e, sRoomSelect, sUserSelect);});aUnitSelect.addItemListener((evt) -> {if(evt.getStateChange() == ItemEvent.SELECTED) {unitSelectItemChangePerformed(evt, aUnitSelect, aUserSelect);}});sSelectButton.addActionListener((e) -> {sSelectButtonActionPerformed(e);});GroupLayout updateInfoInFrameLayout = new GroupLayout(updateInfoInFrame.getContentPane());updateInfoInFrame.getContentPane().setLayout(updateInfoInFrameLayout);updateInfoInFrameLayout.setHorizontalGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(updateInfoInFrameLayout.createSequentialGroup().addGap(68, 68, 68).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(updateInfoInFrameLayout.createSequentialGroup().addComponent(jLabel4).addGap(18, 18, 18).addComponent(uUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGroup(updateInfoInFrameLayout.createSequentialGroup().addComponent(jLabel1).addGap(18, 18, 18).addComponent(uUserIdSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGroup(updateInfoInFrameLayout.createSequentialGroup().addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.TRAILING).addComponent(jLabel3).addComponent(jLabel2)).addGap(18, 18, 18).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(uAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(uValueTextFiled, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE))).addGroup(updateInfoInFrameLayout.createSequentialGroup().addComponent(uOKButton).addGap(45, 45, 45).addComponent(uCancelButton))).addContainerGap(350, Short.MAX_VALUE)));updateInfoInFrameLayout.setVerticalGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(updateInfoInFrameLayout.createSequentialGroup().addGap(30, 30, 30).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.TRAILING).addComponent(jLabel4).addComponent(uUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(uUserIdSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(26, 26, 26).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(uAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(34, 34, 34).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(uValueTextFiled, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)).addGap(65, 65, 65).addGroup(updateInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(uOKButton).addComponent(uCancelButton)).addContainerGap(151, Short.MAX_VALUE)));addInfoInFrame.setTitle("信号存储");addInfoInFrame.setToolTipText("");addInfoInFrame.setVisible(false);aUserSelect.setModel(new DefaultComboBoxModel<>(new String[] { "item" }));aUserSelect.addActionListener((evt) -> {aUserSelectActionPerformed(evt);});jLabel6.setText("值:");aOKButton.setText("添加");aOKButton.setCursor(new Cursor(java.awt.Cursor.DEFAULT_CURSOR));aOKButton.addActionListener((evt) -> {aOKButtonActionPerformed(evt);});aCancelButton.setText("取消");aCancelButton.addActionListener((evt) -> {aCancelButtonActionPerformed(evt);});jLabel7.setText("业主id:");jLabel8.setText("单元号:");aUnitSelect.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));jLabel9.setText("警报类型:");aAlertTypeSelect.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));jLabel10.setText("警报时间:");aAlertTypeTextField.setFormatterFactory(new DefaultFormatterFactory(new DateFormatter(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"))));aValueTextFiled.setFormatterFactory(new DefaultFormatterFactory(new NumberFormatter(NumberFormat.getNumberInstance())));uValueTextFiled.setFormatterFactory(new DefaultFormatterFactory(new NumberFormatter(NumberFormat.getNumberInstance())));GroupLayout addInfoInFrameLayout = new GroupLayout(addInfoInFrame.getContentPane());addInfoInFrame.getContentPane().setLayout(addInfoInFrameLayout);addInfoInFrameLayout.setHorizontalGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(addInfoInFrameLayout.createSequentialGroup().addGap(200, 200, 200).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(addInfoInFrameLayout.createSequentialGroup().addGap(11, 11, 11).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(addInfoInFrameLayout.createSequentialGroup().addComponent(jLabel8).addGap(18, 18, 18).addComponent(aUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGroup(addInfoInFrameLayout.createSequentialGroup().addComponent(jLabel7).addGap(18, 18, 18).addComponent(aUserSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGroup(addInfoInFrameLayout.createSequentialGroup().addComponent(aOKButton).addGap(45, 45, 45).addComponent(aCancelButton)))).addGroup(addInfoInFrameLayout.createSequentialGroup().addComponent(jLabel10).addGap(18, 18, 18).addComponent(aAlertTypeTextField, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)).addGroup(addInfoInFrameLayout.createSequentialGroup().addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.TRAILING).addComponent(jLabel9).addComponent(jLabel6)).addGap(18, 18, 18).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(aAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(aValueTextFiled, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)))).addContainerGap(247, Short.MAX_VALUE)));addInfoInFrameLayout.setVerticalGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(addInfoInFrameLayout.createSequentialGroup().addGap(46, 46, 46).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.TRAILING).addComponent(jLabel8).addComponent(aUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel7).addComponent(aUserSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel9).addComponent(aAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel10).addComponent(aAlertTypeTextField, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)).addGap(19, 19, 19).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel6).addComponent(aValueTextFiled, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)).addGap(42, 42, 42).addGroup(addInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(aOKButton).addComponent(aCancelButton)).addContainerGap(138, Short.MAX_VALUE)));selectInfoInFrame.setTitle("信号查询");selectInfoInFrame.setToolTipText("");selectInfoInFrame.setVisible(false);jLabel11.setText("单元号:");sUnitSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));jLabel12.setText("业主id:");sUserSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));jLabel13.setText("门牌号:");sRoomSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));jLabel14.setText("警报类型:");sAlertTypeSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));sSelectButton.setText("查询");jTable.setModel(new DefaultTableModel(new Object [][] {{"", "", "", "", ""},{"", "", "", "", ""},{"", "", "", "", ""},{"", "", "", "", ""}},new String [] {"警报类型", "时间", "范围", "警报值", "业主id"}) {private static final long serialVersionUID = 1L;Class[] types = new Class [] {java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class};boolean[] canEdit = new boolean [] {false, false, false, false, false};public Class getColumnClass(int columnIndex) {return types [columnIndex];}public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit [columnIndex];}});jScrollPane.setViewportView(jTable);GroupLayout selectInfoInFrameLayout = new GroupLayout(selectInfoInFrame.getContentPane());selectInfoInFrame.getContentPane().setLayout(selectInfoInFrameLayout);selectInfoInFrameLayout.setHorizontalGroup(selectInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(selectInfoInFrameLayout.createSequentialGroup().addGap(15, 15, 15).addComponent(jLabel11).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(sUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jLabel12).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(sUserSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(15, 15, 15).addComponent(jLabel13).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(sRoomSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(15, 15, 15).addComponent(jLabel14).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED).addComponent(sAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(15, 15, 15).addComponent(sSelectButton).addContainerGap(80, Short.MAX_VALUE)).addComponent(jScrollPane, GroupLayout.Alignment.TRAILING));selectInfoInFrameLayout.setVerticalGroup(selectInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(selectInfoInFrameLayout.createSequentialGroup().addGap(11, 11, 11).addGroup(selectInfoInFrameLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(jLabel11).addComponent(sUnitSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(jLabel12).addComponent(sUserSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(jLabel13).addComponent(sRoomSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(jLabel14).addComponent(sAlertTypeSelect, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addComponent(sSelectButton)).addGap(18, 18, 18).addComponent(jScrollPane, GroupLayout.PREFERRED_SIZE, 334, GroupLayout.PREFERRED_SIZE).addContainerGap(100, Short.MAX_VALUE)));updateInfoMenuItem.setText("信号处理");updateInfoMenuItem.setToolTipText("");updateInfoMenuItem.addActionListener((evt) -> {updateInfoMenuItemActionPerformed(evt);});topMenu.add(updateInfoMenuItem);addInfoMenuItem.setText("信号存储");topMenu.add(addInfoMenuItem);selectInfoMenuItem.setText("信号查询");selectInfoMenuItem.setToolTipText("");topMenu.add(selectInfoMenuItem);setJMenuBar(topMenu);GroupLayout layout = new GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(updateInfoInFrame, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(addInfoInFrame)).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(selectInfoInFrame, GroupLayout.Alignment.TRAILING)));layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(updateInfoInFrame, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(addInfoInFrame, GroupLayout.Alignment.TRAILING)).addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(selectInfoInFrame, GroupLayout.Alignment.TRAILING)));//TODOsetResizable(false);pack();}// </editor-fold>                        /*** 查询页面查询按钮点击事件* @param e*/private void sSelectButtonActionPerformed(ActionEvent e) {String username = sUserSelect.getSelectedItem().toString();String alertType = sAlertTypeSelect.getSelectedItem().toString();Object[][] tableModel = JDBCUtil.selectAlertTableModels( username, alertType);//TODOjTable.setModel(new DefaultTableModel(tableModel,new String [] {"警报类型", "时间", "范围", "警报值", "业主id"}) {private static final long serialVersionUID = 1L;Class[] types = new Class [] {java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class};boolean[] canEdit = new boolean [] {false, false, false, false, false};public Class getColumnClass(int columnIndex) {return types [columnIndex];}public boolean isCellEditable(int rowIndex, int columnIndex) {return canEdit [columnIndex];}});}/*** 取消按钮点击* @param evt*/private void uCancelButtonActionPerformed(ActionEvent evt) {uAlertTypeSelect.setSelectedIndex(0);uUnitSelect.setSelectedIndex(0);uValueTextFiled.setValue("0");}private void unitSelectItemChangePerformed(ItemEvent e, JComboBox<String> selectJcb, JComboBox<String> jcb) {String selectItem = selectJcb.getSelectedItem().toString();int unit = 0;if("任意".equals(selectItem)) {unit = -1;} else {unit = Integer.parseInt(selectItem.substring(0, 1));}String[] strs = JDBCUtil.selectUsernamesByUnit(unit);jcb.setModel(new DefaultComboBoxModel<>(strs));}/*** 打开信号查询页面* @param evt*/private void selectInfoMenuItemActionPerformed(ActionEvent evt) {addInfoInFrame.setVisible(false);updateInfoInFrame.setVisible(false);selectInfoInFrame.setVisible(true);sUnitSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));sUnitSelect.addItem("任意");for (String string : units) {sUnitSelect.addItem(string);}unitSelectItemChangePerformed(null, sUnitSelect, sUserSelect);unitSelectItemChangeRoomPerfored(null, sUnitSelect, sRoomSelect);userSelectItemChangePerformed(null, sUserSelect, sRoomSelect);roomSelectItemChangePerformed(null, sRoomSelect, sUserSelect);sAlertTypeSelect.setModel(new DefaultComboBoxModel<>(new String[] {}));sAlertTypeSelect.addItem("任意");for (String string : alertTypes) {sAlertTypeSelect.addItem(string);}}private void unitSelectItemChangeRoomPerfored(ItemEvent e, JComboBox<String> selectJcb, JComboBox<String> jcb) {String selectItem = selectJcb.getSelectedItem().toString();int unit = 0;if("任意".equals(selectItem)) {unit = -1;} else {unit = Integer.parseInt(selectItem.substring(0, 1));}String[] strs = JDBCUtil.selectRoomsByUnit(unit);jcb.setModel(new DefaultComboBoxModel<>(strs));}private void roomSelectItemChangePerformed(ItemEvent e, JComboBox<String> selectJcb, JComboBox<String> jcb) {String room = selectJcb.getSelectedItem().toString();String name = JDBCUtil.selectUsernameByRoom(room);if(jcb.getSelectedItem().equals(name)) return;int count = jcb.getItemCount();if(name != null)for (int i = 0; i < count; i++) {if(name.equals(jcb.getItemAt(i))) {jcb.setSelectedIndex(i);}}}private void userSelectItemChangePerformed(ItemEvent e, JComboBox<String> selectJcb, JComboBox<String> jcb) {String username = selectJcb.getSelectedItem().toString();String room = JDBCUtil.selectRoomByUsername(username);if(jcb.getSelectedItem().equals(room)) return;int count = jcb.getItemCount();if(room != null)for (int i = 0; i < count; i++) {if(room.equals(jcb.getItemAt(i))) {jcb.setSelectedIndex(i);}}}/*** 打开存储信号页面* @param evt*/private void addInfoMenuItemActionPerformed(ActionEvent evt) {selectInfoInFrame.setVisible(false);updateInfoInFrame.setVisible(false);addInfoInFrame.setVisible(true);aUnitSelect.setModel(new DefaultComboBoxModel<>(units));aAlertTypeSelect.setModel(new DefaultComboBoxModel<>(alertTypes));unitSelectItemChangePerformed(null, aUnitSelect, aUserSelect);}/*** 打开信号处理页面* @param evt*/private void updateInfoMenuItemActionPerformed(ActionEvent evt) {                                                   selectInfoInFrame.setVisible(false);updateInfoInFrame.setVisible(true);addInfoInFrame.setVisible(false);uUnitSelect.setModel(new DefaultComboBoxModel<>(units));unitSelectItemChangePerformed(null, uUnitSelect, uUserIdSelect);uAlertTypeSelect.setModel(new DefaultComboBoxModel<>(alertTypes));}                                                  /*** 信号处理* @param evt*/private void uOKButtonActionPerformed(ActionEvent evt) {                                          int value = Integer.parseInt(uValueTextFiled.getValue().toString());String alertItem = uAlertTypeSelect.getSelectedItem().toString();String username = uUserIdSelect.getSelectedItem().toString();WarningConfig config = JDBCUtil.selectWarningConfigByUsername(username, alertItem);if(config != null) {if(value > config.getSafemax()) {JOptionPane.showMessageDialog(this, alertItem + "值大于了安全警报!", "警告", JOptionPane.WARNING_MESSAGE);saveWarningMessage(username, alertItem, value);}else if(value < config.getSafemin()) {JOptionPane.showMessageDialog(this, alertItem + "值小于了安全警报!", "警告", JOptionPane.WARNING_MESSAGE);saveWarningMessage(username, alertItem, value);}else {JOptionPane.showMessageDialog(this, "修改成功!");}}}                                                                    /*** 有警报时保存改警报信息* @param username* @param alertItem* @param value*/private void saveWarningMessage(String username, String alertItem, int value) {JDBCUtil.saveWarningMessage(username, alertItem, value);}private void aUserSelectActionPerformed(ActionEvent evt) {                                            // TODO add your handling code here:}                                           private void aOKButtonActionPerformed(ActionEvent evt) {     String username = aUserSelect.getSelectedItem().toString();String alertItem = aAlertTypeSelect.getSelectedItem().toString();String value = aValueTextFiled.getText();if("".equals(value)) {JOptionPane.showMessageDialog(this, "值不能为空!");return;}int intValue = Integer.parseInt(value);String time = aAlertTypeTextField.getText();if("".equals(time)) {JOptionPane.showMessageDialog(this, "时间不能为空!");return;}int result = JDBCUtil.saveWarningMessage(username, alertItem, intValue, time);if(result > 0) {JOptionPane.showMessageDialog(this, "保存成功!");}}                                         private void aCancelButtonActionPerformed(ActionEvent evt) {                                              aUnitSelect.setSelectedIndex(0);
//        aUserSelect.setSelectedIndex(0);aAlertTypeSelect.setSelectedIndex(0);aAlertTypeTextField.setText("");aValueTextFiled.setText("");}                                             private void uUnitSelectActionPerformed(ActionEvent evt) {                                            // TODO add your handling code here:}                                           /*** @param args the command line arguments*/public static void main(String args[]) {new MainPage().setVisible(true);}}

数据库文件:

/*
SQLyog Community v12.4.3 (64 bit)
MySQL - 5.6.37-log : Database - home
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`home` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `home`;/*Table structure for table `admin` */DROP TABLE IF EXISTS `admin`;CREATE TABLE `admin` (`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '主键id',`name` varchar(20) NOT NULL COMMENT '用户名',`password` varchar(36) NOT NULL COMMENT '密码',`token` varchar(36) NOT NULL COMMENT '用户密码加密字符串',PRIMARY KEY (`id`),UNIQUE KEY `UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;/*Data for the table `admin` */insert  into `admin`(`id`,`name`,`password`,`token`) values
(1,'admin','123456','123456');/*Table structure for table `alertinfo` */DROP TABLE IF EXISTS `alertinfo`;CREATE TABLE `alertinfo` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`alertName` int(2) NOT NULL COMMENT '警报事项',`time` datetime NOT NULL COMMENT '警报时间',`safeMin` int(5) NOT NULL DEFAULT '0' COMMENT '安全最小数值',`safeMax` int(5) NOT NULL DEFAULT '0' COMMENT '安全最大数值',`userId` int(5) NOT NULL COMMENT '用户关联id',`value` int(5) NOT NULL DEFAULT '0' COMMENT '警报时的值',PRIMARY KEY (`id`),KEY `fk_user` (`userId`),KEY `alertName` (`alertName`),CONSTRAINT `alertName` FOREIGN KEY (`alertName`) REFERENCES `alertselection` (`id`),CONSTRAINT `fk_user` FOREIGN KEY (`userId`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;/*Data for the table `alertinfo` */insert  into `alertinfo`(`id`,`alertName`,`time`,`safeMin`,`safeMax`,`userId`,`value`) values
(1,2,'2018-05-26 18:36:09',10,20,1,0),
(2,2,'2018-05-26 18:36:09',10,20,2,0),
(4,2,'2018-05-26 18:37:22',10,20,1,0),
(5,2,'2018-05-26 18:41:41',10,20,1,10),
(6,2,'2018-05-26 16:36:09',10,20,1,10),
(7,2,'2018-01-25 12:00:00',10,20,1,1),
(8,1,'2018-05-28 14:49:15',20,30,1,35),
(9,2,'2018-05-28 15:31:20',10,20,1,23);/*Table structure for table `alertselection` */DROP TABLE IF EXISTS `alertselection`;CREATE TABLE `alertselection` (`id` int(2) NOT NULL AUTO_INCREMENT COMMENT '警报id',`alertName` varchar(10) NOT NULL COMMENT '警报名称',PRIMARY KEY (`id`),UNIQUE KEY `UNIQUE` (`alertName`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `alertselection` */insert  into `alertselection`(`id`,`alertName`) values
(2,'天然气'),
(3,'温度'),
(4,'湿度'),
(1,'煤气');/*Table structure for table `user` */DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(5) NOT NULL AUTO_INCREMENT COMMENT '主键id',`name` varchar(20) NOT NULL COMMENT '用户名',`pass` varchar(36) NOT NULL COMMENT '密码',`token` varchar(36) NOT NULL COMMENT '密码加密字符串',`build` int(5) NOT NULL COMMENT '栋数',`unit` int(5) DEFAULT NULL COMMENT '单元',`room` varchar(20) NOT NULL COMMENT '房间号 楼层+号数',PRIMARY KEY (`id`),UNIQUE KEY `UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;/*Data for the table `user` */insert  into `user`(`id`,`name`,`pass`,`token`,`build`,`unit`,`room`) values
(1,'张三','123456','123456',0,1,'1101'),
(2,'李四','123456','123456',0,1,'1002'),
(3,'王五','123456','123456',0,2,'1001');/*Table structure for table `warningconfig` */DROP TABLE IF EXISTS `warningconfig`;CREATE TABLE `warningconfig` (`id` int(5) NOT NULL AUTO_INCREMENT COMMENT '主键id',`alertName` int(2) NOT NULL COMMENT '警报类型',`safeMin` int(5) NOT NULL DEFAULT '0' COMMENT '安全最小数值',`safeMax` int(5) NOT NULL DEFAULT '0' COMMENT '安全最大数值',`userId` int(5) NOT NULL COMMENT '用户的关联id',PRIMARY KEY (`id`),KEY `user` (`userId`),KEY `fk_alertName` (`alertName`),CONSTRAINT `fk_alertName` FOREIGN KEY (`alertName`) REFERENCES `alertselection` (`id`),CONSTRAINT `user` FOREIGN KEY (`userId`) REFERENCES `user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;/*Data for the table `warningconfig` */insert  into `warningconfig`(`id`,`alertName`,`safeMin`,`safeMax`,`userId`) values
(1,1,10,20,1),
(2,2,10,20,1),
(3,3,10,20,1),
(4,4,10,20,1),
(5,1,10,20,2),
(6,2,10,20,2),
(7,3,10,20,2),
(8,4,10,20,2);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

swing小区安全管理系统相关推荐

  1. java图书馆管理系统_六天写出来的基于Swing的图书管理系统你不来吐槽一下?

    前段时间学习完了MySQL和JDBC,想着自己做个东西实战一下,于是写了一个烂大街的图书管理系统...但好歹是自己一个人日夜兼程,硬着头皮做出来的还像样的东西,总结一手吧.看的人欢迎吐槽.我会从以下几 ...

  2. java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 ...

  3. 基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql)

    基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  4. 基于Eclipse+Java Swing + Mysql图书管理系统

    一.项目概要: 基于Java Swing+Mysql(8.0)数据库的图书管理系统,具备登录.图书类别管理.图书管理功能. 二.获取方式: 有需要可以加QQ:571328502 点击下载 三.界面展示 ...

  5. [附源码]PHP计算机毕业设计小区水电管理系统(程序+LW)

    [附源码]PHP计算机毕业设计小区水电管理系统(程序+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: PHP+ Vscode + Mysql5. ...

  6. [附源码]Python计算机毕业设计Django的小区宠物管理系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  7. 小区出入登记记录系统java_一种小区出入管理系统的制作方法

    一种小区出入管理系统的制作方法 [技术领域] [0001]本实用新型具体涉及一种小区出入管理系统. [背景技术] [0002]随着现代社会信息化.城镇化发展变迀,人们的生活方式与生活节奏发生了巨大的变 ...

  8. 基于安卓的小区物业管理系统

    本文是基于安卓的小区物业管理系统的设计与实现.在20世纪90年代以来,随着网络.通信和信息技术的突破性进展,Internet技术在全球爆炸性增长并迅速普及.在这一时代背景下,移动端互联网应运而生了,各 ...

  9. java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+

    java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+ java计算机毕业设计的小区物业管理系 ...

最新文章

  1. mysql多个实例 主从库_mysql主从复制系列(1)搭建多个mysql实例环境
  2. 面试题:一条 sql 语句是如何经过 MySQL 的体系结构的?
  3. java队列_RPC远程调用和消息队列MQ的区别
  4. 就业模拟试题1_答案
  5. java 熔断_熔断理解 - THISISPAN - 博客园
  6. 中国交互式智能板市场趋势报告、技术动态创新及市场预测
  7. 我们为什么需要SDN?---致新人
  8. 第3章 面向对象 (上)
  9. linux amd显卡调风扇转速,显卡风扇转速设置教程方法
  10. 原生js实现多语言切换
  11. linux服务器常用软件部署搭建
  12. 韩立刚《计算机网络》| 第5章 传输层
  13. php5.6安装php-gd,centos73下php5.6安装GD库
  14. GraphQL学习过程应该是这样的 1
  15. 一个故事带你了解集线器、交换机与路由器
  16. PC党福音,育碧五款游戏大作登场E3 2014
  17. 摄氏度转华氏度,并且输出的结果保留两位小数
  18. 读书的5个秘诀 (余秋雨)
  19. Spring框架中的单例Bean是线程安全的么?
  20. java服务程序假死(进程存在但请求无响应)的几种原因

热门文章

  1. git ssh远程登录
  2. 被final修饰的变量到底能不能被修改
  3. Python分析股票行情代码
  4. java透明度_简单的透明度示例不适用于Java 3D
  5. word中如何设置奇偶页不同的页眉和页脚,怎么从指定页开始加页码
  6. Word奇偶页的页眉页脚设置
  7. 日内趋势票如何把握?
  8. 如何销售网站上的广告位
  9. 为什么选择Opera而不是火狐
  10. 进阶C语言------>字符函数和字符串函数------strerror函数