使用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);
}
});
}
}