Java添加额外传递的变量

时间:2012-01-20 21:20:14

标签: java mysql jdbc irc bots

首先,我应该提一下,我对Java很新。

我正在使用PircBot和JDBC制作一个返回一些MySQL值的irc机器人。我遇到的问题是我想制作准备好的语句以防止SQL注入。但是,因为我无法在我的方法中添加额外的变量,所以我似乎无法让它工作。

这是我现在的代码:http://pastebin.com/K8zCKt9f

基本上,我想使用准备好的SQL语句,但是我不能将Connection conn传递给onMessage方法而不会弄乱(onMessage不会在IRC上触发)。这意味着每次有if语句时我都必须创建一个新连接,而不是现在使用MySQL方法它是如何工作的。

我确信有一个更容易/更清洁的方法来做到这一点,但我似乎无法弄明白。感谢任何帮助,谢谢!

1 个答案:

答案 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