JAVA结课作品——超市管理系统

news2024/11/15 5:00:28

项目描述:一个简单的超市管理系统,能够实现用户登入和注册功能,共分为前台和后台两个主要界面,普通用户界面操作权限收到限制,只能对商品和销售记录进行简单查询操作,后台中可以进行商品的删除、修改、查询,可以查看用户信息,可以修改用户信息。具体的代码如下:

      

                            

 TooLUtil工具类:在该类中定义一些方法,用于判断字符串是否为空、获取当前时间、对时间进行格式转化,同时获取当前用户登入,具体代码如下所示:

package cn.qinlimei.goodmanager.utils;

import javax.xml.crypto.Data;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 在该类中定义一些方法,用于判断字符串是否为空、获取当前时间、对时间进行格式转化
 * 获取当前用户登入
 */
public class ToolUtil {

    //判断字符串是否为空
    public static boolean isEmpty(String str){
        if(str!=null&& !"".equals(str.trim())){//字符串两端的空格去掉
            return false;//不是空的返回false
        }
        return true;//空的话就返回真
    }

    //获取当前系统时间所对应的毫秒值
    public static Long getTime(){
        long time=System.currentTimeMillis();
        return time;
    }

    //将一个long类型的毫秒值转换成指定格式的日期字符串
    public static String getDataByTime(long time){
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        Date date=new Date(time);
        String value=format.format(date);
        return value;
    }
}

 LoginFrm类:实现用户登入的类

package cn.qinlimei.goodmanager.jframe;

import cn.qinlimei.goodmanager.dao.UserDao;
import cn.qinlimei.goodmanager.model.User;
import cn.qinlimei.goodmanager.utils.Dbutil;
import cn.qinlimei.goodmanager.utils.ToolUtil;
import cn.qinlimei.goodmanager.model.Goods;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;

//用户实现登入的界面
public class LoginFrm extends JFrame {
    public static User currentUser;//当登入成功后,使用该变量存储登入的用户
    private JFrame jf;//登入界面的窗体组件
    private JTextField userNameText;//输入用户名的文本框
    private JTextField passwordText;//输入密码的文本框
    private JComboBox comboBox;//用户角色的下拉选择框

    //创建一个UserDao对象
    private UserDao userDao=new UserDao();

    public LoginFrm(){
        //初始化窗体组件
        jf=new JFrame("超市管理系统");
        jf.getContentPane().setFont(new Font("幼圆",Font.BOLD,14));
        jf.setBounds(600,250,500,467);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.getContentPane().setLayout(null);

        //初始化展示用户名三个字所需要的标签
        JLabel label;
        label=new JLabel("用户名:");
        label.setForeground(Color.BLACK);
        label.setFont(new Font("幼圆",Font.BOLD,16));
        label.setBounds(110,80,75,40);
        jf.getContentPane().add(label);

        //初始化初始化用户名文本框组件
        userNameText=new JTextField();
        userNameText.setFont(new Font("幼圆",Font.BOLD,14));
        userNameText.setForeground(Color.BLACK);
        userNameText.setBounds(198,83,164,30);
        jf.getContentPane().add(userNameText);
        userNameText.setColumns(10);

        //初始化展示密码两个字所需要的标签
        JLabel label_1;
        label_1=new JLabel("密码:");
        label_1.setForeground(Color.BLACK);
        label_1.setFont(new Font("幼圆",Font.BOLD,16));
        label_1.setBounds(120,150,65,40);
        jf.getContentPane().add(label_1);

        //初始化密码输入的文本框组件
        passwordText=new JTextField();
        passwordText.setFont(new Font("幼圆",Font.BOLD,14));
        passwordText.setForeground(Color.BLACK);
        passwordText.setColumns(10);
        passwordText.setBounds(198,152,164,30);
        jf.getContentPane().add(passwordText);

        //初始化展示权限两个字的标签
        JLabel label_2;
        label_2=new JLabel("权限");
        label_2.setForeground(Color.BLACK);
        label_2.setFont(new Font("幼圆",Font.BOLD,15));
        label_2.setBounds(144,250,45,29);
        jf.getContentPane().add(label_2);

        //初始化角色选择的下拉框组件
        comboBox=new JComboBox();
        comboBox.setBounds(199,254,127,25);
        comboBox.addItem("普通成员");
        comboBox.addItem("管理员");
        jf.getContentPane().add(comboBox);

        //初始化登入按钮
        JButton button=new JButton("登入");

        //给登入按钮添加一个动作监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {   //编写登入的业务逻辑
                checkLogih();
            }
        });
        button.setBounds(153,320,65,29);
        jf.getContentPane().add(button);

        //初始化注册按钮
        JButton button_1=new JButton("注册");

        //给注册按钮添加一个动作监听器
        button_1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {    //编写注册的业务逻辑
                regUser();//去注册界面的方法
            }
        });
        button_1.setBounds(263,320,65,29);
        jf.getContentPane().add(button_1);

        //初始化展示 用户登入标题所需要的标签
        JLabel lbNewLable_1;
        lbNewLable_1=new JLabel("用户登入");
        lbNewLable_1.setFont(new Font("幼圆",Font.BOLD,25));
        lbNewLable_1.setBounds(200,10,122,51);
        jf.getContentPane().add(lbNewLable_1);

        //让图形界面显示且不可改变大小
        jf.setVisible(true);
        jf.setResizable(false);
    }

    //去注册页面所对应的方法
    public void regUser(){
        //把当前的jf页面隐藏掉
        jf.setVisible(false);
        new RegFram();
    }

    //完成用户登入的业务逻辑
    public void checkLogih(){

        //获取用户输入的用户名和密码
        String userName= userNameText.getText();
        String password= passwordText.getText();
        int index=comboBox.getSelectedIndex();
        if(ToolUtil.isEmpty(userName)||ToolUtil.isEmpty(password)){
            JOptionPane.showMessageDialog(null,"用户名和密码不能为空!");
            return;
        }

        //把数据封装到User中
        User user=new User();
        user.setUername(userName);
        user.setUerpassword(password);
        if(index==0){
            user.setRole(1);
        }else{
            user.setRole(2);
        }

        //获取一个链接对象
        Connection connection=null;
        try {
            connection= Dbutil.getConnection();
            User login=userDao.login(connection,user);
            if(login==null){
                JOptionPane.showMessageDialog(null,"登入失败");
            }else{
                currentUser =login;//记录当前登入的用户
                if(index==0){  //等于0说明选择的是普通用户
                    jf.dispose();
                    new UserMenuFrm();  //普通用户的登入界面
                }else{
                    jf.dispose();
                    new AdminMenuFrm();  //管理员的登入界面
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                Dbutil.closeConnection(connection);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }


    public static void main(String[] args) {
        LoginFrm loginFrm=new LoginFrm();
    }
}

AdminMenuFrm类:实现部门管理的类

package cn.qinlimei.goodmanager.jframe;

import cn.qinlimei.goodmanager.dao.DepartmentDao;
import cn.qinlimei.goodmanager.model.Department;
import cn.qinlimei.goodmanager.utils.Dbutil;
import cn.qinlimei.goodmanager.utils.ToolUtil;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;

public class AdminMenuFrm extends JFrame {
    private JFrame jf;
    private JTextField textField;
    private JButton btnNewButton;
    private JTextArea textArea;

    private DepartmentDao departmentDao=new DepartmentDao();

    public AdminMenuFrm(){

        //初始化界面所需要的窗体组件
        jf=new JFrame("管理员");
        jf.setBounds(400,100,600,429);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.getContentPane().setLayout(null);

        //初始化展示部门类别四个字所对应的标签
        JLabel label_1=new JLabel();
        label_1.setFont(new Font("幼圆",Font.BOLD,14));
        label_1.setText("部门名称:");
        label_1.setBounds(112,38,75,26);
        jf.getContentPane().add(label_1);

        //初始化输入部门名称的文本框
        textField=new JTextField();
        textField.setBounds(197,38,241,26);
        jf.getContentPane().add(textField);

        //初始化展示部门编号所对应的标签
        JLabel label=new JLabel();
        label.setFont(new Font("幼圆",Font.BOLD,14));
        label.setText("部门编号:");
        label.setBounds(112,120,75,26);
        jf.getContentPane().add(label);

        //初始化输入部门编号所需要的文本框
        textArea=new JTextArea();
        textArea.setColumns(10);
        textArea.setRows(5);
        textArea.setBackground(Color.WHITE);
        textArea.setBounds(197,114,241,25);
        jf.getContentPane().add(textArea);



        //初始化 添加 按钮
        btnNewButton=new JButton("添加");
        btnNewButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {//添加按钮的业务逻辑

                //获取部门名称和部门编号
               String typeName= textField.getText();
               int typeRemrke= Integer.parseInt(textArea.getText());

               //判断是否为空
                if(ToolUtil.isEmpty(typeName)||ToolUtil.isEmpty(String.valueOf(typeRemrke))){
                    JOptionPane.showMessageDialog(null,"请输入相关信息");
                    return;
                }

                //把数据封装到部门对象中
                Department department=new Department();
                department.setDepartmentname(typeName);
                department.setDepartmentid(typeRemrke);


                //获取链接对象
                Connection connection=null;
                try {
                    //把数据保存在数据库中
                    connection=Dbutil.getConnection();
                    //调用部门管理中的方法进行信息保存
                    int i=departmentDao.add(connection,department);
                    if(i==1){
                        JOptionPane.showMessageDialog(null,"添加成功");
                        reset();
                    }else if(i==2){
                        JOptionPane.showMessageDialog(null,"添加失败,已存在!");
                    }else{
                        JOptionPane.showMessageDialog(null,"添加失败!");
                    }

                } catch (Exception ex) {
                    ex.printStackTrace();
                }finally {
                    if(connection !=null){
                        try {
                            Dbutil.closeConnection(connection);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }


            }
        });
        btnNewButton.setFont(new Font("幼圆",Font.BOLD,14));
        btnNewButton.setBounds(182,281,80,26);
        jf.getContentPane().add(btnNewButton);

        //创建重置按钮
        JButton button=new JButton("重置");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                reset();

            }
        });
        button.setFont(new Font("幼圆",Font.BOLD,14));
        button.setBounds(360,281,80,26);
        jf.getContentPane().add(button);



        //创建菜单栏组件
        JMenuBar menuBar=new JMenuBar();
        jf.setJMenuBar(menuBar);

        //添加部门管理菜单
        JMenu mnNewMeun=new JMenu("部门管理");
        menuBar.add(mnNewMeun);

        //添加部门 选项
        JMenuItem mntmNewMenuItem=new JMenuItem("部门添加");
        mnNewMeun.add(mntmNewMenuItem);

        //添加部门修改选项
        JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改");
        mntmNewMenuItem_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddminTypeEdit();//部门修改的界面

            }
        });
        mnNewMeun.add(mntmNewMenuItem_1);

        //添加商品管理菜单
        JMenu mnNewMeun_2=new JMenu("商品管理");
        menuBar.add(mnNewMeun_2);

        //添加商品添加选项
        JMenuItem mntmNewMenuItem_2=new JMenuItem("添加商品");
        mntmNewMenuItem_2.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AdmingoodAdd();

            }
        });
        mnNewMeun_2.add(mntmNewMenuItem_2);

        //添加商品修改
        JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改");
        mntmNewMenuItem_3.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddmingoodEdit();

            }
        });
        mnNewMeun_2.add(mntmNewMenuItem_3);

        //添加用户管理菜单
        JMenu menu1=new JMenu("员工管理");
        menuBar.add(menu1);

        //添加用户选项
        JMenuItem mntmNewMenuItem_4=new JMenuItem("添加员工");
        mntmNewMenuItem_4.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddminUserinfo();

            }
        });
        menu1.add(mntmNewMenuItem_4);

        //添加流水信息选项
        JMenuItem mntmNewMenuItem_5=new JMenuItem("流水信息");
        mntmNewMenuItem_5.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new Addminflowinfo();

            }
        });
        menu1.add(mntmNewMenuItem_5);

        //添加退出系统菜单
        JMenu mnNewMeun_1=new JMenu("退出系统");
        mnNewMeun_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                JOptionPane.showMessageDialog(null,"欢迎下次使用!");
                jf.dispose();
            }
        });
        menuBar.add(mnNewMeun_1);

        jf.setVisible(true);
        jf.setResizable(false);

    }

    public void reset(){
        this.textField.setText("");
        this.textArea.setText("");
    }

    public static void main(String[] args) {
        new AdminMenuFrm();
    }

}

AdmingoodAdd类:实现商品管理的类:

package cn.qinlimei.goodmanager.jframe;

import cn.qinlimei.goodmanager.dao.GoodsDao;
import cn.qinlimei.goodmanager.model.Goods;
import cn.qinlimei.goodmanager.utils.Dbutil;
import cn.qinlimei.goodmanager.utils.ToolUtil;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.math.BigDecimal;
import java.sql.Connection;

public class AdmingoodAdd extends Exception {
    private JFrame jf;//展示添加图书组件的窗体组件
    private JTextField textField_1;//输入商品名所需要的文本框
    private JTextField textField_2;//输入编号文本框
    private JTextField textField_3;//输入条形码文本框
    private JTextField textField_4;//输入产地文本框
    private JTextField textField_5;//输入产商文本框
    private JTextField textField_6;//输入规文本框
    private JTextField textField_7;//输入文本框
    private JTextField textField_8;//输入售价文本框
    private JTextField textField_9;//输入库存文本框
    private JTextField textField_10;//库存下限文本框
    //创建商品Dao对象
    private GoodsDao goodsDao=new GoodsDao();

    public AdmingoodAdd() {
        //初始化商品添加窗口组件
        jf = new JFrame("管理员界面");
        jf.setBounds(400, 100, 611, 450);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.getContentPane().setLayout(null);

        //创建一个添加商品信息所对应的面板组件
        JPanel panel = new JPanel();
        panel.setBorder(new TitledBorder(null, "书籍添加", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black));
        panel.setBounds(23, 21, 554, 350);
        jf.getContentPane().add(panel);
        panel.setLayout(null);

        //创建展示商品名所需要的标签
        JLabel lblNewLabel=new JLabel("名称:");
        lblNewLabel.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel.setBounds(55,31,45,27);
        panel.add(lblNewLabel);

        //初始化输入商品名所需的文本框
        textField_1=new JTextField();
        textField_1.setBounds(101,31,129,27);
        panel.add(textField_1);
        textField_1.setColumns(10);

        //创建展示编号所需要的标签
        JLabel lblNewLabel_2=new JLabel("编号:");
        lblNewLabel_2.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_2.setBounds(294,31,45,27);
        panel.add(lblNewLabel_2);

        //初始化编号文本框
        textField_2=new JTextField();
        textField_2.setBounds(340,31,128,27);
        panel.add(textField_2);
        textField_2.setColumns(10);

        //创建展示条形码所需要的标签
        JLabel lblNewLabel_3=new JLabel("条形码:");
        lblNewLabel_3.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_3.setBounds(43,79,60,27);
        panel.add(lblNewLabel_3);

        //初始化输入条形码文本框
        textField_3=new JTextField();
        textField_3.setBounds(101,79,129,27);
        panel.add(textField_3);
        textField_3.setColumns(10);

        //创建展示产地的标签
        JLabel lblNewLabel_4=new JLabel("产地:");
        lblNewLabel_4.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_4.setBounds(294,79,60,27);
        panel.add(lblNewLabel_4);

        //初始化产地文本
        textField_4=new JTextField();
        textField_4.setBounds(340,79,129,27);
        panel.add(textField_4);
        textField_4.setColumns(10);

        //产商标签
        JLabel lblNewLabel_5=new JLabel("产商:");
        lblNewLabel_5.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_5.setBounds(55,127,60,27);
        panel.add(lblNewLabel_5);

        //初始化产商文本
        textField_5=new JTextField();
        textField_5.setBounds(101,127,129,27);
        panel.add(textField_5);
        textField_5.setColumns(10);

        //规格标签
        JLabel lblNewLabel_6=new JLabel("规格:");
        lblNewLabel_6.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_6.setBounds(294,127,60,27);
        panel.add(lblNewLabel_6);

        //初始化规格文本
        textField_6=new JTextField();
        textField_6.setBounds(340,127,129,27);
        panel.add(textField_6);
        textField_6.setColumns(10);

        //进价标签
        JLabel lblNewLabel_7=new JLabel("进价:");
        lblNewLabel_7.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_7.setBounds(45,175,60,27);
        panel.add(lblNewLabel_7);

        //进价文本
        textField_7=new JTextField();
        textField_7.setBounds(101,175,129,27);
        panel.add(textField_7);
        textField_7.setColumns(10);

        //售价标签
        JLabel lblNewLabel_8=new JLabel("售价:");
        lblNewLabel_8.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_8.setBounds(294,175,45,27);
        panel.add(lblNewLabel_8);

        //售价文本
        textField_8=new JTextField();
        textField_8.setBounds(340,175,129,27);
        panel.add(textField_8);
        textField_8.setColumns(10);

        //库存标签
        JLabel lblNewLabel_9=new JLabel("库存:");
        lblNewLabel_9.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_9.setBounds(45,223,45,27);
        panel.add(lblNewLabel_9);

        //库存文本
        textField_9=new JTextField();
        textField_9.setBounds(101,223,129,27);
        panel.add(textField_9);
        textField_9.setColumns(10);

        //库存下限标签
        JLabel lblNewLabel_10=new JLabel("下限:");
        lblNewLabel_10.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_10.setBounds(294,223,45,27);
        panel.add(lblNewLabel_10);

        //库存下限文本
        textField_10=new JTextField();
        textField_10.setBounds(340,223,129,27);
        panel.add(textField_10);
        textField_10.setColumns(10);

        //查询数据库获取类别数据

        //创建添加按钮
        JButton btnNewButton=new JButton("添加");
        btnNewButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {  //添加商品的业务逻辑代码
                //从文本框中获取用户输入的数据
                String goodname=textField_1.getText();
                String goodid=textField_2.getText();
                String goodtxm=textField_3.getText();
                String goodcd=textField_4.getText();
                String goodcs=textField_5.getText();
                String goodgg=textField_6.getText();
                String goodjj=textField_7.getText();
                String goodsj=textField_8.getText();
                String goodkc=textField_9.getText();
                String goodxx=textField_10.getText();

                //对数据进行校验
                if(ToolUtil.isEmpty(goodname)||
                        ToolUtil.isEmpty(goodid)||
                        ToolUtil.isEmpty(goodtxm)||
                        ToolUtil.isEmpty(goodcd)||
                        ToolUtil.isEmpty(goodcs)||
                        ToolUtil.isEmpty(goodgg)||
                        ToolUtil.isEmpty(goodjj)||
                        ToolUtil.isEmpty(goodsj)||
                        ToolUtil.isEmpty(goodkc)||
                        ToolUtil.isEmpty(goodxx)){
                    JOptionPane.showMessageDialog(null,"请输入相关内容!");
                    return;

                }

                //因为从文本框中得到的是字符串类型的数据,无法将整形等数据赋给商品对象中的整形等数据,因此要进行数据解析
                Integer bianhao;//编号
                Double jinjia;//进价
                Double shoujia;//售价
                Integer kucun;//库存
                Integer kcxiaxian;//库存下限

                try {
                    bianhao=Integer.parseInt(goodid);
                    jinjia= new BigDecimal(goodjj).setScale(2).doubleValue();//保留两位小数点
                    shoujia= new BigDecimal(goodsj).setScale(2).doubleValue();
                    kucun=Integer.parseInt(goodkc);
                    kcxiaxian=Integer.parseInt(goodxx);

                }catch (Exception e1){
                    JOptionPane.showMessageDialog(null,"参数错误!");
                    return;
                }

                //创建一个商品对象用来封装参数
                Goods goods=new Goods();
                goods.setGoodtxm(goodtxm);
                goods.setGoodid(bianhao);
                goods.setGoodname(goodname);
                goods.setGoodcd(goodcd);
                goods.setGoodgg(goodgg);
                goods.setGoodcj(goodcs);
                goods.setGoodj(jinjia);
                goods.setGoodsj(shoujia);
                goods.setGoodxx(kcxiaxian);
                goods.setGoodkc(kucun);

                //获取链接对象进行数据保存操作
                Connection connection=null;
                try {
                    connection=Dbutil.getConnection();
                    //调用商品dao中的方法完成数据保存
                    int i=goodsDao.add(connection,goods);//会返回一个整形
                    if(i==1){
                        JOptionPane.showMessageDialog(null,"添加成功!");
                        reset();//进行清空操作
                    }else {
                        JOptionPane.showMessageDialog(null,"添加失败!");
                    }



                } catch (Exception ex) {
                    ex.printStackTrace();
                }finally {
                    if(connection!=null){
                        try {
                            Dbutil.closeConnection(connection);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }


            }
        });
        btnNewButton.setFont(new Font("幼圆",Font.BOLD,14));
        btnNewButton.setBounds(124,280,77,27);
        panel.add(btnNewButton);

        //创建重置按钮
        JButton button=new JButton("重置");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                reset();
            }
        });
        button.setFont(new Font("幼圆",Font.BOLD,14));
        button.setBounds(329,280,77,27);
        panel.add(button);

        //创建菜单栏组件
        JMenuBar menuBar=new JMenuBar();
        jf.setJMenuBar(menuBar);

        //添加部门管理菜单
        JMenu mnNewMenu=new JMenu("部门管理");
        menuBar.add(mnNewMenu);

        //添加  添加部门选项
        JMenuItem mntmNewMenuItem=new JMenuItem("部门添加");
        mntmNewMenuItem.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AdminMenuFrm();

            }
        });
        mnNewMenu.add(mntmNewMenuItem);

        //添加   部门修改选项
        JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改");
        mntmNewMenuItem_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddminTypeEdit();

            }
        });
        mnNewMenu.add(mntmNewMenuItem_1);

        //商品管理菜单
        JMenu mnNewMenu_2=new JMenu("商品管理");
        menuBar.add(mnNewMenu_2);

        //商品添加 选项
        JMenuItem mntmNewMenuItem_2=new JMenuItem("商品添加");
        mnNewMenu_2.add(mntmNewMenuItem_2);

        //商品修改 选项
        JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改");
        mntmNewMenuItem_3.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddmingoodEdit();//商品修改的界面

            }
        });
        mnNewMenu_2.add(mntmNewMenuItem_3);

        //员工管理菜单
        JMenu menu1=new JMenu("员工管理");
        menuBar.add(menu1);

        //添加员工  选项
        JMenuItem mntnNewMenuItem_4=new JMenuItem("员工信息");
        mntnNewMenuItem_4.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddminUserinfo();//进入员工管理的界面

            }
        });
        menu1.add(mntnNewMenuItem_4);

        //添加流水信息菜单选项
        JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息");
        mntnNewMenuItem_5.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new Addminflowinfo();

            }
        });
        menu1.add(mntnNewMenuItem_5);

        //添加退出系统菜单
        JMenu mnNewMenu_1=new JMenu("退出系统");
        mnNewMenu_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                JOptionPane.showMessageDialog(null,"欢迎下次使用!");
                jf.dispose();

            }
        });
        menuBar.add(mnNewMenu_1);


        //展示jf,并且不可改变大小
        jf.setVisible(true);
        jf.setResizable(false);

    }

    public void reset(){
        //清空所有文本框中的内容
        textField_1.setText("");
        textField_2.setText("");
        textField_3.setText("");
        textField_4.setText("");
        textField_5.setText("");
        textField_6.setText("");
        textField_7.setText("");
        textField_8.setText("");
        textField_9.setText("");
        textField_10.setText("");
    }


    public static void main(String[] args) {
        new AdmingoodAdd();
    }
}

AdminUserinfo类:实现员工管理的类:

package cn.qinlimei.goodmanager.jframe;

import cn.qinlimei.goodmanager.dao.StaffDao;
import cn.qinlimei.goodmanager.dao.UserDao;
import cn.qinlimei.goodmanager.model.Goods;
import cn.qinlimei.goodmanager.model.UserStaff;
import cn.qinlimei.goodmanager.utils.Dbutil;
import cn.qinlimei.goodmanager.utils.ToolUtil;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Date;
import java.util.Vector;

import static cn.qinlimei.goodmanager.utils.ToolUtil.getDataByTime;

public class AddminUserinfo {
    private JFrame jf;//展示用户管理界面的窗体组件
    private JTable table;//展示员工信息的表格组件
    private DefaultTableModel model;//封装部门信息所需要的表格数据模型组件
    private JTextField textField;//输入工号所需要的文本框组件
    private JTextField textField_1;//输入ID所需要的文本框
    private JTextField textField_2;//输入名文本框
    private JTextField textField_3;//输入sex文本框
    private JTextField textField_4;//输入身份证文本框
    private JTextField textField_5;//输入birth文本框
    private JTextField textField_6;//输入phone本框
    private JTextField textField_7;//输入did文本框

    private StaffDao staffDao=new StaffDao();

    public AddminUserinfo(){
        jf=new JFrame("管理员界面");
        jf.setBounds(400,50,600,680);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JMenuBar menuBar=new JMenuBar();
        jf.setJMenuBar(menuBar);

        //添加部门管理菜单
        JMenu mnNewMenu=new JMenu("部门管理");
        menuBar.add(mnNewMenu);

        //添加  添加部门选项
        JMenuItem mntmNewMenuItem=new JMenuItem("部门添加");
        mntmNewMenuItem.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AdminMenuFrm();

            }
        });
        mnNewMenu.add(mntmNewMenuItem);

        //添加   部门修改选项
        JMenuItem mntmNewMenuItem_1=new JMenuItem("部门修改");
        mntmNewMenuItem_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AddminTypeEdit();
            }
        });
        mnNewMenu.add(mntmNewMenuItem_1);

        //商品管理菜单
        JMenu mnNewMenu_2=new JMenu("商品管理");
        menuBar.add(mnNewMenu_2);

        //商品添加 选项
        JMenuItem mntmNewMenuItem_2=new JMenuItem("商品添加");
        mntmNewMenuItem_2.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new AdmingoodAdd();//商品添加的界面

            }
        });
        mnNewMenu_2.add(mntmNewMenuItem_2);

        //商品修改 选项
        JMenuItem mntmNewMenuItem_3=new JMenuItem("商品修改");
        mnNewMenu_2.add(mntmNewMenuItem_3);

        //员工管理菜单
        JMenu menu1=new JMenu("员工管理");
        menuBar.add(menu1);

        //添加员工  选项
        JMenuItem mntnNewMenuItem_4=new JMenuItem("员工信息");
        menu1.add(mntnNewMenuItem_4);

        //添加流水信息菜单选项
        JMenuItem mntnNewMenuItem_5=new JMenuItem("流水信息");
        mntnNewMenuItem_5.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                jf.dispose();
                new Addminflowinfo();

            }
        });
        menu1.add(mntnNewMenuItem_5);

        //添加退出系统菜单
        JMenu mnNewMenu_1=new JMenu("退出系统");
        mnNewMenu_1.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                JOptionPane.showMessageDialog(null,"欢迎下次使用!");
                jf.dispose();

            }
        });
        menuBar.add(mnNewMenu_1);

        //创建查询的操作面板
        JPanel panel = new JPanel();
        panel.setBorder(new TitledBorder(null, "员工查询", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black));
        panel.setBounds(20, 10, 541, 78);
        jf.getContentPane().add(panel);
        panel.setLayout(null);
        jf.getContentPane().setLayout(null);

        //初始化查询字段所对应的
        JLabel lblNewLabel=new JLabel("工号:");
        lblNewLabel.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel.setBounds(125,31,45,27);
        panel.add(lblNewLabel);

        //初始化输入查询关键字所对应的文本框
        textField=new JTextField();
        textField.setBounds(185,28,146,24);
        panel.add(textField);
        textField.setColumns(10);

        //创建查询按钮
        JButton button=new JButton("查询");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String staffid=textField.getText();
                int gonghao=Integer.parseInt(staffid);
                UserStaff userStaff=new UserStaff();
                userStaff.setStaffid(gonghao);
                putDtates(userStaff);

            }
        });
        button.setFont(new Font("幼圆",Font.BOLD,14));
        button.setBounds(352,28,81,25);
        panel.add(button);


        //创建员工查询的面板
        JPanel panel_1 = new JPanel();
        panel_1.setBorder(new TitledBorder(null, "员工信息", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black));
        panel_1.setBounds(20, 105, 541, 195);
        panel_1.setLayout(null);

        //展示商品信息所对应的表头数据
        String[]title={"工号","姓名","性别","身份证","出生日期","电话","部门"};

        //展示商品信息所需要的二维数组
        String[][]dates={};

        //初始化展示商品信息所对应的表格数据模型
        model=new DefaultTableModel(dates,title);

        //初始化表格组件
        table=new JTable(model);

        //查询数据库获取的所有员工信息
        putDtates(new UserStaff());


        table.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent evt) {
                typeTableMousePressed();

            }
        });

        //添加到面板中
        panel_1.setLayout(null);
        JScrollPane jscrollPane=new JScrollPane();
        jscrollPane.setBounds(20,22,496,154);
        jscrollPane.setViewportView(table);
        panel_1.add(jscrollPane);
        jf.getContentPane().add(panel_1);

        //创建编辑商品信息所对应的面板
        JPanel panel_2 = new JPanel();
        panel_2.setBorder(new TitledBorder(null, "员工编辑", TitledBorder.LEADING, TitledBorder.TOP, null, Color.black));
        panel_2.setBounds(20, 310, 541, 292);
        jf.getContentPane().add(panel_2);
        panel_2.setLayout(null);

        //创建展示商品名所需要的标签
        JLabel lblNewLabel_1=new JLabel("姓名:");
        lblNewLabel_1.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_1.setBounds(55,31,45,27);
        panel_2.add(lblNewLabel_1);

        //初始化输入商品名所需的文本框
        textField_1=new JTextField();
        textField_1.setBounds(101,31,129,27);
        panel_2.add(textField_1);
        textField_1.setColumns(10);

        //创建展示编号所需要的标签
        JLabel lblNewLabel_2=new JLabel("工号:");
        lblNewLabel_2.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_2.setBounds(294,31,45,27);
        panel_2.add(lblNewLabel_2);

        //初始化编号文本框
        textField_2=new JTextField();
        textField_2.setBounds(340,31,128,27);
        panel_2.add(textField_2);
        textField_2.setColumns(10);

        //创建展示条形码所需要的标签
        JLabel lblNewLabel_3=new JLabel("性别:");
        lblNewLabel_3.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_3.setBounds(54,79,60,27);
        panel_2.add(lblNewLabel_3);

        //初始化输入条形码文本框
        textField_3=new JTextField();
        textField_3.setBounds(101,79,129,27);
        panel_2.add(textField_3);
        textField_3.setColumns(10);

        //创建展示产地的标签
        JLabel lblNewLabel_4=new JLabel("身份证:");
        lblNewLabel_4.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_4.setBounds(277,79,60,27);
        panel_2.add(lblNewLabel_4);

        //初始化产地文本
        textField_4=new JTextField();
        textField_4.setBounds(340,79,129,27);
        panel_2.add(textField_4);
        textField_4.setColumns(10);

        //产商标签
        JLabel lblNewLabel_5=new JLabel("出生日期:");
        lblNewLabel_5.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_5.setBounds(23,127,75,27);
        panel_2.add(lblNewLabel_5);

        //初始化产商文本
        textField_5=new JTextField();
        textField_5.setBounds(101,127,129,27);
        panel_2.add(textField_5);
        textField_5.setColumns(10);

        //规格标签
        JLabel lblNewLabel_6=new JLabel("电话:");
        lblNewLabel_6.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_6.setBounds(289,127,60,27);
        panel_2.add(lblNewLabel_6);

        //初始化规格文本
        textField_6=new JTextField();
        textField_6.setBounds(340,127,129,27);
        panel_2.add(textField_6);
        textField_6.setColumns(10);

        //进价标签
        JLabel lblNewLabel_7=new JLabel("部门:");
        lblNewLabel_7.setFont(new Font("幼圆",Font.BOLD,14));
        lblNewLabel_7.setBounds(55,175,60,27);
        panel_2.add(lblNewLabel_7);

        //进价文本
        textField_7=new JTextField();
        textField_7.setBounds(101,175,129,27);
        panel_2.add(textField_7);
        textField_7.setColumns(10);

        JButton btnNewButton_1=new JButton("修改");
        btnNewButton_1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String staffid=textField_1.getText();
                String staffname=textField_2.getText();
                String staffsex=textField_3.getText();
                String staffsfz=textField_4.getText();
                String staffbirth=textField_5.getText();
                String staffphone=textField_6.getText();
                String staffdid=textField_7.getText();

                if(ToolUtil.isEmpty(staffid)||
                        ToolUtil.isEmpty(staffname)||
                        ToolUtil.isEmpty(staffsex)||
                        ToolUtil.isEmpty(staffsfz)||
                        ToolUtil.isEmpty(staffbirth)||
                        ToolUtil.isEmpty(staffphone)||
                        ToolUtil.isEmpty(staffdid)){
                    JOptionPane.showMessageDialog(null,"请输入相关内容!");
                    return;
                }

                //封装到userstaff
                UserStaff userStaff=new UserStaff();
                userStaff.setStaffid(Integer.parseInt(staffid));
                userStaff.setStaffname(staffname);
                userStaff.setStaffsex(staffsex);
                userStaff.setStaffsfz(staffsfz);
                userStaff.setStaffbirthday(new Date(staffbirth));
                userStaff.setStaffphone(staffphone);
                userStaff.setStaffdid(Integer.parseInt(staffdid));

                //获取链接
                Connection connection=null;
                try {
                    connection=Dbutil.getConnection();
                    //调用修改函数
                    int i=staffDao.update(connection,userStaff);
                    if(i==1){
                        JOptionPane.showMessageDialog(null,"修改成功!");
                        putDtates(new UserStaff());
                    }else{
                        JOptionPane.showMessageDialog(null,"修改失败!");
                    }




                } catch (Exception ex) {
                    ex.printStackTrace();
                }finally {
                    if(connection!=null){
                        try {
                            Dbutil.closeConnection(connection);
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                }

            }
        });
        btnNewButton_1.setBounds(230,240,93,25);
        btnNewButton_1.setFont(new Font("幼圆",Font.BOLD,14));
        panel_2.add(btnNewButton_1);



       //展示jf,并且不可改变大小
        jf.setVisible(true);
        jf.setResizable(false);


    }



    public void typeTableMousePressed(){
        //获取用户所选择的行索引
        int row=table.getSelectedRow();
        //拿到书的编号
        //拿这行所对应的数据  index表示第几行 0表示第一列 1表示第二列
        textField_1.setText(table.getValueAt(row,0).toString());
        textField_2.setText(table.getValueAt(row,1).toString());
        textField_3.setText(table.getValueAt(row,2).toString());
        textField_4.setText(table.getValueAt(row,3).toString());
        textField_5.setText(table.getValueAt(row,4).toString());
        textField_6.setText(table.getValueAt(row,5).toString());
        textField_7.setText(table.getValueAt(row,6).toString());


    }


    public void putDtates(UserStaff staff){
        //将获得的对应数据给数据模型对象
        DefaultTableModel model=(DefaultTableModel) table.getModel();
        model.setRowCount(0);//设置总的行数

        //获取链接对象
        Connection connection=null;
        try {
            connection= Dbutil.getConnection();
            //调用UserDao中的方法进行查询
            ResultSet resultSet=staffDao.list(connection,staff);
            //如果有数据的话
            while (resultSet.next()){
                Vector rowData=new Vector();
                //拿数据
                rowData.add(resultSet.getInt("staff_id"));//编码1
                rowData.add(resultSet.getString("staff_name"));//商品名称2
                rowData.add(resultSet.getString("staff_sex"));//条形码3
                rowData.add(resultSet.getString("staff_sfz"));//产地4
                rowData.add(resultSet.getDate("staff_birthday"));//产商5
                rowData.add(resultSet.getString("staff_phone"));//规格型号6
                rowData.add(resultSet.getInt("did"));//库存7


                //将行数据添加到数据模型中
                model.addRow(rowData);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(connection!=null){
                try {
                    Dbutil.closeConnection(connection);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }



    }



    public static void main(String[] args) {
        new AddminUserinfo();
    }
}

实现结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 设计模式——单例模式

目录 1.结构2.实现2.1.饿汉式2.1.1.静态变量2.1.2.静态代码块2.1.3.枚举方式 2.2.懒汉式2.2.1.synchronized 线程安全2.2.2.双重检查锁2.2.3.静态内部类方式 3.破坏单例模式3.1.序列化反序列化3.2.反射 4.问题解决5.JDK 源码解析——Runtime 类 1.结构 (1&#xff…

03-MySQL-基础篇-SQL之DDL语句

SQL之DDL语句 前言DDL数据库操作表操作查询操作数据类型案例修改删除 前言 *本篇来学习下SQL中的DDL语句 DDL 全称Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 数据库操作 查询所有数据库 s…

数字与字符的对决:力扣“将所有数字用字符替换”的独特方法

本篇博客会讲解力扣“1844. 将所有数字用字符替换”的解题思路,这是题目链接。 本题的解题思路是:遍历字符串,按照题目描述修改字符。 有一个需要注意的点:循环的结束条件是什么呢?是s[i] ! \0’吗?不是的…

多线程(2):线程同步

线程同步是在多线程编程过程中对数据保护的一种机制,保护的数据是共享数据。共享数据就是多个线程共同访问的一块资源,也就是一块内存。假设有3个线程,其中A,B线程在同一个时间点往这块内存中写数据,于此同时C线程往这块内存中读数…

视频编码流程 YUV数据编码为H264数据

文章目录 1.视频编码流程2.实战demo3.相关编码知识点讲解1. 参数设置问题:2. 关于av_opt_set3. 关于码流设置 1.视频编码流程 2.实战demo #ifndef MAINBACK_C #define MAINBACK_C #endif // MAINBACK_C #include <stdint.h> #include <stdio.h> #include <stdl…

火车头采集器AI伪原创[php源码]

本文介绍php版本的火车头采集器AI伪原创&#xff0c;对于网站的原创内容&#xff0c;站长朋友们一定很头疼。作为一个草根站长&#xff0c;自己写原创文章太累了。当然&#xff0c;我并不是说你不能写。自己写原创文章是不现实的。时间是最大的问题。 也许有的站长朋友会问&…

自定义封装Mybatis的过程

手写持久层框架思路分析&#xff1a; 步骤1:加载数据库配置信息&#xff0c;包括数据库url&#xff0c;端口&#xff0c;数据库名字&#xff1b;加载所有sqlmapper文件。 步骤2: 创建javaBean&#xff0c;全局配置类&#xff0c;Configuration&#xff0c;映射配置类&#xff…

香橙派和树莓派基于官方外设开发

香橙派和树莓派基于官方外设开发 1.wiringPi外设SDK安装 方式一&#xff1a; git clone https://github.com/orangepi-xunlong/wiringOP //下载源码 cd wiringOP //进入文件夹 sudo ./build clean //清除编译信息 sudo ./build //编译方式二 通过windows浏览器打开https://…

全网最新网络安全学习路线

在各大平台搜的网安学习路线都太粗略了。。。。看不下去了&#xff01; 我把自己整理的系统学习路线&#xff0c;拿出来跟大家分享了&#xff01;点击查看详细路线图 建议的学习顺序&#xff1a; 一、网络安全学习普法&#xff08;心里有个数&#xff0c;要进去坐几年&#xf…

Java入门教程||Java 网络编程||Java 发送邮件

Java 网络编程 网络编程是指编写运行在多个设备&#xff08;计算机&#xff09;的程序&#xff0c;这些设备都通过网络连接起来。 java.net包中J2SE的API包含有类和接口&#xff0c;它们提供低层次的通信细节。你可以直接使用这些类和接口&#xff0c;来专注于解决问题&#…

基于simulink视频处理系统多核仿真(附源码)

一、前言 此示例演示如何使用 Simulink中的数据流执行域在多个内核上运行视频处理系统。 数据流执行域允许您在计算密集型系统的设计中使用多个内核。此示例演示数据流作为子系统的执行域如何提高模型的模拟性能。 二、视频中的对象计数 此示例演示如何使用基本形态运算符从…

Docker部署Doris超详细图文教程

Doris安装有非常多的方法&#xff0c;这里主要介绍Docker中使用dev容器用来学习和测试的方法&#xff0c;避免在其他教程中踩坑(生产环境不建议使用Docker安装) 这里介绍一个不踩坑的docker本地单机版&#xff0c;笔者安装环境为Windows下的Docker&#xff0c;若为Linux系统安装…

SwiftUI + Swift 设备振动

如何让设备振动呢 iPhone 6S 3D Touch&#xff0c;可以识别轻&#xff0c;中&#xff0c;重三种按压力度&#xff0c;配合恰到好处的振动有利于提升交互体验&#xff0c;但后面的新设备都不支持 3D Touch 了&#xff0c;改为了检测按压时间&#xff0c;按同一个图标&#xff0…

如何用canvans实现地图上的运动轨迹

1.先需要一个地图的图片 2.通过canvas绘制出运动轨迹 // 创建渐变function createGradient(context, p0, p1) {const gradient context.createLinearGradient(p0.x, p0.y, p1.x, p1.y);gradient.addColorStop(0, "rgba(255, 0, 255, 0)");gradient.addColorStop(1,…

颜色渐变的数据密集适用的堆叠图

一般情况会用柱状图去堆叠&#xff0c;但是如果数据量太大了&#xff0c;就可考虑这种方式堆叠。可以呈现时间和数量上不同层次数据的变化。 效果图&#xff1a; 比较详细的注释一下源码&#xff1a; import matplotlib as mpl import matplotlib.pyplot as plt import numpy …

第七章:L2JMobius学习 – 登录服务LoginServer讲解

在上一个章节中&#xff0c;我们学习了网络数据传输的封装network。那么&#xff0c;在本章的登录服务LoginServer的讲解中&#xff0c;我们就来使用一下这个封装好的功能。Network的封装需要我们继承很多的接口或类。我们首先查看一下登录服务LoginServer的文件结构&#xff0…

[Android 13]Binder系列--获取ServiceManager

获取ServiceManager hongxi.zhu 2023-7-1 以SurfaceFlinger为例&#xff0c;分析客户端进程如何获取ServiceManager代理服务对象 主要流程 SurfaceFlinger中获取SM服务 frameworks/native/services/surfaceflinger/main_surfaceflinger.cpp // publish surface flingersp<…

mysql单表查询,排序,分组查询,运算符

CREATE TABLE emp (empno int(4) NOT NULL, --员工编号ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工名字job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,--员工工作mgr int(4) NULL DEFAULT NU…

随机产生50个100以内的不重复的整数,设计位图排序算法进行排序。

1.问题 随机产生50个100以内的不重复的整数&#xff0c;设计位图排序算法进行排序。 2.设计思路 阶段1&#xff1a; 初始化一个空集合    for i[0,n)    bit[i]0 阶段2&#xff1a; 读入数据i&#xff0c;并设置bit[i]1    for each i in the input file    bit[i]1…

Tomcat 应用服务 WEB服务

简述&#xff1a; 中间件产品介绍 目前来说IBM的WebSphere&#xff0c;Oracle的Weblogic占据了市场上Java语言Web站点的部分份额&#xff0c;该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司的Web场景中&#xff0c;但是其高昂的价格也使得中小型互联…