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 block
21             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 block
40             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="<%=basePath%>">
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="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:内容更新中.........

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。