嵌入式資料庫是整合在用戶端電腦的檔案系統,通常不提供網路存取的資料庫引擎。當應用程式處理巨量本機資料、或是資料庫只會在單機上使用的極端情況下有明顯優勢。 主要是因為不用特別建立一個複雜的資料庫系統,就可以使用SQL結構化的資料存取特性。
網頁應用程式就是讓網頁能呈現動態資料,資料庫通常是不可或缺的工具。資料庫導入過程中,通常也能讓初學者能逐漸熟練網頁程式碼的設計。
取得資料庫的的管理權
在開始進行資料庫存取之前,必須能確保資料庫的可用性。使用資料庫管理系統驗證資料庫的可用性,通常是建立各種資料庫應用的必要過程。資料庫管理系統是資料庫不可缺的顆伴,每個資料庫廠商都有提供原廠的資料庫管理系統。DB Browser 是對於 SQLite 的一款免費軟體,能以視窗環境瀏覽資料而解決以純文字的管理的難題。請下載後解壓並將「DB Browser for SQLite」資料夾整個複製到隨身碟中。
建議DB Browser放在簡單路徑。
如: F:\tools\DB Browser for SQLite
開啟DB Browser
點選資料夾中的「DB Browser for SQLite.exe」開啟資料庫管理工具,工具介面為多國語言可以用中文顯示。
可以下載建立好的資料庫,或是選擇自己創建資料庫。
要注意資料庫檔案「my.db」要放在不容易混淆的資料夾路徑。建議放在簡單路徑。
如: F:\my.db ,後續的練習都可以重複使用。
「counter」資料表只有「id、total」2個欄位,將用來做為某個項「id」指標的累計「total」數字。
在網頁上導入資料庫
在專案中的「WebContent」資料夾上點選右鍵建立名為index.jap的檔案,也可以利用file的New → JSP File,名為index的檔案通常會被視為歡迎頁面。要注意jsp檔案必須放在「WebContent」資料夾中,才會被伺服器編譯成動態網頁傳遞到使用者端的瀏覽器。<%@ page language="java" contentType="text/html; charset=BIG5" pageEncoding="BIG5"%> <%@ page import="java.sql.*"%> <%@ page import="org.sqlite.*"%>
JSP的HTML內容裡面「小於+百分比」符號及「大於+百分比」範圍內可以建立Java程式,效果與普通Java程式幾乎一樣。 為了讓伺服器知道這是JSP,必須在頁面最頂端做出language="java"的標記,而import則是導入的套件。
標準的資料庫做連線必須提供「伺服器位址」、「帳號」、「密碼」等的組合稱做「連線字串」,當中每個句子的是有科學函意的。但是單機版的資料庫如「SQLite」因為沒有這些網路特性就顯得簡單許多。
<% SQLiteConfig cfg = new SQLiteConfig(); //連線設定 SQLiteDataSource ds = new SQLiteDataSource(cfg); //連線工具 ds.setUrl("jdbc:sqlite:F:\\my.db"); \\資料庫的檔案位置 String sql; //重複使用的SQL語法容器 Statement stat; //資料庫連線工具 stat = ds.getConnection().createStatement(); //資料庫連線開始 //記數器累加語法 sql = "UPDATE counter SET total=total+1 WHERE id IS NULL"; stat.executeUpdate(sql); //執行 //資料查詢語法 sql="select * from counter WHERE id IS NULL"; ResultSet rs = stat.executeQuery(sql); //建立容器裝入查詢結果 %>
小於大於標記可以在網頁的任何位置添加,但要注意JSP只能用直譯式的工作。如同PHP、ASP等其他網頁應用程式一樣「變數宣告的行數後面才能使用」。
網頁的內容與HTML相同,只要有程式碼區塊包圍的地方就會執行「會更新的」內容。
<body> <% while (rs.next()){%> 次數: <%=rs.getString("total") %> </body>
最後,千萬不能忘記結束資料庫連線。這點非常重要,過多的連線最終將導致資料庫當機。
<% rs.close(); //關閉連線 conn.close();
%>
輕鬆的完成了
本篇的完整內容
<%@ page language="java" contentType="text/html; charset=BIG5" pageEncoding="BIG5"%> <%@ page import="java.sql.*"%> <%@ page import="org.sqlite.*"%> <% SQLiteConfig cfg = new SQLiteConfig(); SQLiteDataSource ds = new SQLiteDataSource(cfg); ds.setUrl("jdbc:sqlite:F:\\my.db"); String sql; Statement stat; stat = ds.getConnection().createStatement(); //sql = "CREATE TABLE IF NOT EXISTS counter (id string, total integer, PRIMARY KEY(id));"; //stat.executeUpdate(sql); sql = "UPDATE counter SET total=total+1 WHERE id IS NULL"; stat.executeUpdate(sql); sql="select * from counter WHERE id IS NULL"; ResultSet rs = stat.executeQuery(sql); %>Insert title here <%while(rs.next()){%> 次數: <%=rs.getString("total")%> <%} rs.close(); stat.close(); %>
啟動伺服器後,在瀏器上輸入 http://127.0.0.1:8080/josp/index.jsp 就可以檢視JSP的運行結果。
任何技術從瞭解原理開始,都能透過不斷實做和學習從基礎到掌握。
一般人可以輕易掌握的技術,代表著工作隨時可以取代。
艱澀的學習過程得來的技術,代表著無可取代和高含金量。
如何把艱澀的學習變為輕鬆簡單的探索與發現,成為專業科目教師的難題。
沒有留言:
張貼留言