请教高手,为什么我在公有变量定义连接jdbc数据库的各种对象就会出问题呢?就在我+!!的地方,而且错误还出现在main函数中。
我的想法是定义公有jdbc数据库对象。小弟我先谢谢了~~跪求解决办法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.event.*;
public class UserAdd {
  JFrame frame;                                                     //定义窗体组件
  JPanel panel;
  JLabel label_Name;
  JLabel label_Password;
  JLabel label_Password_Ag;
  JLabel Login_Select;
  JTextField textfield_Name;
  JPasswordField textPasswordField;
  JPasswordField textPasswordField_Ag;
  JComboBox combobox_Select;
  JButton button_Add;
  JButton button_Exit;
  String[] names={"操作员","系统管理员"};
  int a=1;                                                  //默认操作员权限设置
  
  /*!!!!!!!!!!!!!!!String url = "jdbc:odbc:HouseManage";                           //定义JDBC数据库中各种连接对象
  ResultSet result;
  PreparedStatement pstmt1,pstmt2;
  Statement stmt;
  Connection con;
  String sqlStr, ManagesqlStr,strSql;
  String sti1 = textfield_Name.getText().trim();
  String sti2 = textPasswordField.getText().trim();
  String sti3 = textPasswordField_Ag.getText().trim();
  int resultTorF, ManageresultTorF;*/ 
  public UserAdd() {
    frame.setDefaultLookAndFeelDecorated(true);                     //添加皮肤
    frame=new JFrame("添加用户");                                     //实例化窗体组件
    panel=new JPanel();
    label_Name=new JLabel("用户名");
    label_Password=new JLabel("密码");
    label_Password_Ag=new JLabel("确认密码");
    Login_Select=new JLabel("登陆权限");
    textfield_Name=new JTextField("");
    textPasswordField=new JPasswordField("");
    textPasswordField_Ag=new JPasswordField("");
    combobox_Select=new JComboBox(names);
    button_Add=new JButton("添加");
    button_Exit=new JButton("取消");    button_Exit.addActionListener(new Mylistener());                   //注册监听器
    button_Add.addActionListener(new Mylistener());
    combobox_Select.addItemListener(new MyJComboBoxListener());    panel.setLayout(null);                                            //添加窗体组件
    label_Name.setBounds(new Rectangle(19, 18, 79, 29));
    label_Password.setBounds(new Rectangle(19, 60, 79, 29));
    label_Password_Ag.setBounds(new Rectangle(19, 106, 79, 29));
    Login_Select.setBounds(new Rectangle(19, 155, 79, 29));
    textfield_Name.setBounds(new Rectangle(123, 18, 205, 32));
    textPasswordField.setBounds(new Rectangle(123, 60, 205, 32));
    textPasswordField_Ag.setBounds(new Rectangle(123, 106, 205, 32));
    combobox_Select.setBounds(new Rectangle(123, 155, 205, 32));
    button_Add.setBounds(new Rectangle(79, 219, 80, 31));
    button_Exit.setBounds(new Rectangle(205, 219, 80, 31));
    panel.add(label_Name);
    panel.add(label_Password);
    panel.add(label_Password_Ag);
    panel.add(Login_Select);
    panel.add(textfield_Name);
    panel.add(textPasswordField);
    panel.add(textPasswordField_Ag);
    panel.add(combobox_Select);
    panel.add(button_Add);
    panel.add(button_Exit);    frame.getContentPane().add(panel);                                 //顶级窗体布局
    frame.setSize(380,300);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    frame.setResizable(false);
  }  public static void main(String[] args) {                            //主函数
    new UserAdd();   
   }
}

解决方案 »

  1.   

    楼主这个应该属于ODBC方面的问题吧最好把错误信息帖出来看看
      

  2.   

    Exception in thread "main" java.lang.NullPointerException
    at java毕业设计.UserAdd.<init>(UserAdd.java:40)
    at java毕业设计.UserAdd.main(UserAdd.java:219)
    这是那个错误,小弟新手,希望大家多多指点
      

  3.   

    java.lang.NullPointerException
    空指针异常,你的数据库没有连接上。
      

  4.   

    因为不知道你要连接的是什么数据库
    我把我以前写的发给你看看
    -------------------------------------------------------------------------------
    package plane.database;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    /**
     * 
     * @author Administrator
     *@date 2006.04.16
     */
    public class DataBase {
    /**
     * the con is database's interface
     */
    private Connection con; /**
     * empty mothed DataBase()
     * 
     */
    public DataBase() {
    super();
    formatClass();
    } /**
     * 
     * @return url
     */
    //JDBC/ODBC数据库驱动和数据库的名字plane_system.mdb
    public String URl() {
    String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=plane_system.mdb";
    return url;
    } /**
     * 
     * @return database's username
     */
    public String userName() {
    String username = "";
    return username;
    } /**
     * 
     * @return database's password
     */
    public String passWord() {
    String password = "";
    return password;
    } /**
     * 
     * @return database's interface
     * @throws SQLException
     */
    //设置数据库连接
    public Connection connection() throws SQLException {
    con = DriverManager.getConnection(URl(), userName(), passWord());
    return con;
    } /**
     * the mothed is JDBC/ODBC
     * 
     */
    //装载数据库驱动
    public void formatClass() {
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch (java.lang.ClassNotFoundException e) {
    System.err.println("connect():" + e.getMessage());
    System.err.println("装载 JDBC/ODBC 驱动程序失败。");
    e.printStackTrace();
    System.exit(1); // 停止项目
    }
    }
    }ps:这里我连接的是access数据库,这个类专门用来连接数据库的,其他类调用这个类里的connection() 方法就行了,当然得先定义一个Connection的对象,这样就不用在每个类里重复的写数据库连接了。本人菜鸟呢,不对的地方还望老鸟们指出,嘿嘿。。
      

  5.   

    在jdk里面有个JDBCAdapter,建议参考下,修改扩充下就很好用
      

  6.   

    楼主你没有装载驱动程序吧!我写了个关于access数据库的应用的简单程序,你试下能不能在你电脑里运行,我测试过是可以的。如果你不能通过的话,要注意配置odbc
    import java.sql.*;
    public class OdbcTest {
      public static void main(String[] args) {
        try{
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          Connection conn = DriverManager.getConnection("jdbc:odbc:bookTest");
          Statement stmt=conn.createStatement();
         ResultSet rs=stmt.executeQuery("select * from bookInfo");
         while(rs.next())
         {
           System.out.print(rs.getString(1)+" "+rs.getString(2)+" "
                            +rs.getFloat(3)+" "+rs.getString(4));
         }
         rs.close();
         stmt.close();    }
        catch(Exception e)
        {
          e.printStackTrace();
        }  }
    }
      

  7.   


     String sti1 = textfield_Name.getText().trim();
      String sti2 = textPasswordField.getText().trim();
      String sti3 = textPasswordField_Ag.getText().trim();
    这样也行?????????
    textfield_Name.getText()是null,你trim啥?