要在JSP頁面中實現數據庫的查詢主要有連接及查詢數據庫的java代碼部分和html頁面代碼部分。實現這個頁面,我們進行一個三步走
1、寫出連接數據庫的代碼
2、寫出用於顯示頁面的代碼
3、將連接數據庫的代碼插入到頁面代碼的恰當位置。
1. 連接數據庫的代碼
1.1 導入sql包
<% import="java.sql.*" %>
1.2 連接、查詢、關閉數據庫
怎樣查看冰箱裡面有沒有大象?1、打開冰箱門。2、看一下。3、關閉冰箱門。就是這個過程。。。。。
[html]
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/news";
String user="root";
String password="1234";
//配置並連接數據庫
Connection conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
//查詢語句,顯示最後10條並且倒序排列
ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");
//輸出表頭
out.println("<tr><td>標題</td><td>內容</td><td>時間</td></tr>");
//依次輸出每個查詢結果
while(rs.next()){
out.print("<tr><td>"+rs.getString("title")+"</td><td>"+rs.getString("content")+"</td><td>"+rs.getString("date")+"</td></tr><br>");
//如果采用列名,要加引號
}
out.print("</table><hr>");
//斷開數據庫
conn.close();
%>
2. 頁面的HTML代碼
為了頁面漂亮一點,做點點美化~做一個表格來存放數據
[html]
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("UTF-8");%>
<%response.setCharacterEncoding("UTF-8");%>
<span><span class="tag"></span></span><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css">
table{ width:800px; margin:auto; padding: 5px; font-size:12px; border:0px; background:#00CCFF;}
tr{ background:#fff;}
td{ padding: 5px;}
#title{ text-align:center;}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JSP頁面中的數據庫查詢</title>
</head>
<body>
<form method=post>
標題:<input type="text" name="title"/><br/>
內容:<input type="text" name="content"/><br/>
<input type="submit" value="提交" />
</form>
<table >
<tr>
<td width="174" id="title">標題</td>
<td width="449" id="title">內容</td>
<td width="161" id="title">時間</td>
</tr>
<tr>
<td width="174" > </td>
<td width="449" > </td>
<td width="161"> </td>
</tr>
</table>
</body>
</html>
3. 把前面兩個代碼放在一起
放的時候注意代碼的位置安排。
[html]
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("UTF-8");%>
<%response.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css">
table{ width:800px; margin:auto; padding: 5px; font-size:12px; border:0px; background:#00CCFF;}
tr{ background:#fff;}
td{ padding: 5px;}
#title{ text-align:center;}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔11</title>
</head>
<body>
<%
//連接MySQL數據庫
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/news";
String user="root";
String password="1234";
Connection conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
%>
<table >
<tr>
<td width="174" id="title">標題</td>
<td width="449" id="title">內容</td>
<td width="161" id="title">時間</td>
</tr>
<%
//把表格第二行的顯示放到while循環中,就可以根據查詢結果畫出表格了。參數則放在<td>內的相應位置。
ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");
while(rs.next()){%>
<tr>
<td width="174" ><%=rs.getString("title") %></td>
<td width="449" ><%=rs.getString("content") %></td>
<td width="161"><%=rs.getString("time") %></td>
</tr>
<%}
//注意"}"的位置 %>
</table>
<%
rs.close();
conn.close();
%>
</body>
</html>
作者:shirenfeigui