首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用连接和语句

重用连接和语句
EN

Stack Overflow用户
提问于 2016-03-04 05:11:30
回答 2查看 51关注 0票数 0

我有一个switch-statement代码块,我想使用对connection和Statement对象的引用。当我使用下面的代码时,我得到一个错误;我是不是遗漏了什么?这应该放在每个方法中吗?错误是"try“是一个无效的修饰符和构造函数头名称

代码语言:javascript
复制
  public class ClassSelectorApp {
        try{
        public static final Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ClassSelector?autoReconnect=true&useSSL=false", "", "");
        Statement myStmt = con.createStatement();
        }
        catch(java.sql.SQLException SQL) {
              SQL.printStackTrace();
            }
EN

回答 2

Stack Overflow用户

发布于 2016-03-04 05:19:16

您需要在一个方法中使用它,但是如果您想要重用连接变量,请尝试如下所示

代码语言:javascript
复制
public class ClassSelectorApp 
{
    public static Connection con;

    public ClassSelectorApp()
    {
        //insert the TRY AND CATCH STUFF
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ClassSelector?autoReconnect=true&useSSL=false", "", "");
    }

    public void someMethod()
    {
        //Most likely need some try catch here also.
        Statement myStmt = con.createStatement();
    }

    public static void main(String[] args)
    {
        //Create an object of your class and invoke a method. 
        ClassSelectorApp a = new ClassSelectorApp();
        a.someMethod();
    }

}
票数 0
EN

Stack Overflow用户

发布于 2016-03-04 05:22:54

连接通常是不可重用的-您使用它们一段时间,然后关闭它们并丢弃引用。要使“Connection”引用在多个方法中可见,您可以使其成为成员变量,并在适当地称为“初始化器”的地方对其进行初始化。分别查找“静态初始化器”(有时被错误地称为“静态块”)和“构造函数”来初始化类和实例成员变量。

代码语言:javascript
复制
public class Foo
{
  private Connection cxn;
  {
    try {
      cxn = DriverManager.getConnection(
      "jdbc:mysql://localhost:3306/ClassSelector?autoReconnect=true&useSSL=false",
       "", "");
    }
    catch( SQLException exc )
    {
      logger.error(exc.getLocalizedMessage());
      throw new IllegalStateException(exc);
    }
  }
  ...
  public void actConnected()
  {
    Statement myStmt = cxn.createStatement();
    . . . 
  }
}

我将“语句”显示为局部变量,以指出您不能将“public”或“static”放在这些变量上。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35783120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档