使用JavaDerbyDB进行Java登录

使用JavaDerbyDB进行Java登录,java,login,derby,javadb,Java,Login,Derby,Javadb,这是我的数据库连接类 import java.sql.*; public class connectWithDB { public static void DBconnection(){ Connection conn = null; String url = "jdbc:derby://localhost:1527/"; String dbName = "MyTinyShopDB"; String driver = "org.apache.derby.jdbc.Cli

这是我的数据库连接类

import java.sql.*;

public class connectWithDB {


public static void DBconnection(){

  Connection conn = null;

  String url = "jdbc:derby://localhost:1527/";
  String dbName = "MyTinyShopDB";
  String driver = "org.apache.derby.jdbc.ClientDriver";
  String userName = "root"; 
  String password = "root";

  try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url+dbName,userName,password);

  //conn.close();

  } 

 catch (Exception e)
 {
  e.printStackTrace();
  }

 }

}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mytinyshop.Login.btnLoginActionPerformed(Login.java:159)
at mytinyshop.Login.access$200(Login.java:18)
at mytinyshop.Login$3.actionPerformed(Login.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341 )
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java: 402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
这是登录按钮的代码

    private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {                                         
   Connection conn = null;
   PreparedStatement prestmnt = null;
   ResultSet Reltset = null;


       try {
           String sql = "SELECT * FROM LOGINDETAILS WHERE LOGINID='"+txtFieldUserName.getText()+"'AND USERPASSWORD='"+txtFieldPassword.getText()+"'";
           prestmnt=conn.prepareStatement(sql);
           Reltset=prestmnt.executeQuery();

           if (Reltset.next()){

           AdminMainForm adminform = new AdminMainForm();
           adminform.setVisible(true);
           }

           else
           {
           JOptionPane.showMessageDialog(null, "User Name or Password is Wrong");
           }


       } catch (SQLException ex) {
           Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
       }

    }
程序正在运行,但当我单击登录按钮时,这些错误会出现在netbeans中

import java.sql.*;

public class connectWithDB {


public static void DBconnection(){

  Connection conn = null;

  String url = "jdbc:derby://localhost:1527/";
  String dbName = "MyTinyShopDB";
  String driver = "org.apache.derby.jdbc.ClientDriver";
  String userName = "root"; 
  String password = "root";

  try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url+dbName,userName,password);

  //conn.close();

  } 

 catch (Exception e)
 {
  e.printStackTrace();
  }

 }

}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mytinyshop.Login.btnLoginActionPerformed(Login.java:159)
at mytinyshop.Login.access$200(Login.java:18)
at mytinyshop.Login$3.actionPerformed(Login.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341 )
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java: 402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
和更多错误

import java.sql.*;

public class connectWithDB {


public static void DBconnection(){

  Connection conn = null;

  String url = "jdbc:derby://localhost:1527/";
  String dbName = "MyTinyShopDB";
  String driver = "org.apache.derby.jdbc.ClientDriver";
  String userName = "root"; 
  String password = "root";

  try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection(url+dbName,userName,password);

  //conn.close();

  } 

 catch (Exception e)
 {
  e.printStackTrace();
  }

 }

}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at mytinyshop.Login.btnLoginActionPerformed(Login.java:159)
at mytinyshop.Login.access$200(Login.java:18)
at mytinyshop.Login$3.actionPerformed(Login.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341 )
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java: 402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

我在数据库中添加了用户名和密码。它必须检查数据库中的用户名和密码是否正确。它必须转到另一个窗体,否则它必须显示错误的密码对话框。请有人帮助我。Java异常通常非常擅长告诉您哪里出了问题,哪里出了问题。在BTNLoginationPerformed方法中有一个NullPointerException;它告诉你确切的路线,尽管我们无法从你发布的内容中判断。
prestmnt
可能为空(SQL中有错误),或者查询中可能有错误,因此您得到的结果为空,因此
Reltset
为空。调试它。

您在btnloginationperformed()的开始处将连接设置为null

然后你试着在5行之后使用它

prestmnt=conn.prepareStatement(sql);

对空引用调用方法将导致NullPointerException

此代码示例对SQL注入非常开放:请阅读以下内容
import java.swing.*;

import java.sql.*;

Connection c=null;
        PreparedStatement pst = null;
        ResultSet r=null;
        String s;

        try
        {
            c=DriverManager.getConnection("jdbc:derby://localhost:1527/users","rishi","123");
            s="SELECT * FROM RISHI.USERDETAILS WHERE name='"+txt_name.getText()+"' AND password='"+txt_pass.getText()+"'";
            pst=c.prepareStatement(s);
            r=pst.executeQuery();

                  if(!txt_name.getText().trim().isEmpty())
                  {
                     if(!txt_pass.getText().trim().isEmpty())
                     {
                        if(r.next())
                        {
                           JOptionPane.showMessageDialog(this,"Welcome"); 
                        }
                        else
                        {
                            JOptionPane.showMessageDialog(this,"Username or password is wrong");
                        }
                     }
                     else
                     {
                         JOptionPane.showMessageDialog(this,"Enter The password");
                     }
                  }
                  else
                  {
                     JOptionPane.showMessageDialog(this,"Enter The Username");
                  }
              }

        catch(Exception n)
        {
            JOptionPane.showMessageDialog(null,n.getMessage()); 
        }
    }                                 


    public static void main(String args[]) {

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new login().setVisible(true);
            }
        });
    }


}