gpt4 book ai didi

Java JADE - 开发共享 SQLite 数据库的多代理应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:13 24 4
gpt4 key购买 nike

目前我正在尝试开发 JADE 应用程序,该应用程序将有多个代理,每个代理都连接到一个公共(public)数据库。我知道如何管理 SQLite 应用程序,并且在例如在一个 JADE 代理中显示表等方面没有任何问题。

问题是:

我创建了 3 个共享同一个 SQLite 数据库的代理,我们称它们为 A、B、C。我从另一个代理 Z 立即运行它们 - 该代理仅用于启动代理 A、B 和 C。当从数据库中选择或插入数据时,代理应该结束工作。例如,有时,特工 A 完成了他的工作,而 B 和 C 则没有。还有一次,特工 A 和 C 完成了工作,而 B 没有完成(就像永远挂起一样)。我让不同的代理结束了,但从来没有所有代理一起完成他们的工作。

代码非常简单,所有代理都是相似的:

protected void setup() 
{
Object args[] = getArguments();
if (args.length > 0) {
id = args[0].toString();
}

addBehaviour(new CyclicBehaviour(this)
{
@Override
public void action()
{
Statement stmt = null;
try {
stmt = connection.createStatement();
String sql = "DROP TABLE IF EXISTS TblTemp;";
stmt.executeUpdate(sql);
stmt.close();

stmt = connection.createStatement();
sql = "CREATE TABLE TblTemp" +
"(AdID INT PRIMARY KEY NOT NULL," +
" CategoryID INT NOT NULL, " +
" Title TEXT NOT NULL, " +
" IsContext INT);";
stmt.executeUpdate(sql);
stmt.close();

stmt = connection.createStatement();
sql = "INSERT INTO TblTemp SELECT AdID, CategoryID, Title, IsContext FROM TblWHERE CategoryID="+id+";";
stmt.executeUpdate(sql);
stmt.close();

doDelete();

} catch ( SQLException e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
block();
}
}
});
}

从不给出任何异常(exception)。

我做错了什么?

最佳答案

删除该指令:

doDelete();

关于Java JADE - 开发共享 SQLite 数据库的多代理应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258858/

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