• 第15周作业


    一、题目

    编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。

    二、源代码

    package TwentuSixth;
    /*
     * 通过JDBC直连和加载驱动建立连接,两个textfiled分别接受username和password通过sql语句查询并输出结果
     * 
     * 
     */
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class Test extends JFrame {
    
        private JPanel contentPane;
        private JTextField textField;
        private JTextField textField_1;
        Connection con = null;
    
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Test frame = new Test();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
        public Test() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            
            JLabel label = new JLabel("u7528u6237u540DuFF1A");
            label.setBounds(66, 72, 54, 15);
            contentPane.add(label);
            
            JLabel label_1 = new JLabel("u5BC6u7801uFF1A");
            label_1.setBounds(66, 134, 54, 15);
            contentPane.add(label_1);
            
            textField = new JTextField();
            textField.setBounds(173, 69, 164, 21);
            contentPane.add(textField);
            textField.setColumns(10);
            
            textField_1 = new JTextField();
            textField_1.setBounds(173, 134, 164, 21);
            contentPane.add(textField_1);
            textField_1.setColumns(10);
            
            JButton button = new JButton("u767Bu5F55");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                     try {
                        Class.forName("com.mysql.jdbc.Driver");
                        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","0000");
                         Statement st = con.createStatement();
                         ResultSet rs = st.executeQuery("select * from t_login where username = '"+textField.getText()+"' and password = '"+textField_1.getText()+"'");
                         if(rs.next()){
                                JOptionPane.showMessageDialog(null, "登陆成功!");
                            }else{
                                JOptionPane.showMessageDialog(null, "登陆失败。");
                            }
                            if(rs!=null){
                                rs.close();
                            }
                            st.close();
                            con.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    }
                    
                    
                }
            });
            button.setBounds(147, 200, 93, 23);
            contentPane.add(button);
        }
    }

    三、运行结果

    一、题目

    在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。

    二、源代码

    1.DB.java

    package TewntySeventh;
    /*
     * DB类,存放加载驱动,直连方式和各种方法
     * 
     * 
     */
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DB {
        private Connection con;
        private PreparedStatement pre;
        private ResultSet rs;
        private static DB db;
    
        static {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        DB() {
            try {
                con = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test", "root", "0000");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        public static DB getInstance() {
            if (db == null) {
                db = new DB();
            }
            return db;
        }
    
        public ResultSet executeSelect(String sql, Object[] args) {
            try {
                pre = con.prepareStatement(sql);
                if (args.length != 0) {
                    for (int i = 0; i < args.length; i++) {
                        pre.setObject(i + 1, args[i]);
                    }
                }
                rs = pre.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
        }
    
        public int executeModify(String sql, Object[] args) {
            int n = 0;
            try {
                pre = con.prepareStatement(sql);
                if (args.length != 0) {
                    for (int i = 0; i < args.length; i++) {
                        pre.setObject(i + 1, args[i]);
                    }
                }
                n = pre.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return n;
        }
    
        public void close() {
            try {
                if (rs != null) {
                    rs.close();
                }
                pre.close();
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    2.Login.java

    package TewntySeventh;
    /*
     * 和上面的一样,通过JDBC直连并判断结果然后输出
     * 
     * 
     */
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class Login extends JFrame {
    
        private JPanel contentPane;
        private JTextField textField;
        private JTextField textField_1;
        Connection con = null;
    
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Login frame = new Login();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
        public Login() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            
            JLabel label = new JLabel("u7528u6237u540DuFF1A");
            label.setBounds(66, 72, 54, 15);
            contentPane.add(label);
            
            JLabel label_1 = new JLabel("u5BC6u7801uFF1A");
            label_1.setBounds(66, 134, 54, 15);
            contentPane.add(label_1);
            
            textField = new JTextField();
            textField.setBounds(173, 69, 164, 21);
            contentPane.add(textField);
            textField.setColumns(10);
            
            textField_1 = new JTextField();
            textField_1.setBounds(173, 134, 164, 21);
            contentPane.add(textField_1);
            textField_1.setColumns(10);
            
            JButton button = new JButton("u767Bu5F55");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                     try {
                        Class.forName("com.mysql.jdbc.Driver");
                        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","0000");
                         Statement st = con.createStatement();
                         ResultSet rs = st.executeQuery("select * from t_login where username = '"+textField.getText()+"' and password = '"+textField_1.getText()+"'");
                         if(rs.next()){
                                JOptionPane.showMessageDialog(null, "登陆成功!");
                                Select Select=new Select();
                                Select.setVisible(true);
                                setVisible(false);
                            }else{
                                JOptionPane.showMessageDialog(null, "登陆失败。");
                            }
                            if(rs!=null){
                                rs.close();
                            }
                            st.close();
                            con.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    }
                    
                    
                }
            });
            button.setBounds(147, 200, 93, 23);
            contentPane.add(button);
        }
    }

    3.Select.java

    package TewntySeventh;
    /*
     * 加载DB里面的executeSelect方法获取查询结果,然后通过Jtable将其显示
     * 
     */
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTable;
    import javax.swing.border.EmptyBorder;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.JScrollPane;
    import javax.swing.border.LineBorder;
    import java.awt.Color;
    import javax.swing.border.TitledBorder;
    import javax.swing.UIManager;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.sql.ResultSet;
    
    public class Select extends JFrame {
    
        private JPanel contentPane;
        private JTable table;
        private String str[]={"id","name","sex","birthday"};
        private JButton button_1;
    
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Select frame = new Select();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
        public Select() {
            setTitle("u5217u8868u663Eu793Au5143u7D20");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 500);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            
            JScrollPane scrollPane = new JScrollPane();
            scrollPane.setBounds(10, 20, 414, 387);
            contentPane.add(scrollPane);
            
    
            table = new JTable();
            table.setModel(new DefaultTableModel(
                new Object[][] {
                    {null,null,null,null},
                },
                new String[] {
                    "id", "name", "sex", "birthday"
                }
            ));
            scrollPane.setViewportView(table);
            
            JButton button = new JButton("u67E5u8BE2");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    DB db=new DB();
                    ResultSet s=db.executeSelect("select * from t_user",new Object[]{});
                    try {
                        if(s.last()){
                            int a=s.getRow();
                            Object[][] date=new Object[a][];
                            int b=s.getMetaData().getColumnCount();
                            s.beforeFirst();
                            int i=0;
                            while (s.next()) {
                                date[i]=new Object[b];
                                for (int j = 0; j < b; j++) {
                                    date[i][j]=s.getObject(j+1);
                                }
                                i++;
                            }
                            DefaultTableModel m=new DefaultTableModel(date,str);
                            table.setModel(m);
                        }
                        
                    } catch (Exception e) {
                        // TODO: handle exception
                    }
                    table.setVisible(false);
                    table.setVisible(true);
                }
            });
            button.setBounds(82, 417, 93, 23);
            contentPane.add(button);
            
            button_1 = new JButton("u6DFBu52A0");
            button_1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    Add add=new Add();
                    add.setVisible(true);
                    setVisible(false);
                    /*Select Select=new Select();
                    Select.setVisible(true);
                    setVisible(false);*/
                }
            });
            button_1.setBounds(257, 417, 93, 23);
            contentPane.add(button_1);
    
            /*
            JFrame frame = new JFrame();
            String[] columnNames = { "火影", "风影", "雷影", "水影", "土影" };
            DefaultTableModel model = new DefaultTableModel(columnNames, 0);
            JTable jTable = new JTable(model);
            JScrollPane scrollPane = new JScrollPane(jTable);
            frame.add(scrollPane);
            frame.pack();
            frame.setVisible(true);
            frame.setLocationRelativeTo(null);
            // 获取JTable中的model
            DefaultTableModel model2 = (DefaultTableModel) jTable.getModel();
            String[] column1 = { "初代火影", "初代风影", "初代雷影", "初代水影", "初代土影" };
            model.addRow(column1);
            
            */
    
        }
    }

    4.Add.java

    package TewntySeventh;
    /*
     * 获取testfiled的值将其做返回,radiobutton放进group里,然后根据不同的返回值获取相应的值并输出
     * 
     * 
     */
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JRadioButton;
    import javax.swing.ButtonGroup;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.sql.ResultSet;
    
    public class Add extends JFrame {
    
        private JPanel contentPane;
        private final ButtonGroup buttonGroup = new ButtonGroup();
        private JTextField textField;
        private JTextField textField_1;
    
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Add frame = new Add();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
        public Add() {
            setTitle("u6DFBu52A0u4FE1u606F");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            
            JLabel label = new JLabel("u7528u6237u540DuFF1A");
            label.setBounds(46, 51, 66, 15);
            contentPane.add(label);
            
            JLabel label_1 = new JLabel("u51FAu751Fu65E5u671FuFF1A");
            label_1.setBounds(46, 167, 66, 15);
            contentPane.add(label_1);
            
            JRadioButton rdbtnNewRadioButton = new JRadioButton("u7537");
            rdbtnNewRadioButton.setActionCommand("1");
            buttonGroup.add(rdbtnNewRadioButton);
            rdbtnNewRadioButton.setBounds(132, 109, 45, 23);
            contentPane.add(rdbtnNewRadioButton);
            
            JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("u5973");
            rdbtnNewRadioButton_1.setActionCommand("0");
            buttonGroup.add(rdbtnNewRadioButton_1);
            rdbtnNewRadioButton_1.setBounds(196, 109, 51, 23);
            contentPane.add(rdbtnNewRadioButton_1);
            
            textField = new JTextField();
            textField.setBounds(132, 48, 143, 21);
            contentPane.add(textField);
            textField.setColumns(10);
            
            textField_1 = new JTextField();
            textField_1.setBounds(132, 164, 143, 21);
            contentPane.add(textField_1);
            textField_1.setColumns(10);
            
            JButton button = new JButton("u63D0u4EA4");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    DB db=new DB();
                    String buttonGroupText=buttonGroup.getSelection().getActionCommand();
                    int s=db.executeModify("insert into t_user (name,sex,birthday)values('"+textField.getText()+"','"+buttonGroupText+"','"+textField_1.getText()+"')", new Object[]{});
                    if(s>0){
                        JOptionPane.showMessageDialog(null, "添加成功!");
                    }else{
                        System.out.print("添加失败
    ");
                    }
                }
            });
            button.setBounds(84, 211, 93, 23);
            contentPane.add(button);
            
            JLabel label_2 = new JLabel("u6027u522BuFF1A");
            label_2.setBounds(46, 113, 45, 15);
            contentPane.add(label_2);
            
            JButton btnNewButton = new JButton("u8FD4u56DEu67E5u770Bu5217u8868");
            btnNewButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    Select Select=new Select();
                    Select.setVisible(true);
                    setVisible(false);
                }
            });
            btnNewButton.setBounds(230, 211, 126, 23);
            contentPane.add(btnNewButton);
        }
    }

    三、运行结果

  • 相关阅读:
    python统计代码总行数(代码行、空行、注释行)
    selenium常用的API(二)浏览器窗口设置
    selenium常用的API(一)截屏
    python中的yield
    python中的lambda、map、reduce、filter
    python中的exec和eval
    MySQL中的information_schema
    单元测试框架Unittest
    MySQL批量修改相同后缀表名
    【python自动化第十一篇】
  • 原文地址:https://www.cnblogs.com/himurayaiba/p/12030728.html
Copyright © 2020-2023  润新知