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:<實體類的作用>

    /**
     *實體類的作用
     *在JAVAWeb中,實體類里面的某一個類,相當於是數據庫里的一張表,一個類里面的某個字段相當於表的列名
     *在實體里有getter和setter方法,getter是只讀,setter是寫入
     */

-----------------------------------------------------------------------------------------------------------------------------------------------------

          2-2-2 數據庫操作類 :下面以對數據庫的查詢功能書寫代碼,<包:cn.edu.bzu.dao;類:TitleDAO.java>

 1 package cn.edu.bzu.dao;
 2 import java.sql.*;
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import cn.edu.bzu.entity.Title;
 7 
 8 public class TitleDAO {
 9     public List readFirstTitle(){
10         List<Title> list =new ArrayList<Title>();
11         Connection con=null;
12         PreparedStatement psmt=null;
13         ResultSet rs=null;
14         try {
15             Class.forName("com.mysql.jdbc.Driver");
16         } catch (ClassNotFoundException e) {
17             e.printStackTrace();
18         }
19         
20         try {
21             con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","baby123");
22             String sql="select * from title";
23             psmt=con.prepareStatement(sql);
24             rs=psmt.executeQuery();
25             
26             while(rs.next())
27             {
28                 int id=rs.getInt("id");
29                 String name=rs.getString("name");
30                 String creator=rs.getString("creator");
31                 Date createTime=rs.getDate("createTime");
32                 Title tl=new Title(id, name, creator, createTime);
33                 list.add(tl);
34             }
35             
36         } catch (SQLException e) {
37             e.printStackTrace();
38         }finally
39         {
40             try {
41                 if(rs!=null)
42                 {
43                     rs.close();
44                 }
45                 if(psmt!=null)
46                 {
47                     psmt.close();
48                 }
49                 if(con!=null)
50                 {
51                     con.close();
52                 }
53             } catch (SQLException e) {
54                 e.printStackTrace();
55             }
56         }
57         return list;
58     }
59     
60 }

 

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:下面進行細節講解:

    public List readFirstTitle()方法對每一行的數據進行封裝, 通過為實體類建立對象(entity),調用他的構造方法,通過構造方法的方式進行復制,然后把通過賦值完成的數據加入list集合中,這樣一行的數據就進行封裝完成,通過while()循環,從而實現對數據的遍歷,進而實現對多行數據的存儲,但是在此之前需要創建list對象,並且導入list對象的相關類-------------List<Title> list =new ArrayList<Title>();

----------------------------------------------------------------------------------------------------------------------------------------------------------

2-2-3   在web頁面中顯示數據庫信息<在webroot下建立titleList.jsp,使用TitleDao.java中的查詢方法得到所有的記錄,然后用表格在頁面顯示>其具體的代碼:

 1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
 2 <%@page import="cn.edu.bzu.dao.TitleDAO,cn.edu.bzu.entity.Title"%>
 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     <title>Test-newsTitle</title>
12   </head>
13   
14   <body>
15   <table border="1">
16       <tr>
17           <td>id</td>
18           <td>name</td>
19           <td>creator</td>
20           <td>createTime</td>
21       </tr>
22         <%
23            TitleDAO dao=new TitleDAO();
24            List<Title> list =dao.readFirstTitle();    
25            for(Title tl:list)
26            {%>
27           <tr>
28               <td><%=tl.getId() %></td>
29               <td><%=tl.getName() %></td>
30               <td><%=tl.getCreator() %>></td>
31               <td><%=tl.getCreateTime() %></td>
32           </tr>
33             <%}
34        %>
35   </table>
36   </body>
37 </html>

 

ps: <%%>小腳本的內容解釋:

1.通過TitleDAO dao=new TitleDAO();   創建對象

 2.List <Title> list =dao.readFIrstTitle();  接口List創建list對象,然后通過對象dao調用TitleDAO中的readFirstTitle()方法,從而把返回的list賦予給list

3.for-each()進行數據的遍歷

4.遍歷的需要放在行(<tr></tr>)標簽外面,這樣的話才能把數據進行行存儲,由於使用了遍歷,所以說明把數據庫中的Title表中的數據全部以表格的形式輸出

5.具體美化,敬請學習html+css

-----------------------------------------------------------------------------------------------------------------------------------------------------

附錄:

小編推薦幾個網頁學習的鏈接:

w3c菜鳥教程:http://www.w3cschool.cc/

慕課網:http://www.imooc.com/

Bootstrap中文網:http://www.bootcss.com/-----------------------------------------------------------------------------------------------------------------------------------------------

PS:小編技術有限,如有不足,請指出,謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM