首先,我应该提一下,我对Java很新。
我正在使用PircBot和JDBC制作一个返回一些MySQL值的irc机器人。我遇到的问题是我想制作准备好的语句以防止SQL注入。但是,因为我无法在我的方法中添加额外的变量,所以我似乎无法让它工作。
这是我现在的代码:http://pastebin.com/K8zCKt9f
基本上,我想使用准备好的SQL语句,但是我不能将Connection conn传递给onMessage方法而不会弄乱(onMessage不会在IRC上触发)。这意味着每次有if语句时我都必须创建一个新连接,而不是现在使用MySQL方法它是如何工作的。
我确信有一个更容易/更清洁的方法来做到这一点,但我似乎无法弄明白。感谢任何帮助,谢谢!
答案 0 :(得分:1)
使用成员变量来存储连接,并在构造Ross对象时构造连接:
public class Ross extends PircBot {
private Connection conn;
public Ross() {
this.setName("RICK_ROSS");
this.setVersion("v1.0");
this.setLogin("not_a_bot");
if (!main.password.equals("")) this.sendMessage(main.loginbot, "auth "+main.username+" "+main.password);
//Set up MySQL-connection
Connection conn = null;
String url = "jdbc:mysql://";
Class.forName ("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection (url,"","");
}
...The rest...
现在,您可以在该类的其他方法中使用成员变量 conn 。