首页 > 代码库 > JSP_通过表格显示数据库的信息
JSP_通过表格显示数据库的信息
在本篇文章中,小编将介绍在jsp页面中通过表格显示数据库的实现:下面我们以“新闻发布系统”中显示一级标题的信息为例进行讲述,在新闻发布系统中存在一二级标题,在后台可以对标题进行管理,可查询标题等信息
【step one】 1-1 建立数据库,在jsp中,我们使用的是mysql数据库,对于此数据的优缺点本篇不予以讲述,首先建立news数据库,其数据库中表的信息为:
eg:< id :1 ; name:娱乐; creator:ibbon;createTime:2014-11-21 22:17:43>
【step two】 建立web项目(news)
2-1:首先,我们在web项目的src文件夹写入链接数据库的相关的类,他们分别是:链接数据库的类,数据的实体类
-----------------------------------------------------------------------------------------------------------------------------------------------------
2-1-1 : 数据库实体类,在此类中主要含有数据库的字段,<包:cn.edu.bzu.entity ;实体类:Title.java;>
1 package cn.news.jsp.entity; 2 3 import java.sql.Date; 4 5 public class Title {
/**
*下面这四个属性为数据库表中的四个属性
*/ 6 private int id; 7 private String name; 8 private String creator; 9 private Date createTime;10 11 public int getId() {12 return id;13 }14 public void setId(int id) {15 this.id = id;16 }17 public String getName() {18 return name;19 }20 public void setName(String name) {21 this.name = name;22 }23 public String getCreator() {24 return creator;25 }26 public void setCreator(String creator) {27 this.creator = creator;28 }29 public Date getCreateTime() {30 return createTime;31 }32 public void setCreateTime(Date createTime) {33 this.createTime = createTime;34 }35 public Title(int id, String name, String creator, Date createTime) {36 super();37 this.id = id;38 this.name = name;39 this.creator = creator;40 this.createTime = createTime;41 }42 43 }
ps:<实体类的作用>
-----------------------------------------------------------------------------------------------------------------------------------------------------
2-2-2 数据库操作类 :下面以对数据库的查询功能书写代码,<包:cn.edu.bzu.dao;类:TitleDAO.java>
1 package cn.edu.bzu.news.dao; 2 3 import java.sql.*; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 import cn.edu.bzu.news.entity.FirstTitle; 8 9 public class FirstTitleOperation {10 //查询11 public List readFirstTitle(){12 List<FirstTitle> list=new ArrayList<FirstTitle>();13 Connection conn=null;14 PreparedStatement pstmt=null;15 ResultSet rs=null;16 17 try {18 Class.forName("com.mysql.jdbc.Driver");19 } catch (ClassNotFoundException e) {20 // TODO Auto-generated catch block21 e.printStackTrace();22 }23 try {24 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","123456");25 String sql="select * from firsttitle where id>=?";26 pstmt=conn.prepareStatement(sql);27 pstmt.setInt(1, 1);28 rs=pstmt.executeQuery();29 while(rs.next()){30 31 int id=rs.getInt("id");32 String titleName=rs.getString("titleName");33 String creator=rs.getString("creator");34 Date createTime=rs.getDate("createTime"); 35 FirstTitle ft=new FirstTitle(id,titleName,creator,createTime);36 list.add(ft); 37 }38 } catch (SQLException e) {39 // TODO Auto-generated catch block40 e.printStackTrace();41 }finally{42 try{43 if(rs!=null){44 rs.close();45 }46 if(pstmt!=null){47 pstmt.close();48 }49 if(conn!=null){50 conn.close();51 }52 53 54 55 }catch(SQLException e){56 e.printStackTrace();57 }58 } 59 return list; 60 }61 //测试查询功能,<可以省略>62 public static void main(String[] args) {63 FirstTitleOperation fto=new FirstTitleOperation();64 List<FirstTitle> list=fto.readFirstTitle();65 for(FirstTitle ft:list){66 System.out.println(ft.getTitleName());67 68 }69 }70 71 72 }
ps:现在分析一下上述代码,
one:创建方法(public List readFirstTitle()),之所以选择返回值是List是因为一个标题含有id,name,creator,cteateTime信息,这些信息存在集合中,便于管理,操作
two:创建变量,链接数据库,在这个web project使用的是JDBC技术链接的数据库,这技术需要一类三接口<DriverManager类,Connection接口,Statement接口,ResultSet接口>
ps:与数据库建立链接的步骤:1.注册数据库驱动;2.获取数据库连接;3.获取statement对象;4.关闭资源;
具体的实现步骤,请看上述代码
three:在数据库中读取的信息需要使用List接口,以实现对数据库的一列信息进行封装起来进行来进行后续的使用,就好比:在桌子上有很多的糖,装糖的瓶子,装瓶子的箱子-------->>>>>就好比之前的属性为糖,好几个属性为一个瓶子,好几个瓶子放在箱子中(List)
Four:后续内容....waiting...
-----------------------------------------------------------------------------------------------------------------------------------------------------2-2-3 在web页面中显示数据库信息<在webroot下建立titleList.jsp,使用TitleDao.java中的查询方法得到所有的记录,然后用表格在页面显示>其具体的代码:
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@page import="cn.edu.bzu.news.dao.FirstTitleOperation,cn.edu.bzu.news.entity.FirstTitle"%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html>10 <head>11 <base href="http://www.mamicode.com/">12 13 <title>My JSP ‘showFirstTitle.jsp‘ starting page</title>14 15 <meta http-equiv="pragma" content="no-cache">16 <meta http-equiv="cache-control" content="no-cache">17 <meta http-equiv="expires" content="0"> 18 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">19 <meta http-equiv="description" content="This is my page">20 <!--21 <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">22 -->23 24 </head>25 26 <body>27 <table border="1">28 <tr>29 <td>ID</td>30 <td>标题名</td>31 <td>创建者</td>32 <td>创建时间</td>33 </tr>34 35 <%36 FirstTitleOperation fto=new FirstTitleOperation();37 List<FirstTitle> list=fto.readFirstTitle();38 for(FirstTitle ft:list){%>39 40 <tr>41 <td><%= ft.getId()%></td>42 <td><%= ft.getTitleName()%></td>43 <td><%= ft.getCreator()%></td>44 <td><%= ft.getCreateTime()%></td>45 46 </tr>47 <% }48 49 %>50 </table>51 </body>52 </html>
ps: <%%>小脚本的内容解释:通过FirstTitleOperation fto=new FirstTitleOperation(); 创建对象,然后调用对象的方法,将其这些数据放在list这个集合中,用的时候
使用遍历的getId()......等来显示数据
-----------------------------------------------------------------------------------------------------------------------------------------------------
ps:内容更新中.........
JSP_通过表格显示数据库的信息