【发布时间】:2017-03-28 16:42:59
【问题描述】:
我目前正在为一个有趣的 java 项目编写一个机器人,并且我正在制作一个警告系统。我目前遇到的问题是,每次我重新启动机器人时,输入的数据都会丢失。我已经搜索了 5 天,试图让它工作。请帮忙!
//warn_command
if(message.startsWith("!warn") || message.startsWith("!Warn")) {
String[] command = message.split(" ");
String warn_target = command[1];
String warn_reason = "";
//admin/op_target checker
for(String admin: adminList) {
if(warn_target.equals(admin)) {
target_a_bool = true;
} else {
target_a_bool = false;
}
}
for(String op: opList) {
if(warn_target.equals(op)) {
target_o_bool = true;
} else {
target_o_bool = false;
}
}
//end_admin/op_target checker
for(int i = 2; i < command.length; i++) {
warn_reason += command[i];
if (i != (command.length - 1)) {
warn_reason += " ";
}
}
if(target_a_bool == true) {
sendMessage(channel, "This user cannot be warned");
target_a_bool = false;
} else if(target_o_bool == true) {
if(sender_a_bool == true) {
sendMessage(channel, sender + " has warned " + warn_target + " for reason " + warn_reason);
warn_list.add("User Warned: " + warn_target + " | Reason Warned: " + warn_reason + " | Warned by: " + sender);
sender_a_bool = false;
} else {
sendMessage(channel, "This user cannot be warned");
} target_o_bool = false;
} else {
sendMessage(channel, sender + " has warned " + warn_target + " for reason " + warn_reason);
warn_list.add("User Warned: " + warn_target + " | Reason Warned: " + warn_reason + " | Warned by: " + sender);
}
}
//end_warn_command
//warn_checker
if(message.equalsIgnoreCase("!w list")) {
for(int i = 0; i < warn_list.size(); i++) {
if(i != warn_list.size()) {
String warnlist = warn_list.toString();
sendMessage(channel, warnlist);
}
}
}
//end_warn_checker`
//warn_list_clearer
if(message.equalsIgnoreCase("!c warnlist")) {
if(sender_a_bool == true) {
warn_list.clear();
sendMessage(channel, sender + " has cleared the warn list!");
sender_a_bool = false;
}
}
//end_warn_list_clearer
所有布尔值和数组都在机器人的配置部分中预定义。所有这些代码目前都可以正常工作,只是每次我重新启动机器人时,存储在数组中的所有信息都会被删除。
编辑:我希望它连接到我与 phpMyAdmin 一起使用的 mysql 数据库。这有可能吗?
【问题讨论】:
-
这对于任何类型的任何程序都是一样的。数据存储在 RAM 中,并在程序退出时不复存在。解决方案是使用持久存储,例如磁盘、数据库等上的文件。
-
ADyson,您知道如何制作 SQL 数据库吗?您愿意帮忙吗?
-
在线上有数百个教程展示了如何创建数据库和使用 SQL。我认为我不需要将自己的尝试添加到组合中。附:只是小的更正:您的编辑说“通过 phpMyAdmin 托管”。这不太准确。 MySQL 在您的机器上作为服务运行。 phpMyAdmin 只是众多用户界面之一,它为您提供了一个进入数据库的窗口。还有很多其他的,基于图形和命令行的,而且任何人都可以用大多数编程语言编写自己的。
-
阿迪森,感谢您的意见。我在一个用 HTML5 和 php 编码的网站中使用了 MySQL 数据库,它会和那个相似吗?
-
非常相似。除了您需要使用 Java 的 MySQL 库来向数据库而不是 PHP 提供指令。 SQL 语法和其他一切都是相同的。