【问题标题】:What is the best way to persist the time a service has been restarted in MYSQL database在MYSQL数据库中保持服务重新启动时间的最佳方法是什么
【发布时间】:2015-04-01 03:34:30
【问题描述】:

我正在尝试将我的 java 服务在 debian 服务器上重新启动的时间保存到 MYSQL 服务器中。 java 应用程序是一个dropwizard 项目。我尝试从 Java 中执行此操作,但它需要创建对象、数据访问对象、休眠配置文件和映射文件。这似乎有点过头了,有没有更简单的方法来实现这一点?

【问题讨论】:

  • 也许您可以使用原始 JDBC?
  • 感谢 Stefaan,这似乎很合理。

标签: java hibernate session jpa dropwizard


【解决方案1】:

Hibernate 只是您可以用来访问数据库的一个选项,但它不是唯一的方法。如果你不想使用 Hibernate,你可以使用 JDBC 直接连接

https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

这应该让您了解如何设置连接以及如何使用它。

【讨论】:

    【解决方案2】:

    是的,如果你想使用Java,你不需要使用hibernate。您所需要的只是类似于以下内容:

    公共类 ServiceRestartServlet 扩展 HttpServlet {

     public void doGet(HttpServletRequest req, HttpServletResponse response) throws IOException, ServletException {
      Connection conn = null;
      try {
        conn = DriverManager.getConnection(System.getProperty("jdbc.url"), System.getProperty("jdbc.user"), System.getProperty("jdbc.password"));
        conn.setAutocommit(false);
        PreparedStatement insertStatement = conn.prepareStatement("insert into serviceRestartLog (serviceName, restartTime) values (?, now())");
        insertStatement.setString(1, req.getParameter("serviceName"));
        insertStatement.execute();
        conn.commit();
      } catch (SQLException e) {
        System.err.println(new java.util.Date()+" Save failed -- "+e.getMessage());
      } finally {
        try {
          conn.close();
        } catch (Throwable e) {
          System.err.println(new java.util.Date()+" connection failed to close -- "+e.getMessage() );
        }
      }
      public void init(ServletContext ctx) {
         Class.forName(System.getProperty("jdbc.drivers")).newInstance();
      }
    }
    

    只需在您的 web.xml 中激活此 servlet,并在创建表后使用应用程序名称发出请求,您就应该是金子了。

    【讨论】:

      【解决方案3】:

      使用'mysql'命令行

      mysql -u USERNAME -p PASSWORD -e 'update WHATEVER set DATE_RESTARTED=NOW();'
      

      如果您不想在命令行上传递密码,请搜索帮助。

      【讨论】:

      • 这会出现在我的 java 程序中吗?这与原始 JDBC 有何不同?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2011-01-17
      • 2015-12-19
      相关资源
      最近更新 更多