public static Connection connect;
public static ResultSet resultSet;
static final String DATABASE_URL = "jdbc:mysql://localhost/java_dev";
public ServerFunctions() {
String Driver = "com.mysql.jdbc.Driver";
String DB_USERNAME = "lucky";
String DB_PASSWORD = "lucky";
try {
Class.forName(Driver);
connect = DriverManager.getConnection(DATABASE_URL,DB_USERNAME, DB_PASSWORD);
} catch(Exception e) {
System.out.println("Database Not Connected ! ");
}
}
public static Boolean verificator(String username, String password) {
try {
PreparedStatement prepare = connect.prepareStatement(
"Select * from users where username='?'&&password='?'");
以上是我的代码片段。我声明Connection
和Resultset
对象是静态的,因此可以从静态验证器方法调用它们。 此外,验证方法被声明为静态的,这样它可以通过使用className.verificator(param,param)从不同的类作为类变量进行调用。可以在java中声明静态对象吗?
它编译和运行,当我单独测试类,但然后我得到的PerparedStatement行时,每当有不同的类的调用时出现NullPointerException错误。
是否有人请帮助我为什么它发生?
三江源
一些注释:如果您使用的是准备好的语句,则不需要将字符串参数括在引号中。你可以改用'Select * from username where username =? &&密码=?'。如果你认真对待用户验证,那么首先要知道你做错了,并且有许多在线帮助参考(例如http://crackstation.net/hashing-security.htm)。另外,您不要将“对象”设置为静态,而是将该对象的_reference_设置为静态 - 对象本身的生命不管您如何引用它。 – kbolino 2012-08-03 13:23:23
让你:)我纠正了那些东西:) thanx – 2012-09-09 13:45:49