最近我正在为一个大学项目学习一些 HTML、JSP 和 servlet,问题是我将一个数据库放入 MySQL Workbench,其中 id 主键、自动增量,然后是一些字段,如用户名、密码、名字、姓氏等上。
目标是创建一个登录页面和注册页面,出于某种原因,如果我使用 MySQL Workbench 将数据推送到数据库中,它将让我使用我的登录表单和我的选择语句检索它,但出于某种原因,我正在做同样的事情注册的东西,但在这种情况下使用查询 INSERT。
因此,经过研究,我做了 preparestatment 并将 executeQuery 更改为 executeUpdate 和所有内容,但我的日志在某处显示 nullPointerException,我知道这可能是一个简单而愚蠢的错误,我没有看到,但我是新手。到目前为止,这是您将数据插入我的数据库中所做的:
public static UserBean registarUsuario(UserBean bean){
//preparing some objects for connection
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
System.out.println("Error al cargar el driver");
System.out.println(ex.getMessage());
}
String firstname = bean.getFirstName();
String lastname = bean.getLastName();
String username = bean.getUsername();
String password = bean.getPassword();
boolean admin = bean.isAdmin();
int tipo = bean.getType();
String insertQuery =
"insert into idusuario (firstname,lastname,username,password,admin,tipo) values ('"+firstname+"','"+lastname+"','"+username+"','"+password+"','"+admin+"','"+tipo+"')";
System.out.println("Firstname is " + firstname);
System.out.println("Surname is " + lastname);
System.out.println("Query: "+insertQuery);
try
{
//connect to DB
currentCon = DriverManager.getConnection("jdbc:mysql://localhost:3306/usuarios", "root", "admin");
rs = stmt.executeQuery(insertQuery);
...
我的输出:
信息:查询:插入 idusuario(名字、姓氏、用户名、密码、管理员、tipo)值('jhon'、'marston'、'jmar'、'123'、'true'、'0') 信息:错误: java.lang.NullPointerException
问题是 Netbeans 甚至没有告诉我 NPE 发生在哪里,所以我有点困惑,我不知道查询是否错误或者是否有其他问题,因为正如我在输出中看到的那样,查询似乎没问题。
我把你留在这里我的数据库结构