方法都是通用的,要看你如何去靈活的運用!!!
本文以“新聞發布系統”為例
第一步:建立數據庫(使用的是mysql數據庫)
其中數據庫信息為:
數據庫名:news
表名:title,字段名分別為(序號、標題名稱、創建者、創建時間)
create table title( id int(2) primary key, name varchar(20), creator varchar(20), createTime datetime );
第二步:建立WEB項目
沒有結合框架進行搭建項目,只是簡單做個練習。
在src文件夾下創建連接數據庫相關的類,分別為:連接數據庫的類、數據的實體類;在lib下導入數據庫相關的驅動包(mysql-connector-java-5.1.30-bin.jar)
從Maven默認中央倉庫中下載:http://repo1.maven.org/maven2/mysql/mysql-connector-java/
或從這里下載(配有搜索框比較方便):https://search.maven.org/
2.1 :數據庫實體類,此類中主要含有數據庫的字段,屬性名要求與數據庫中屬性名一一對應。【包:com.entity;實體類:Title.java】

package com.entity; import java.sql.Date; public class Title { /** *下面這四個屬性為數據庫表中的四個屬性 */ private int id; private String name; private String creator; private Date createTime; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Title(int id, String name, String creator, Date createTime) { super(); this.id = id; this.name = name; this.creator = creator; this.createTime = createTime; } }
說明:
a. 實體類的作用:在JAVAWEB中,實體類里面的某一個類,相當於是數據庫里的一張表,一個類里面的某個字段相當於表的列名。
b. 在實體類里有getter和setter方法,getter是只讀,setter是寫入
2.2:數據庫操作類,下面以對數據庫的查詢功能書寫代碼。【包:com.dao;類:TitleDao.java】

package com.dao; import java.sql.*; import java.util.ArrayList; import java.util.List; import com.entity.Title; public class TitleDaO { public List readTitle(){ List<Title> list =new ArrayList<Title>(); Connection con=null; PreparedStatement psmt=null; ResultSet rs=null; try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","1234"); String sql="select * from title"; psmt=con.prepareStatement(sql); rs=psmt.executeQuery(); while(rs.next()) { int id=rs.getInt("id"); String name=rs.getString("name"); String creator=rs.getString("creator"); Date createTime=rs.getDate("createTime"); Title tl=new Title(id, name, creator, createTime); list.add(tl); } } catch (Exception e) { e.printStackTrace(); }finally { try { if(rs!=null) { rs.close(); } if(psmt!=null) { psmt.close(); } if(con!=null) { con.close(); } } catch (Exception e) { e.printStackTrace(); } } return list; } }
說明:
a. 創建方法(public List readTitle()),之所以選擇返回值是List是因為一個標題含有id,name,creator,createTime信息。這些信息存在集合中,便於管理,操作。
b. 創建變量,連接數據庫,在這個web project使用的是JDBC技術連接的數據庫,這技術需要一類三接口【DriverManager類,Connection接口,Statement接口,ResultSet接口】
c. 與數據庫建立連接的步驟:1. 加載數據庫驅動;2.數去數據庫連接;3.獲取Statement對象;4.關閉資源
d. 在數據庫中讀取的信息需要使用List接口,以實現對數據庫的一列信息封裝起來進行后續的使用。就比如:在桌子上有多個瓶子,還有裝瓶子的箱子——>例推類中屬性為瓶子,箱子則為List集合
e. 細節詳解:public List readTitle()方法對每一行的數據進行封裝,通過為實體類建立對象(entity),調用它的構造方法,通過構造方法的方式進行賦值,然后把通過賦值完成的數據加入list集合中,這樣一行的數據就進行封裝完成,通過while()循環,從而實現對數據的遍歷,進而實現對多行數據的存儲,但是在此之前需要創建list對象,並且導入list對象的相關類——> List<Title> list=new ArrayList<Title>();
2.3:在web頁面中顯示數據庫信息【在webroot下建立titleList.jsp,使用TitleDao.java中的查詢方法得到所有記錄,然后用表格在頁面顯示】
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.dao.TitleDaO,com.entity.Title"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Test-newsTitle</title> </head> <body> <table border="1"> <tr> <td>序號</td> <td>標題名稱</td> <td>創建者</td> <td>創建時間</td> </tr> <% TitleDAO dao=new TitleDAO(); List<Title> list =dao.readTitle(); for(Title tl:list) { %> <tr> <td><%=tl.getId() %></td> <td><%=tl.getName() %></td> <td><%=tl.getCreator() %>></td> <td><%=tl.getCreateTime() %></td> </tr> <% } %> </table> </body> </html>
說明:<%%>標簽中的內容解釋
1、通過TitleDao dao=new TitleDao(); 創建對象
2、List<Title> list=dao.readTitle(); 接口LIst創建list對象,然后通過對象dao調用TitleDao中的readTitle()方法,從而把返回的list賦予給list
3、遍歷需要放在行(<tr></tr>)標簽的外面,這樣才能把數據進行行存儲,由於使用了遍歷,所以才可以把數據庫中title表中的數據全部以表格的形式輸出
4、美化前台頁面,請學習html+css+js
效果下表格所示:
序號 | 標題名稱 | 創建者 | 創建時間 |
1 | 多彩的世界 | 風一樣的男人 | 2017-09-18 |
2 | 雨后有彩虹 | 李書桓 | 2016-05-25 |
3 | 晨跑的弊端 | 郭曉曉 | 2014-09-11 |