要在JSP頁面中實現資料庫的查詢主要有串連及查詢資料庫的java代碼部分和html頁面代碼部分。實現這個頁面,我們進行一個三步走
1、寫出串連資料庫的代碼
2、寫出用於顯示頁面的代碼
3、將串連資料庫的代碼插入到頁面代碼的恰當位置。
1. 串連資料庫的代碼
1.1 匯入sql包 <% import="java.sql.*" %>
1.2 串連、查詢、關閉資料庫
怎樣查看冰箱裡面有沒有大象。1、開啟冰箱門。2、看一下。3、關閉冰箱門。就是這個過程。。。。。
<% 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代碼
為了頁面漂亮一點,做點點美化~做一個表格來存放資料
<%@ 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>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. 把前面兩個代碼放在一起
放的時候注意代碼的位置安排。
<%@ 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>