在我们学习jsp的过程中,有时候有的业务处理会使用到数据库中的图片,我当时也遇到了这种情况,当时也是想走捷径就在csdn上百,发现并没有任何卵用,大家写的都千篇一律,于是就想自己搞懂这个问题。
- 数据库中存放的无非就:图片的相对路径和图片的名称,当然这两种意思本质上也是相同的。下面的就是一般数据库表的格式就是这样的。我用的数据库客户端是SQLyog。
项目的结构图如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200109205450268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg5MzA4NQ==,size_16,color_FFFFFF,t_70)
NBA文件夹下放的是数据库中存放的图片,将源图片Ctrl + V搞到里面就OK了。
通过路径的方式,取出你要查询的队名,初始化要查询的字段。搞到集合里占位输出就好了,下面上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <div class="lishi"> <div class="tab"> <table width="600" align="center" height="150" > <% ArrayList<NTm> list = (ArrayList<NTm>)session.getAttribute("ssss"); if(list!=null&&list.size() != 0){ %> <tr align="center" height="5"> <td class="z1"></td> </tr> <tr height="6"> <td align="left"></td> </tr> <% for(int j = 0;j < list.size();j++){ %> <div class="img1" width="200" height="200"> <img src="img/NBA/<%=list.get(j).getImgsd()%>" height="200" width="200"> </div> <tr align="center" height="60"> <td class="z1"><%=list.get(j).getNtem() %></td> </tr> <tr height="200"> <td align="left"> <%=list.get(j).getNhostr() %></td> </tr> <%} } %> </table> </div> </div> </div>
|
上面的代码是前端显示的界面,使用的是表单提交的方式,将业务需求交给对应的Servlet层进行处理。
Servlet层:
1 2 3 4 5 6 7 8 9
| public ArrayList<NTm> selectByTeam(String Ntem){ ArrayList<NTm> slist = null; try{ slist = nd.selectByTeam(Ntem); } catch(Exception e){ e.printStackTrace(); } return (ArrayList<NTm>)slist; }
|
Dao层:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public ArrayList<NTm> selectByTeam(String Ntem){ ArrayList<NTm> list = new ArrayList<NTm>(); String sql = "select * from nbateam where Ntem like '%"+Ntem+"%'"; NTm ntm = new NTm(); try{ DBUtil.getConnection(); rs = DBUtil.executeQuery(sql); while(rs.next()){ ntm.setNno(rs.getInt("Nno")); ntm.setNtem(rs.getString("Ntem")); ntm.setNhostr(rs.getString("Nhostr")); ntm.setImgsd(rs.getString("Imgsd")); list.add(ntm); } } catch(Exception e){ e.printStackTrace(); } finally{ DBUtil.close(); } return list; }
|
Bean层:
Bean层大家自己封装就OK了,这个不再进行说明。
这个问题的实质就是使用:img 标签将查找的队名与数据库中的一致时,就输入相对路径的图片。
如有问题,还望各位大佬多多指教!