gpt4 book ai didi

java - Java Spring Bean 的 Oracle DB 连接问题

转载 作者:行者123 更新时间:2023-11-29 09:10:11 25 4
gpt4 key购买 nike

实际上我正在尝试调用 queryForInt() 方法,但它显示 NULL 异常。当我使用以下代码访问具有相同凭据的 dB 时:

----------------这是工作------------------------

DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
dataSource.setUsername("userName");
dataSource.setPassword("pwd");

------- In Bean ----------------(这不起作用)

<!-- DAOS -->
<bean id="ProductDAO" class="br.edeploy.voive.dao.ProductDAO">
<property name="dataSource" ref="dataSource"/>
</bean>

--------关于ProductDAO类------------(这里使用Spring方法抛出异常)

try
{
int i = getSimpleJdbcTemplate().queryForInt("Select * from ERP_PRODUCT", "");
}
catch(DataAccessException dax)
{
throw new Exception("Error: "+dax.getMessage());
}

谢谢。

最佳答案

Spring jdbcTemplate.queryForInt() 支持以下参数

 int    queryForInt(String sql) 
Execute a query that results in an int value, given static SQL.

int queryForInt(String sql, Object[] args)
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, resulting in an int value.

int queryForInt(String sql, Object[] args, int[] argTypes)
Query given SQL to create a prepared statement from SQL and a list of arguments to bind to the query, resulting in an int value.

你为参数传递参数,不知道为什么你使用第二种方法而不是第一种方法(当你不需要传递参数时)

编辑使用 queryForInt() 的方法是:

String sql = "SELECT COUNT(*) FROM CUSTOMER";

int total = getJdbcTemplate().queryForInt(sql);

查看您的代码,看起来您需要使用 queryForObject()

String sql = "SELECT NAME FROM CUSTOMER WHERE CUST_ID = ?";

String name = (String)getJdbcTemplate().queryForObject(
sql, new Object[] { custId }, String.class);

关于java - Java Spring Bean 的 Oracle DB 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910904/

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