java - 错误 : Exception in thread "main" java. lang.NullPointerException

标签 java sql multithreading intellij-idea

我正在尝试使用java在sql中插入数据。我写完了,但是当我运行它时,我收到此错误:

线程“main”中的异常 java.lang.NullPointerException

没有找到适合 jdbc:sqlite:C:/Users/inflamesc/Desktop/pp project/neural.sql 的驱动程序 在 insertapp.insertapp.insert(insertapp.java:26) 在 insertapp.insertapp.main(insertapp.java:44)

这是我的代码:有什么问题吗?我做错了什么?

package insertapp;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;



public class insertapp {


private Connection connect() {

    String url = "jdbc:sqlite:C:/Users/inflamesc/Desktop/pp project/neural.db";
    Connection conn = null;
    try {
        conn = DriverManager.getConnection(url);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return conn;
}
public void insert(String id, String firstName, String lastName, String userName, String email, String password, String aboutMe ) {
    String sql = "INSERT INTO USERS(id,firstName,lastName,userName,email,password,aboutMe) VALUES(?,?,?,?,?,?,?)";

    try (Connection conn = this.connect();
        PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, id);
        pstmt.setString(2, firstName);
        pstmt.setString(3, lastName);
        pstmt.setString(4, userName);
        pstmt.setString(5, email);
        pstmt.setString(6, password);
        pstmt.setString(7, aboutMe);

        pstmt.executeUpdate();
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
}

public static void main(String[] args) {

    insertapp app = new insertapp();
    app.insert("1", "Jedi","TheLast","TheLastJedi","<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2d474849446d48554c405d4148034e4240" rel="noreferrer noopener nofollow">[email protected]</a>","12345","slacker");
    app.insert("2", "Chew","Becca","ChewBecca","<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d6b5beb3a196b3aeb7bba6bab3f8b5b9bb" rel="noreferrer noopener nofollow">[email protected]</a>","12345","noisy");
}

}

最佳答案

我猜您忘记在准备好的语句中替换“2”:

pstmt.setString(2, firstName);
pstmt.setString(2, lastName);
pstmt.setString(2, userName);
pstmt.setString(2, email);
pstmt.setString(2, password);
pstmt.setString(2, aboutMe);

'2'需要以增量方式进行相应修改。

这是确切的代码:

pstmt.setString(1, id);
pstmt.setString(2, firstName);
pstmt.setString(3, lastName);
pstmt.setString(4, userName);
pstmt.setString(5, email);
pstmt.setString(6, password);
pstmt.setString(7, aboutMe);

希望这能解决您的问题。

关于java - 错误 : Exception in thread "main" java. lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47495346/

相关文章:

java - 将 JSliders 给出的两个数字相加

javascript - 如何同时处理多对多关系的保存?

multithreading - 对自旋锁感到困惑

javascript - Node JS 单线程与多线程(CPU 利用率 : Any difference ?)

java - Android 后台进程完成后显示通知

java - 覆盖默认接口(interface)方法

使用复合增长的Java程序

mysql - 寻找产品的最早历史条目我应该加入历史/产品表还是在产品表中存储值?

sql - 当按另一个表的列分区时,如何使用 CTE 删除重复行?

php - MySQL 表间自增