gpt4 book ai didi

java - PreparedStatement 抛出 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 06:31:24 24 4
gpt4 key购买 nike

线路出现问题

PreparedStatement pStmt = conn.prepareStatement("select * from employee where upper(FIRSTNAME) like ? and upper(LASTNAME) like ? "

顺便说一句,我的数据库存在。

public class StubEmployeeRepositoryImpl implements EmployeeRepository {

private Connection conn;
private DataSource dataSource;

// DataSource class encapsulates the driver, database url, username and
// password information. The dataSource object is automatically created by
// the Spring framework and passed to the constructor therefore there's no
// need
// to instantiate the dataSource variable. A connection can be acquired by
// accessing the getConnection method of dataSource.
//
// Tip: create member variables in this class that will contain the objects
// passed by the Spring framework so that other methods can access the
// objects.

private static Logger log = Logger
.getLogger(StubEmployeeRepositoryImpl.class);

public StubEmployeeRepositoryImpl(DataSource dataSource) {
this.dataSource = dataSource;
}

@Override
public List<Employee> findEmployeesByName(String firstName, String lastName) {

List<Employee> list = new ArrayList<Employee>();

try {

Connection myConnection = dataSource.getConnection();
PreparedStatement pStmt = conn
.prepareStatement("select * from employee where upper(FIRSTNAME) like ? and upper(LASTNAME) like ? "
+ "order by ID ASC");
pStmt.setString(1, "%" + firstName.toUpperCase() + "%");
pStmt.setString(2, "%" + lastName.toUpperCase() + "%");

ResultSet rs = pStmt.executeQuery();
while (rs.next()) {
list.add(new Employee(rs.getInt("ID"), rs
.getString("firstName"), rs.getString("middleInitial"),
rs.getString("LastName"), rs.getString("level"), rs
.getString("workforce"), rs
.getString("enterpriseID")));
}
rs.close();
pStmt.close();

} catch (SQLException e) {

}
return list;
}


@Override
public Employee findEmployeeByID(long employeeID) {

Employee result = null;
try {
Connection myConnection2 = dataSource.getConnection();
PreparedStatement pStmt = conn
.prepareStatement("select * from employee where ID = ?");
pStmt.setInt(1, (int) employeeID);

ResultSet rs = pStmt.executeQuery();
if (rs.next()) {
result = new Employee(rs.getInt("ID"), rs
.getString("firstName"), rs.getString("middleInitial"),
rs.getString("LastName"), rs.getString("level"), rs
.getString("workforce"), rs
.getString("enterpriseID"));

}
rs.close();
pStmt.close();
} catch (SQLException e) {

}
return result;
}

@Override
public List<Employee> findEmployeesByProject(long projectID) {

List<Employee> list = new ArrayList<Employee>();
try {
Connection myConnection3 = dataSource.getConnection();
PreparedStatement pStmt = conn.prepareStatement("");
pStmt.setInt(1, (int) projectID);

ResultSet rs = pStmt.executeQuery();
while (rs.next()) {
list.add(new Employee(rs.getInt("ID"), rs
.getString("firstName"), rs.getString("middleInitial"),
rs.getString("LastName"), rs.getString("level"), rs
.getString("workforce"), rs
.getString("enterpriseID")));
}
rs.close();
pStmt.close();

} catch (SQLException e) {

}
return list;

}

}

最佳答案

问题是你从未初始化conn

例如,您执行此操作的位置:

Connection myConnection2 = dataSource.getConnection();
PreparedStatement pStmt = conn.prepareStatement("select * from employee where ID = ?");

conn 仍然为空。也许您的意思是:

Connection myConnection2 = dataSource.getConnection();
PreparedStatement pStmt = myConnection2.prepareStatement("select * from employee where ID = ?");

关于java - PreparedStatement 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com