JDBC 无法识别列
JDBC Columns not recognized
我一直在尝试制作登录页面,但 运行 遇到了从包含用户凭据的数据库中提取信息的问题。当 运行 宁代码我得到以下错误 "Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=USERNAME, DRIVER=3.68.61" 意味着(我认为)无法找到列用户名,但它在那里。 table USERS 包含用户名、密码、f_name 和 l_name 列。此应用程序的用户名和密码通过 JSP 收集并传递给 servlet,后者又调用以下 .java 已传递用户输入的用户名和密码:
public class Database {
public String lookup( String username, String password) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultset = null;
String f_name = "";
String query = "SELECT f_name FROM USERS WHERE username = ? AND password = ?";
try
{
System.out.println("Connecting to Database");
Class.forName("com.ibm.db2.jcc.DB2Driver");
connection = DriverManager.getConnection("jdbc:db2://ipaddress:port/database name", "username", "userpassword");
System.out.println("Connection Successful");
statement = connection.prepareStatement(query);
statement.setString(1, username);
statement.setString(2, password);
resultset = statement.executeQuery();
if( resultset.next())
{
f_name = resultset.getString("f_name");
}
}
catch(ClassNotFoundException error)
{
System.out.println("Error: " + error.getMessage());
}
catch ( SQLException error)
{
System.out.println("Error: " + error.getMessage());
}
finally
{
if( connection != null)
{
connection.close();
}
if( statement != null)
{
statement.close();
}
if( resultset != null)
{
resultset.close();
}
}//end finally
return f_name;
}
}
对正在发生的事情有什么想法吗?
会不会是您用小写字母创建了列?尝试 select colname from syscat.columns where tabname = 'USERS'
。如果列以小写字母显示,则必须在每个查询中引用它们:select "f_name" from users where "username" = 'whatever'
.
42703 表示检测到未定义的列、属性或参数名称。
这是具有不同 DB2 错误代码的 link https://urssanj00.wordpress.com/2008/03/04/db2-sql-error-code-and-description/
我一直在尝试制作登录页面,但 运行 遇到了从包含用户凭据的数据库中提取信息的问题。当 运行 宁代码我得到以下错误 "Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=USERNAME, DRIVER=3.68.61" 意味着(我认为)无法找到列用户名,但它在那里。 table USERS 包含用户名、密码、f_name 和 l_name 列。此应用程序的用户名和密码通过 JSP 收集并传递给 servlet,后者又调用以下 .java 已传递用户输入的用户名和密码:
public class Database {
public String lookup( String username, String password) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultset = null;
String f_name = "";
String query = "SELECT f_name FROM USERS WHERE username = ? AND password = ?";
try
{
System.out.println("Connecting to Database");
Class.forName("com.ibm.db2.jcc.DB2Driver");
connection = DriverManager.getConnection("jdbc:db2://ipaddress:port/database name", "username", "userpassword");
System.out.println("Connection Successful");
statement = connection.prepareStatement(query);
statement.setString(1, username);
statement.setString(2, password);
resultset = statement.executeQuery();
if( resultset.next())
{
f_name = resultset.getString("f_name");
}
}
catch(ClassNotFoundException error)
{
System.out.println("Error: " + error.getMessage());
}
catch ( SQLException error)
{
System.out.println("Error: " + error.getMessage());
}
finally
{
if( connection != null)
{
connection.close();
}
if( statement != null)
{
statement.close();
}
if( resultset != null)
{
resultset.close();
}
}//end finally
return f_name;
}
}
对正在发生的事情有什么想法吗?
会不会是您用小写字母创建了列?尝试 select colname from syscat.columns where tabname = 'USERS'
。如果列以小写字母显示,则必须在每个查询中引用它们:select "f_name" from users where "username" = 'whatever'
.
42703 表示检测到未定义的列、属性或参数名称。
这是具有不同 DB2 错误代码的 link https://urssanj00.wordpress.com/2008/03/04/db2-sql-error-code-and-description/