这是一个servlet,作用是调取数据库的某些数据存放到一个集合里
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://";
String username = "test";
String password = "123456";
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
String sql = "select FI_FisherName from newshipinfo";
ResultSet rs = stmt.executeQuery(sql);
List<DetectItem> list2 = new ArrayList<DetectItem>();
while(rs.next()){
DetectItem dct = new DetectItem();
dct.setFI_FisherName(rs.getString("FI_FisherName"));
list2.add(dct);
}
request.setAttribute("list2", list2);
rs.close();
stmt.close();
conn.close();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
request.getRequestDispatcher("project.jsp").forward(request, response);
}
这个是读取数据显示的页面
<select name="dId" id="dId" class="selectpicker bla bla bli" data-live-search="true" size="1">
<%
List<detection> list = (List<detection>)request.getAttribute("list");
if(list ==null || list.size() < 1){
out.print("没有数据!");
}else{
for(detection dct :list){
%>
<option value="<%=dct.getFI_FisherName()%>"><%=dct.getFI_FisherName()%></option>
<%
}
}
%>
</select>
现在每次页面响应时间都很长,感觉每次运行它都要去数据库里把数据放到集合里。数据库里也只有3000左右条数据。每次提交完数据返回时也要拖很长的时间。我想问有没有什么办法能提高响应时间?能不能把数据缓存到服务器,要调用的时候直接去服务器里调,就不去数据库里一次次的访问封装到集合了。