为了实现前台对后台数据库的快速读取,可以预先把数据库中的数据放在服务器的内存中,等待前台的参数传递进来,直接在内存中实现查找。
怎么提前把数据库中的数据读入内存那?
在Tomacat中可以这样实现:
在servlet的init方法中完成将数据库中数据读入内存的操作,然后.web.xml中做配置:
<servlet>
<servlet-name>servlet_name</servlet-name>
<servlet-class>servletClass</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
在servletClass中,创建一个集合(List/Map),然后把数据库中的数据读入到集合中,可以先对集合进行排序,然后使用二分法查找;
也可以将集合存储为二叉树,通过二叉查找树算法进行查找;
也可以将数据存储至哈希表,直接进行查找,哈希表的缺点是不支持快速查找,并且造成内存空间浪费。
也可以使用Application进行实现:
application是全局的,只要服务器不关闭,或者你没清空对象,那么都是存在的。