一个例外 Postgres: 请求没有返回任何结果。

我正在尝试在表格中插入几行......我使用

postgressql-7.2.jar.

我得到以下例外

org.postgresql.util.PSQLException: 请求没有返回任何结果。

在 org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery/AbstractJdbc2Statement.java:255/

我已经googleled,假设原因如下

使用方法
executeUpdate//

或方法
execute//

而不是一种方法
executeQuery//

.

也许这是由于问题 jar; 尝试其他版本 postgres jar.

在一些地方,他们保留了它,可能是由于堆空间的错误。

我尝试了所有三个解决方案,但他们都没有工作......

我没有插入代码,因为我刚用过
statement.executeUpdate/queryString/

.
运营商

insert

将数据加载到表,但我仍然收到此错误。

有谁可以帮助我吗?
已邀请:

董宝中

赞同来自:

什么类型的操作员 SQL 你正在努力运行
executeQuery//

? 它不应该 INSERT 或更新不是请求。

没有出版实际运营商 SQL, 代码示例或表格看起来很难真正帮助您解决问题。 没有特定的,我们能做的一切都是猜测。

詹大官人

赞同来自:

这段代码对我运行很好 PostgreSQL 8.1 和他的司机。 有可能是一个模板来查找您的问题。

你需要一个名叫的表格 PERSON 用专栏 PERSON_ID, FIRST_NAME, LAST_NAME. 我做了 PERSON_ID 自动放大主键。


package persistence;

import java.sql.*;
import java.util.*;

public class DatabaseUtils
{
private static final String DEFAULT_DRIVER = "org.postgresql.Driver";
private static final String DEFAULT_URL = "jdbc:postgresql://localhost:5432/party";
private static final String DEFAULT_USERNAME = "pgsuper";
private static final String DEFAULT_PASSWORD = "pgsuper";

public static void main/String[] args/
{
String driver = //args.length > 0/ ? args[0] : DEFAULT_DRIVER/;
String url = //args.length > 1/ ? args[1] : DEFAULT_URL/;
String username = //args.length > 2/ ? args[2] : DEFAULT_USERNAME/;
String password = //args.length > 3/ ? args[3] : DEFAULT_PASSWORD/;

Connection connection = null;

try
{
connection = createConnection/driver, url, username, password/;
DatabaseMetaData meta = connection.getMetaData//;
System.out.println/meta.getDatabaseProductName///;
System.out.println/meta.getDatabaseProductVersion///;

String sqlQuery = "SELECT PERSON_ID, FIRST_NAME, LAST_NAME FROM PERSON ORDER BY LAST_NAME";
System.out.println/"before insert: " + query/connection, sqlQuery, Collections.EMPTY_LIST//;

connection.setAutoCommit/false/;
String sqlUpdate = "INSERT INTO PERSON/FIRST_NAME, LAST_NAME/ VALUES/?,?/";
List parameters = Arrays.asList/ "Foo", "Bar" /;
int numRowsUpdated = update/connection, sqlUpdate, parameters/;
connection.commit//;

System.out.println/"# rows inserted: " + numRowsUpdated/;
System.out.println/"after insert: " + query/connection, sqlQuery, Collections.EMPTY_LIST//;
}
catch /Exception e/
{
rollback/connection/;
e.printStackTrace//;
}
finally
{
close/connection/;
}
}

public static Connection createConnection/String driver, String url, String username, String password/ throws ClassNotFoundException, SQLException
{
Class.forName/driver/;

if //username == null/ || /password == null/ || /username.trim//.length// == 0/ || /password.trim//.length// == 0//
{
return DriverManager.getConnection/url/;
}
else
{
return DriverManager.getConnection/url, username, password/;
}
}

public static void close/Connection connection/
{
try
{
if /connection != null/
{
connection.close//;
}
}
catch /SQLException e/
{
e.printStackTrace//;
}
}


public static void close/Statement st/
{
try
{
if /st != null/
{
st.close//;
}
}
catch /SQLException e/
{
e.printStackTrace//;
}
}

public static void close/ResultSet rs/
{
try
{
if /rs != null/
{
rs.close//;
}
}
catch /SQLException e/
{
e.printStackTrace//;
}
}

public static void rollback/Connection connection/
{
try
{
if /connection != null/
{
connection.rollback//;
}
}
catch /SQLException e/
{
e.printStackTrace//;
}
}

public static List<map<string, object="">&gt; map/ResultSet rs/ throws SQLException
{
List<map<string, object="">&gt; results = new ArrayList<map<string, object="">&gt;//;

try
{
if /rs != null/
{
ResultSetMetaData meta = rs.getMetaData//;
int numColumns = meta.getColumnCount//;
while /rs.next///
{
Map<string, object=""> row = new HashMap<string, object="">//;
for /int i = 1; i &lt;= numColumns; ++i/
{
String name = meta.getColumnName/i/;
Object value = rs.getObject/i/;
row.put/name, value/;
}
results.add/row/;
}
}
}
finally
{
close/rs/;
}

return results;
}

public static List<map<string, object="">&gt; query/Connection connection, String sql, List<object> parameters/ throws SQLException
{
List<map<string, object="">&gt; results = null;

PreparedStatement ps = null;
ResultSet rs = null;

try
{
ps = connection.prepareStatement/sql/;

int i = 0;
for /Object parameter : parameters/
{
ps.setObject/++i, parameter/;
}

rs = ps.executeQuery//;
results = map/rs/;
}
finally
{
close/rs/;
close/ps/;
}

return results;
}

public static int update/Connection connection, String sql, List<object> parameters/ throws SQLException
{
int numRowsUpdated = 0;

PreparedStatement ps = null;

try
{
ps = connection.prepareStatement/sql/;

int i = 0;
for /Object parameter : parameters/
{
ps.setObject/++i, parameter/;
}

numRowsUpdated = ps.executeUpdate//;
}
finally
{
close/ps/;
}

return numRowsUpdated;
}
}


</object></map<string,></object></map<string,></string,></string,></map<string,></map<string,></map<string,>

石油百科

赞同来自:

与此不同,操作员插入字符串不会返回任何行 SELECT.

要回复问题请先登录注册