在 MYSQL 数据库中保持服务重启时间的最佳方法是什么
What is the best way to persist the time a service has been restarted in MYSQL database
我试图节省我的 java 服务在 debian 服务器上重新启动到 MYSQL 服务器的时间。 java 应用程序是一个 dropwizard 项目。我尝试从 Java 开始,但它需要对象创建、数据访问对象、休眠配置文件和映射文件。这似乎有点过头了,有没有更简单的方法来实现这一目标?
Hibernate 只是您可以用来访问数据库的一个选项,但它不是唯一的方式。如果你不想使用 Hibernate,你可以使用直接连接 JDBC
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
这应该可以帮助您了解如何设置连接以及如何使用它。
是的,如果你想使用Java,你不需要使用hibernate。您只需要类似于以下内容:
public class 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,并在创建 table 后使用应用程序名称发出请求,您应该会很成功。
使用'mysql'命令行
mysql -u USERNAME -p PASSWORD -e 'update WHATEVER set DATE_RESTARTED=NOW();'
如果不想在命令行中传递密码,请搜索帮助。
我试图节省我的 java 服务在 debian 服务器上重新启动到 MYSQL 服务器的时间。 java 应用程序是一个 dropwizard 项目。我尝试从 Java 开始,但它需要对象创建、数据访问对象、休眠配置文件和映射文件。这似乎有点过头了,有没有更简单的方法来实现这一目标?
Hibernate 只是您可以用来访问数据库的一个选项,但它不是唯一的方式。如果你不想使用 Hibernate,你可以使用直接连接 JDBC
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
这应该可以帮助您了解如何设置连接以及如何使用它。
是的,如果你想使用Java,你不需要使用hibernate。您只需要类似于以下内容:
public class 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,并在创建 table 后使用应用程序名称发出请求,您应该会很成功。
使用'mysql'命令行
mysql -u USERNAME -p PASSWORD -e 'update WHATEVER set DATE_RESTARTED=NOW();'
如果不想在命令行中传递密码,请搜索帮助。