Java 第二次访问的空数据
很遗憾,我甚至不知道如何描述这个错误lol:( 我想显示一个图像,我已将其路径存储在数据库中。我的代码第一次访问数据库时工作正常。但是,我的代码第二次访问数据库时检索空值,依此类推。我盯着代码看了几个小时,但找不到错误lol:( getimage.jspJava 第二次访问的空数据,java,postgresql,jsp,Java,Postgresql,Jsp,很遗憾,我甚至不知道如何描述这个错误lol:( 我想显示一个图像,我已将其路径存储在数据库中。我的代码第一次访问数据库时工作正常。但是,我的代码第二次访问数据库时检索空值,依此类推。我盯着代码看了几个小时,但找不到错误lol:( getimage.jsp <form action="getimage" method="get"> <input type="text"> <input type="submit" name="getimage">
<form action="getimage" method="get">
<input type="text">
<input type="submit" name="getimage">
</form>
<c:forEach var="image" items="${image_path}">
<img src="${image}"/>
</c:forEach>
这是控制台上的消息显示,我将其嵌入ImageDao.java中:
首次访问:
8: org.postgresql.jdbc4.Jdbc4Connection@3d3cdc3b
8: upload/download.jpg 8
Id: 8 path: upload/download.jpg
第二次访问:
8: org.postgresql.jdbc4.Jdbc4Connection@3d3cdc3b
Cant get it
Id: 0 path: null
您只在singleton构造函数中创建了一次连接,并在第一个查询结束时将其关闭 然后,在第二个查询中,连接关闭,您无法执行查询
改为在查询之前创建连接。不是因为您在单例创建中创建了连接,然后在查询之后关闭连接,再也不创建连接吗?您知道我可以从哪里了解更多关于并发和线程安全技术的知识吗?有很多关于它的好书(这本书有点像参考书-),其中一些在您购买二手电脑时非常便宜。但特别是在这种情况下,我建议您使用连接池获取并重用数据库连接,然后您的代码就会正常运行。感谢您的建议。不客气。欢迎使用堆栈溢出;-)
8: org.postgresql.jdbc4.Jdbc4Connection@3d3cdc3b
8: upload/download.jpg 8
Id: 8 path: upload/download.jpg
8: org.postgresql.jdbc4.Jdbc4Connection@3d3cdc3b
Cant get it
Id: 0 path: null