gpt4 book ai didi

java - Spring使用JDBC遇到空指针异常

转载 作者:行者123 更新时间:2023-12-02 07:26:18 25 4
gpt4 key购买 nike

请原谅我,因为我是 Spring 初学者。我按照书中的示例进行操作,但仅将数据库从 Derby 更改为 MySQL。

我的主类相当简单:

public class Main {

public static void main(String [] args)
{
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");

VehicleDAO dao= (VehicleDAO) context.getBean("vehicleDao");
Vehicle vehicle = new Vehicle("TEM0001", "Red", 4, 4);
dao.insert(vehicle);
}

}

它创建一个数据访问对象,并尝试将新的 Vehicle 对象添加到 DAO 中。Vehicle 类非常简单,是一个具有四个字段的对象类。

VehicleDAO 类粘贴在此处:

http://pastebin.com/ekB2Rb40

我的bean文件是这样的:

<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="org.gjt.mm.mysql.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/vehicle" />
<property name="username" value="root" />
<property name="password" value="3324911" />
<property name="initialSize" value="2" />
<property name="maxActive" value="5" />
</bean>
<bean id="vehicleDao"
class="com.apress.springrecipes.vehicle.JdbcVehicleDao">
<property name="dataSource" ref="dataSource" />
</bean>

正如您在上面看到的,我总是在该行收到空指针错误

conn= dataSource.getConnection();

所以我怀疑 MySQL 连接有问题,但我已经在 Eclipse 的类路径中包含了“mysql-connector-java-bin.jar”。

感谢您提前提供的任何帮助!

最佳答案

您的 setter 中有一个拼写错误

  public void setDataSource(DataSource datasource)
{
this.dataSource=dataSource;
}

所以当Spring注入(inject)数据源时,它的值并没有被保存,我想知道你的IDE是否检查了源代码是否有这种错误。

附注您不应该在 DAO 类中手动打开数据库连接,我们在 Spring 中有 JdbcTemplate。

关于java - Spring使用JDBC遇到空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551368/

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