Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新在init()内初始化的映射对象以及来自sql表的值_Java_Mysql_Servlets_Map - Fatal编程技术网

Java 更新在init()内初始化的映射对象以及来自sql表的值

Java 更新在init()内初始化的映射对象以及来自sql表的值,java,mysql,servlets,map,Java,Mysql,Servlets,Map,嗨,我有一个Map对象,它从MySQL表中获取它的值。此映射在servletinit()方法中初始化,以保存许多数据库调用。如果sql表中的值发生变化,我可以在不重新启动Servlet的情况下更新映射对象的值吗?因为init()方法只调用一次。我可以为此制作一个更新按钮吗。谢谢。是的,你应该可以。假设您的servlet类似(减去异常) 就这样。properties映射现在保存来自数据库的新的最新属性(或任何内容) public class MyServlet extends HttpServle

嗨,我有一个Map对象,它从MySQL表中获取它的值。此映射在servlet
init()方法中初始化,以保存许多数据库调用。如果sql表中的值发生变化,我可以在不重新启动Servlet的情况下更新映射对象的值吗?因为
init()
方法只调用一次。我可以为此制作一个更新按钮吗。谢谢。

是的,你应该可以。假设您的servlet类似(减去异常)

就这样。
properties
映射现在保存来自数据库的新的最新属性(或任何内容)

public class MyServlet extends HttpServlet {
    private volatile Map<String, String> properties;
    private Object lock = new Object();

    public void init() {
        properties = ...; // from jdbc call
    }

    ...
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Map<String, String> newProperties = ...; // get new map from jdbc call
    synchronized (lock) {
        properties = newProperties;
    }
}