我正在制作几个类并尝试检索数据,但它会抛出异常
我无法找到。
这是我的代码......
这是LogIn类,它在数据库中创建表LogIn。
package entity_classes;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
@Entity
public class LogIn{
@EmbeddedId
private PrimaryKeyLogIn primarykeylogin=new PrimaryKeyLogIn();
public PrimaryKeyLogIn getPrimarykeylogin() {
return primarykeylogin;
}
public void setPrimarykeylogin(PrimaryKeyLogIn primarykeylogin) {
this.primarykeylogin = primarykeylogin;
}
}
这是嵌入的PrimaryKeyLogIn类,用于在LogIn表中创建复合主键。
package entity_classes;
import java.io.Serializable;
import javax.persistence.Embeddable;
@Embeddable
public class PrimaryKeyLogIn implements Serializable{
private static final long serialVersionUID = 1L;
String Username,Password,Type;
public PrimaryKeyLogIn(){}
public String getUsername() {
return Username;
}
public void setUsername(String username) {
Username = username;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public String getType() {
return Type;
}
public void setType(String type) {
Type = type;
}
}
这是主类CheckLogIn,我认为它会抛出异常。
package entity_classes;
public class CheckLogIn {
public boolean getuser()
{
LogIn l=new LogIn();
LogIn lg=new LogIn();
PrimaryKeyLogIn pkg=new PrimaryKeyLogIn();
PrimaryKeyLogIn pklg=new PrimaryKeyLogIn();
pklg.setUsername("KAMANI");
pklg.setPassword("KAMANI");
pklg.setType("Admin");
lg.setPrimarykeylogin(pklg);
SessionCreator.session=SessionCreator.sessionfactory.openSession();
SessionCreator.session.beginTransaction();
l=(LogIn) SessionCreator.session.get(LogIn.class,pkg);
pkg=l.getPrimarykeylogin();
System.out.println(pkg.getUsername());
SessionCreator.session.getTransaction().commit();
SessionCreator.session.close();
/*if(pkg.getUsername().equals(pklg.getUsername())&&pkg.getPassword().equals(pklg.getPassword())&&pkg.getType().equals(pklg.getType()))
return true;
else
return false;*/
return true;
}
public static void main(String args[])
{
CheckLogIn cli=new CheckLogIn();
cli.getuser();
}
}
现在,当我在CheckLogIn代码上面运行时,它会显示以下异常,它与之前的异常相同,但却是悄然简化的。注意我在这里使用了CheckLogIn中的main方法,所以我正在运行那个只传递无参数的类。
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hibernate: select login0_.Password as Password0_0_, login0_.Type as Type0_0_, login0_.Username as Username0_0_ from LogIn login0_ where login0_.Password=? and login0_.Type=? and login0_.Username=?
Exception in thread "main" java.lang.NullPointerException
at entity_classes.CheckLogIn.getuser(CheckLogIn.java:19)
at entity_classes.CheckLogIn.main(CheckLogIn.java:34)
答案 0 :(得分:0)
抱歉! 调试很长一段时间后,我发现了一个小错误。
这里我必须传递pklg对象。
我正在编写CheckLogIn类中的正确代码。
l=(LogIn) SessionCreator.session.get(LogIn.class,pklg);
虽然我传递了pkg对象,但它会抛出空指针异常。