在小程序中执行操作后,Java JDBC连接丢失

在小程序中执行操作后,Java JDBC连接丢失,java,mysql,jdbc,Java,Mysql,Jdbc,如果我运行此代码: 您将看到,我的数据库连接在执行操作后会连接,然后断开连接。。。。为什么?(小程序有许多重限制,包括网络限制。不要忘记,小程序是从客户端而不是服务器端运行的,因此作为一项策略,小程序被限制访问公司内部网络(专用网络) 简而言之,您的代码试图访问数据库服务器(因为它从未连接,因为对小程序设置了网络限制)。它试图从客户端调用专用网络。Javascript遵循相同的限制,因为它决不能从客户端访问专用网络 此处的更多信息()小程序有许多重新限制,包括网络限制。不要忘记,小程序从客户端而

如果我运行此代码:


您将看到,我的数据库连接在执行操作后会连接,然后断开连接。。。。为什么?(

小程序有许多重限制,包括网络限制。不要忘记,小程序是从客户端而不是服务器端运行的,因此作为一项策略,小程序被限制访问公司内部网络(专用网络)

简而言之,您的代码试图访问数据库服务器(因为它从未连接,因为对小程序设置了网络限制)。它试图从客户端调用专用网络。Javascript遵循相同的限制,因为它决不能从客户端访问专用网络


此处的更多信息()

小程序有许多重新限制,包括网络限制。不要忘记,小程序从客户端而不是服务器端运行,因此作为一项策略,小程序被限制访问公司内部网络(专用网络)

简而言之,您的代码试图访问数据库服务器(因为它从未连接,因为对小程序设置了网络限制)。它试图从客户端调用专用网络。Javascript遵循相同的限制,因为它决不能从客户端访问专用网络


这里有更多信息()

我不建议小程序直接连接到数据库。这会将数据库直接暴露在网络上,这不是一个好的做法

更好的办法可能是在applet和数据库之间放置一个servlet。这将产生一些有益的效果:

  • Servlet可以管理安全性
  • Servlet引擎可以使用连接池
  • Servlet可以同时处理多个连接,以便更好地扩展

  • 我不建议小程序直接连接到数据库。这会将数据库直接暴露在网络上,这不是一个好的做法

    更好的办法可能是在applet和数据库之间放置一个servlet。这将产生一些有益的效果:

  • Servlet可以管理安全性
  • Servlet引擎可以使用连接池
  • Servlet可以同时处理多个连接,以便更好地扩展
  • 第39行有以下代码:

      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jgame", props);
    
    因此,您只将连接分配给局部变量,而不是applet中的
    con
    成员变量

    换成

      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jgame", props);
    
    第39行有以下代码:

      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jgame", props);
    
    因此,您只将连接分配给局部变量,而不是applet中的
    con
    成员变量

    换成

      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jgame", props);
    

    那么,将数据库连接到java小程序的最佳方式是什么呢?1)创建一个servlet,您可以使用URLConnection从小程序调用它。这样,servlet直接与数据库通信。2) 创建一个Web服务或RESTful应用程序,您的小程序可以从中调用。那么,将数据库连接到java小程序的最佳方法是什么呢?1)创建一个servlet,您可以使用URLConnection从小程序调用它。这样,servlet直接与数据库通信。2) 创建一个Web服务或RESTful应用程序,您的小程序可以从中调用。。。实际上,在代码的
    connectMySQL()
    方法中的空异常处理中添加一些代码。空的异常处理程序“吃”错误,没有抱怨。反正也不会有错误,因为在我再次调用它后它会重新连接。至于“为什么”。。。实际上,在代码的
    connectMySQL()
    方法中的空异常处理中添加一些代码。空的异常处理程序“eat”错误,没有任何抱怨。因为在我再次调用它后它会重新连接,所以无论如何都不会有错误。2。您可以在applet和数据库服务器之间放置一个透明池。3.我不明白。但是+1表示小程序没有连接到数据库(尽管在某些情况下编写起来要容易得多)。“透明”池?我不熟悉这个词。如果它不是应用服务器,那么是什么在管理它呢?至于3,我指的是这样一个事实,即使用连接到数据库的servlet水平扩展会更容易。这不是客户机/服务器被取代的原因之一吗。。您正在与从未使用过JDBC但使用过mySQL的人交谈。显示一些链接或示例?:)谢谢。您可以在applet和数据库服务器之间放置一个透明池。3.我不明白。但是+1表示小程序没有连接到数据库(尽管在某些情况下编写起来要容易得多)。“透明”池?我不熟悉这个词。如果它不是应用服务器,那么是什么在管理它呢?至于3,我指的是这样一个事实,即使用连接到数据库的servlet水平扩展会更容易。这不是客户机/服务器被取代的原因之一吗。。您正在与从未使用过JDBC但使用过mySQL的人交谈。显示一些链接或示例?:)谢谢