库里斯托 2023-06-20 11:07 采纳率: 87.6%
浏览 11
已结题

关于#数据访问#的问题,如何解决?

import javax.swing.*;
import java.awt.*;
import java.security.PublicKey;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;

public class register_ui extends JFrame {
    private final Dimension buttonSize = new Dimension(200, 100);
    private final Font font = new Font("微软雅黑", Font.PLAIN, 20);
    public static String c;

    public register_ui() {
        JFrame frame = new JFrame("注册");
        frame.setDefaultCloseOperation(3);
        frame.setBounds(500, 100, 600, 600);
        JPanel panel = new JPanel(new GridBagLayout());
        frame.setContentPane(panel);
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        constraints.insets = new Insets(10, 10, 10, 10);

        JLabel label1 = new JLabel("学号/职工号:");
        constraints.gridx = 0;
        constraints.gridy = 0;
        constraints.insets = new Insets(10, 10, 10, 10);
        panel.add(label1, constraints);

        JTextField textField1 = new JTextField(20);
        constraints.gridx = 1;
        constraints.gridy = 0;
        panel.add(textField1, constraints);

        JLabel label2 = new JLabel("密码:");
        constraints.gridx = 0;
        constraints.gridy = 1;
        panel.add(label2, constraints);

        JPasswordField passwordField = new JPasswordField(20);
        constraints.gridx = 1;
        constraints.gridy = 1;
        panel.add(passwordField, constraints);


        JLabel label3 = new JLabel("手机号:");
        constraints.gridx = 0;
        constraints.gridy = 2;
        panel.add(label3, constraints);

        JTextField textField3 = new JTextField(11);
        constraints.gridx = 1;
        constraints.gridy = 2;
        panel.add(textField3, constraints);

        JButton button0 = new JButton("发送验证码");
        constraints.gridx = 2;
        constraints.gridy = 2;
        panel.add(button0, constraints);

        JButton button = new JButton("确认注册");
        constraints.gridx = 0;
        constraints.gridy = 3;
        constraints.gridwidth = 2;
        constraints.insets = new Insets(20, 10, 10, 10);
        panel.add(button, constraints);

        JButton button2 = new JButton("返回上一步");
        constraints.gridx = 0;
        constraints.gridy = 4;
        panel.add(button2, constraints);
        button2.addActionListener((e) -> {
            frame.dispose();
                new login_ui();
        });

        button.addActionListener((e)->{
            try {

                String password = new String(passwordField.getPassword());
                frame.dispose();
                add(textField1.getText(),password);
                new registerok_ui();
            } catch (SQLException ex) {
                throw new RuntimeException(ex);
            }
        }) ;
        frame.setVisible(true);
    }
    protected void add(String text, String text1) throws SQLException {
        String url = "jdbc:mysql:///test";
        String username = "root";
        String password = "000";
        Connection conn = DriverManager.getConnection(url, username, password);

        //定义插入的内容
        String ID = text;
        String password1 = text1;

        //定义sql语句
        String sql1 = "insert into lo_res(ID,password1) values(?,?);";

        PreparedStatement pstmt = conn.prepareStatement(sql1);

        //设置对应的参数
        pstmt.setString(1, ID);
        pstmt.setString(2, password1);

        //执行sql
        int count = pstmt.executeUpdate();   //影响的行数
        //释放资源
        if(count > 1) {
            add_ui.setApp(ID); // 为app对象的ID属性赋值
        }
        pstmt.close();
        conn.close();
    }
}
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;

public class add_ui extends JFrame {
    private final Dimension buttonSize = new Dimension(200, 100);
    private final Font font = new Font("微软雅黑", Font.PLAIN, 20);
    public static String app;

    public static void setApp(String app) {
        add_ui.app = app;
    }

    public add_ui() {
        JFrame frame = new JFrame("验收申请");
        frame.setDefaultCloseOperation(3);
        frame.setBounds(500, 100, 600, 600);
        JPanel panel = new JPanel(new GridBagLayout());
        frame.setContentPane(panel);
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        constraints.insets = new Insets(10, 10, 10, 10);
        JLabel text1 = new JLabel("学生姓名");
        constraints.gridx = 0;
        constraints.gridy = 1;
        panel.add(text1, constraints);
        JTextField textField1 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField1, constraints);
        JLabel text2 = new JLabel("验收教师姓名");
        constraints.gridx = 0;
        constraints.gridy = 2;
        panel.add(text2, constraints);
        JTextField textField2 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField2, constraints);
        JLabel text3 = new JLabel("标题");
        constraints.gridx = 0;
        constraints.gridy = 3;
        panel.add(text3, constraints);
        JTextField textField3 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField3, constraints);
        JLabel text4 = new JLabel("内容");
        constraints.gridx = 0;
        constraints.gridy = 4;
        panel.add(text4, constraints);
        JTextField textField4 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField4, constraints);
        JLabel text5 = new JLabel("验收时间");
        constraints.gridx = 0;
        constraints.gridy = 5;
        panel.add(text5, constraints);
        JTextField textField5 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField5, constraints);
        JButton button = new JButton("提交");
        constraints.gridx = 0;
        constraints.gridy = 6;
        constraints.gridwidth = 2;
        panel.add(button, constraints);
        button.addActionListener((e)->{
            try {
                System.out.println(add_ui.app); //null
                add(textField1.getText(),textField2.getText(),textField3.getText(),textField4.getText(),textField5.getText(),add_ui.app);
            } catch (SQLException ex) {
                throw new RuntimeException(ex);
            }
        }) ;
        JButton backButton = new JButton("返回上步");
        backButton.setPreferredSize(buttonSize);
        backButton.setFont(font);
        GridBagConstraints gbc4 = new GridBagConstraints();
        gbc4.gridx = 0;
        gbc4.gridy = 400;
        gbc4.gridwidth = 1;
        gbc4.gridheight = 1;
        gbc4.fill = GridBagConstraints.HORIZONTAL;
        gbc4.weightx = 0.5;
        panel.add(backButton, gbc4);
        backButton.addActionListener((e) -> {
            frame.dispose();
            new stu_ui();
        });
        frame.setVisible(true);
    }
    private void add(String text0,String text1, String text2, String text3, String text4,String text5) throws SQLException { //不用变
        //连接
        String url = "jdbc:mysql:///test";
        String username = "root";
        String password = "000";
        Connection conn = DriverManager.getConnection(url, username, password);

        //定义插入的内容
        String stu_name = text0;//学生姓名
        String tea_name = text1;//验收教师姓名
        String title = text2;//标题
        String des = text3;//描述
        String input = text4;//验收时间
        String ID = text5;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setLenient(false); // 禁用 lenient 模式

        Date atime = null;
        try {
            atime = sdf.parse(input);
        } catch (ParseException e) {
            System.out.println("日期格式不正确!");
        }


        LocalDateTime time = LocalDateTime.now();

        //定义sql语句
        String sql1 = "insert into application(ID,stu_name,tea_name,title,des,atime,time) values(?,?,?,?,?,?,?);";

        PreparedStatement pstmt = conn.prepareStatement(sql1);

        //设置对应的参数
        pstmt.setString(1, ID);
        pstmt.setString(2, stu_name);
        pstmt.setString(3, tea_name);
        pstmt.setString(4, title);
        pstmt.setString(5, des);
        pstmt.setDate(6, new java.sql.Date(atime.getTime()));
        pstmt.setTimestamp(7, Timestamp.valueOf(time));

        //执行sql
        int count = pstmt.executeUpdate();   //影响的行数
        if(count > 0)
            new addok();
        //释放资源
        pstmt.close();
        conn.close();
    }
}

第一段代码114行为add_ui的app赋值,但是在add_ui中的app仍是是null。

img

  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-06-20 11:16
    关注

    只修改了register_ui和registerok_ui类的代码

    
    import javax.swing.*;
    import java.awt.*;
    import java.sql.*;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.time.LocalDateTime;
    import java.util.Date;
    
    public class register_ui extends JFrame {
        private final Dimension buttonSize = new Dimension(200, 100);
        private final Font font = new Font("微软雅黑", Font.PLAIN, 20);
    
        public register_ui() {
            JFrame frame = new JFrame("注册");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setBounds(500, 100, 600, 600);
            JPanel panel = new JPanel(new GridBagLayout());
            frame.setContentPane(panel);
            GridBagConstraints constraints = new GridBagConstraints();
            constraints.fill = GridBagConstraints.NONE;
            constraints.anchor = GridBagConstraints.WEST;
            constraints.insets = new Insets(10, 10, 10, 10);
    
            JLabel label1 = new JLabel("学号/职工号:");
            constraints.gridx = 0;
            constraints.gridy = 0;
            constraints.insets = new Insets(10, 10, 10, 10);
            panel.add(label1, constraints);
    
            JTextField textField1 = new JTextField(20);
            constraints.gridx = 1;
            constraints.gridy = 0;
            panel.add(textField1, constraints);
    
            JLabel label2 = new JLabel("密码:");
            constraints.gridx = 0;
            constraints.gridy = 1;
            panel.add(label2, constraints);
    
            JPasswordField passwordField = new JPasswordField(20);
            constraints.gridx = 1;
            constraints.gridy = 1;
            panel.add(passwordField, constraints);
    
    
            JLabel label3 = new JLabel("手机号:");
            constraints.gridx = 0;
            constraints.gridy = 2;
            panel.add(label3, constraints);
    
            JTextField textField3 = new JTextField(11);
            constraints.gridx = 1;
            constraints.gridy = 2;
            panel.add(textField3, constraints);
    
            JButton button0 = new JButton("发送验证码");
            constraints.gridx = 2;
            constraints.gridy = 2;
            panel.add(button0, constraints);
    
            JButton button = new JButton("确认注册");
            constraints.gridx = 0;
            constraints.gridy = 3;
            constraints.gridwidth = 2;
            constraints.insets = new Insets(20, 10, 10, 10);
            panel.add(button, constraints);
    
            JButton button2 = new JButton("返回上一步");
            constraints.gridx = 0;
            constraints.gridy = 4;
            panel.add(button2, constraints);
            button2.addActionListener((e) -> {
                frame.dispose();
                new login_ui();
            });
    
            button.addActionListener((e) -> {
                try {
                    String password = new String(passwordField.getPassword());
                    frame.dispose();
                    add(textField1.getText(), password);
                    new registerok_ui(textField1.getText());
                } catch (SQLException ex) {
                    throw new RuntimeException(ex);
                }
            });
            frame.setVisible(true);
        }
    
        protected void add(String text, String text1) throws SQLException {
            String url = "jdbc:mysql:///test";
            String username = "root";
            String password = "000";
            Connection conn = DriverManager.getConnection(url, username, password);
    
            //定义插入的内容
            String ID = text;
            String password1 = text1;
    
            //定义sql语句
            String sql1 = "insert into lo_res(ID,password1) values(?,?);";
    
            PreparedStatement pstmt = conn.prepareStatement(sql1);
    
            //设置对应的参数
            pstmt.setString(1, ID);
            pstmt.setString(2, password1);
    
            //执行sql
            int count = pstmt.executeUpdate();   //影响的行数
    
            if (count > 0) {
                System.out.println("插入成功!");
            } else {
                System.out.println("插入失败!");
            }
    
            pstmt.close();
            conn.close();
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(register_ui::new);
        }
    }
    
    class registerok_ui extends JFrame {
    
        public registerok_ui(String text) {
            JFrame frame = new JFrame("注册成功");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setBounds(500, 100, 600, 400);
            JPanel panel = new JPanel(new GridBagLayout());
            frame.setContentPane(panel);
            GridBagConstraints constraints = new GridBagConstraints();
            constraints.fill = GridBagConstraints.NONE;
            constraints.anchor = GridBagConstraints.WEST;
            constraints.insets = new Insets(10, 10, 10, 10);
    
            JLabel label1 = new JLabel("注册成功!");
            constraints.gridx = 0;
            constraints.gridy = 0;
            constraints.insets = new Insets(10, 10, 10, 10);
            panel.add(label1, constraints);
    
            JLabel label2 = new JLabel("你的学号/职工号是:" + text);
            constraints.gridx = 0;
            constraints.gridy = 1;
            constraints.insets = new Insets(10, 10, 10, 10);
            panel.add(label2, constraints);
    
            JButton button = new JButton("确定");
            constraints.gridx = 0;
            constraints.gridy = 2;
            constraints.insets = new Insets(20, 10, 10, 10);
            panel.add(button, constraints);
            button.addActionListener((e) -> {
                frame.dispose();
                new login_ui();
            });
    
            frame.setVisible(true);
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月20日

悬赏问题

  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错