liulianju
发贴: 3
积分: 0
|
于 2006-08-01 10:42
大家好!我是java初学者,看了有关基础方面的书。自己试着做点练习,遇到了点麻烦,请大家帮忙! 我的程序是这样的,在用户界面,用户输入要修改的内容,然后将保存结果保存到数据库中,但是运行时出现异常: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at studentManage.DBManager.modify(DBManager.java:90) at StudentUI.modifyDialog.actionPerformed(modifyDialog.java:74) 不知道错在哪里,希望给予指点 用户界面主要代码为: public class modifyDialog extends JFrame implements ActionListener{ JTextField id_input; JTextField t_name; JTextField t_age; JButton modify; JButton cancel; JButton query; public String idInput; public String nameInput; public int ageInput; public static void main(String args[]) { modifyDialog modify=new modifyDialog(); modify.show(); } public modifyDialog() { setTitle("学生信息修改"); setLayout(new FlowLayout() ); JLabel input=new JLabel("请输入学号"); id_input=new JTextField(10); JLabel name=new JLabel("姓名"); t_name=new JTextField(10); JLabel age=new JLabel("年龄"); t_age=new JTextField(10); query=new JButton("查询"); modify=new JButton("修改"); cancel=new JButton("取消"); query.addActionListener(this); modify.addActionListener(this); cancel.addActionListener(this); add(input); add(id_input); add(query); add(name); add(t_name); add(age); add(t_age); add(modify); add(cancel); setSize(300,200); } public void actionPerformed(ActionEvent e) { if(e.getSource()==query) { try{ Student stu=new Student(); idInput=id_input.getText(); stu.findStudentByID(idInput); t_name.setText(stu.name); t_age.setText(Integer.toString(stu.age)); }catch(SQLException sql) { sql.printStackTrace(); } } else if(e.getSource()==modify) { idInput=id_input.getText(); nameInput=t_name.getText(); ageInput=Integer.parseInt(t_age.getText()); try { DBManager manage=new DBManager(); manage.modify(idInput,nameInput,ageInput); } catch (SQLException e1) { e1.printStackTrace(); } } else if(e.getSource()==cancel) { dispose(); System.exit(0); } }
数据库管理类中modify方法为: public void modify(String id,String name,int age)throws SQLException{ try{ String ms; ms="update liulianju.student set name=?,age=? where student.id=?"; PreparedStatement mp=con.prepareStatement(ms); mp.setString(1,name); mp.setInt(2, age); mp.setString(3,id); mp.executeUpdate(); mp.close(); con.close(); } catch(SQLException se) { se.printStackTrace(); } }
|