<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
動態Web程式執行在Web容器之中,利用Web容器可以使用JDBC技術來實現資料庫資料的CRUD操作,將資料表中的資料取出並結合JSP動態生成HTML頁面進行顯示。
本文開發使用的是MySQL資料庫,如果要想使用MySQL資料庫,則一定要在Tomcat中進行MySQL驅動程式的設定。這個設定可以考慮將獲取到的MySQL的程式包 jar包 儲存到你原生的Tomcat資料夾中的 lib 檔案目錄中。
在Tomcat或者是專案之中所有的XML檔案設定之後必須重新啟動Tomcat才可以實現新的設定項載入,如果要在Tomcat中增加新的程式包,也必須重新啟動後才能載入。
注意:
你可以下載官網提供的 jar 包:
MySQL 5 版本:mysql-connector-java-5.1.0-bin.jar
MySQL 8 版本:mysql-connector-java-8.0.19.jar
下載後把 mysql-connector-java-<對應版本>-bin.jar 拷貝到 tomcat 下 lib 目錄。
MySQL 8.0 以上版本的資料庫連線有所不同:
- com.mysql.jdbc.Driver 更換為 com.mysql.cj.jdbc.Driver。
- MySQL 8.0 以上版本不需要建立 SSL 連線的,需要顯示關閉。
- 最後還需要設定 CST。
既然要進行資料的開發操作,則首先一定要進行資料庫的建立,本次建立一張手機資訊表,並且設定好相應的測試資料。
範例:建立手機資訊表
CREATE TABLE phone( `pid` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `brand` VARCHAR(20) NOT NULL, `type` VARCHAR(20) NOT NULL, `birthday` DATE NOT NULL, `price` DOUBLE NOT NULL, `color` VARCHAR(20) NOT NULL, `card` VARCHAR(20) NOT NULL UNIQUE )
插入一些資料:
INSERT INTO phone VALUES(1001,'華為','P30','2018-10-10',3500,'白色','HB1214512412'); INSERT INTO phone VALUES(1002,'小米','10Plus','2020-02-02',3222,'藍色','XM5765424335'); INSERT INTO phone VALUES(1003,'榮耀','30Pro','2020-08-22',2888,'白色','RY4815645687');
資料表顯示如下:
如果要想使用JDBC實現資料表中的資料查詢,那麼肯定要通過PreparedStatement介面實現查詢操作,本次僅僅是實現查詢全部資料的需要。
範例:查詢資料表所有資料
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%-- 定義頁面中文顯示編碼 --%> <%@ page import="java.sql.*" %> <%-- 匯入開發包 --%> <html> <head> <title>$Title$</title> </head> <body> <%! public static final String DBDRIVER="com.mysql.jdbc.Driver";//驅動程式 public static final String DBURL="jdbc:mysql://localhost:3306/java221804";//連線地址 public static final String USER="root";//使用者名稱 public static final String PASSWORD="huanghuang";//密碼 %> <% String sql="select * from phone;";//SQL查詢語句 Class.forName(DBDRIVER);//載入驅動程式 Connection conn=DriverManager.getConnection(DBURL,USER,PASSWORD);//連線資料庫 PreparedStatement pstmt=conn.prepareStatement(sql);//操作PreparedStatement物件 ResultSet rs=pstmt.executeQuery();//執行查詢,並存入ResultSet結果集中 %> <table border="1" width="100%"> <thead><tr><td>編號</td><td>品牌</td><td>型號</td><td>出廠日期</td><td>價格</td><td>顏色</td><td>手機編碼</td></tr></thead> <tbody> <% while (rs.next()){//從ResultSet結果集中迴圈獲取資料 int pid=rs.getInt(1); String brand=rs.getString(2); String type=rs.getString(3); Date birthday=rs.getDate(4); double price=rs.getDouble(5); String color=rs.getString(6); String card=rs.getString(7); %> <tr> <td><%=pid%></td> <td><%=brand%></td> <td><%=type%></td> <td><%=birthday%></td> <td><%=price%></td> <td><%=color%></td> <td><%=card%></td> </tr> <% } %> </tbody> </table> <% //關閉連線,如果不關閉就再也關閉不了,除非重新啟動Tomcat conn.close(); %> </body> </html>
本程式在JSP中實現了MySQL資料庫的連結,隨後利用PreparedStatement語句實現了 phone 表的查詢,所有查詢的記錄將利用迴圈拼湊為HTML表格元素進行展示。
執行結果顯示如下:
實際上看到以上程式程式碼執行後,就可以非常清楚的發現,整個JavaWEB開發和Java的開發基本上是沒有啥太大去別的,都是編寫Java程式碼,只要你Java基本功紮實,那麼這種程式實際上編寫起來就非常容易了。
為了提高Java程式程式碼的可重用性,往往會將一些重複執行的程式碼封裝在類結構之中,而這樣的類也被稱為JavaBean。在IDEA中的Web開發中,建立此封裝類的位置結構圖如下:
第一步:建立db.properties檔案
driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/java221804 username=root password=huanghuang
第二步:建立資料庫封裝類——DBUtils類
package cn.lqgx.insert; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBUtils { private static final Properties PROPERTIES =new Properties(); static{ InputStream is = DBUtils.class.getResourceAsStream("/db.properties"); try { PROPERTIES.load(is); //1、註冊驅動 Class.forName(PROPERTIES.getProperty("driver")); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } // 2、獲取連線方法 public static Connection getConnection(){ Connection connection = null; //2、獲取連線物件 try { connection=DriverManager.getConnection(PROPERTIES.getProperty("url"), PROPERTIES.getProperty("username"), PROPERTIES.getProperty("password")); } catch (SQLException e) { e.printStackTrace(); } return connection; } // 3、釋放資源方法 public static void closeAll(ResultSet resultSet, Statement statement, Connection connection) { try { if (resultSet != null) { resultSet.close(); } if(statement!=null){ statement.close(); } if(connection!=null){ connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } }
最後通過JSP呼叫JavaBean資料庫操作封裝類
範例:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%-- 定義頁面中文顯示編碼 --%> <%@ page import="java.sql.*" %> <%-- 匯入開發包 --%> <%@ page import="cn.lqgx.insert.DBUtils" %> <%-- 匯入自定義的JavaBean資料庫操作封裝類 --%> <html> <head> <title>$Title$</title> </head> <body> <% String sql = "select * from phone;";//SQL查詢語句 Connection conn = DBUtils.getConnection();//連線資料庫 PreparedStatement pstmt1 = conn.prepareStatement(sql);//操作PreparedStatement物件 ResultSet rs = pstmt1.executeQuery();//執行查詢,並存入ResultSet結果集中 %> <table border="1" width="100%"> <thead> <tr> <td>編號</td> <td>品牌</td> <td>型號</td> <td>出廠日期</td> <td>價格</td> <td>顏色</td> <td>手機編碼</td> </tr> </thead> <tbody> <% int pid = rs.getInt(1); String brand = rs.getString(2); String type = rs.getString(3); Date birthday = rs.getDate(4); double price = rs.getDouble(5); String color = rs.getString(6); String card = rs.getString(7); %> <tr> <td><%=pid%> </td> <td><%=brand%> </td> <td><%=type%> </td> <td><%=birthday%> </td> <td><%=price%> </td> <td><%=color%> </td> <td><%=card%> </td> </tr> <% } %> </tbody> </table> <% //關閉連線,如果不關閉就再也關閉不了,除非重新啟動Tomcat conn.close(); %> </body> </html>
程式執行結果如下:
本程式直接通過開發的DBUTils工具類獲取了資料庫的連線物件,這樣就相當於將所有的資料庫連線與關閉處理封裝在了一個JavaBean中,以實現程式碼的可重用性,在呼叫時只需要通過page指令匯入相關的程式類即可實現類中方法的呼叫。
到此這篇關於JSP連線MySQL資料庫詳細步驟的文章就介紹到這了,更多相關JSP連線MySQL資料庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45