国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

手把手做一個JSP入門程序(三):DBHelper類設計--連接mysql數據庫

2019-11-08 02:36:38
字體:
來源:轉載
供稿:網友

DBHelper類設計–連接MySQL數據庫

??DBHelper(DataBase Helper)主要用于幫助我們進行對數據庫的操作,我們會在其中創建一個獲取數據庫連接的方法。我們將放在utile包內,util包作為工具包。 ??為了能夠對mysql數據庫進行訪問,我們需要一個連接mysql的jar包:mysql-connector-java-5.0.5-bin.jar。點擊這里下載。下載之后放在WEB-INF的lib目錄中即可。

package util;import java.sql.Connection;import java.sql.DriverManager;public class DBHelper {// 數據庫驅動 PRivate static final String driver = "com.mysql.jdbc.Driver";// 連接數據庫的URL地址,這里使用的是mysql的默認端口3306 private static final String url = "jdbc:mysql://localhost:3306/simpleshop";// 數據庫登陸信息,我這里不使用root用戶,一般對與一個項目,我們可以創建一個獨立的具有部分權限用戶出來,root用戶一般都只是用于管理數據庫 private static final String username = "superboy"; private static final String passWord = "iamsuperboy"; private static Connection conn = null;// 靜態代碼塊負責加載驅動// 一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的,且優先于主函數。 static{ try{ Class.forName(driver); }catch(Exception ex){ ex.printStackTrace(); } } public static Connection getConnection() throws Exception{ if(conn == null){ conn = DriverManager.getConnection(url,username,password); return conn; } return conn; }}

寫完之后,為了確認是否可以正常連接,我們可以寫一個這樣的主函數進行測試。

public static void main(String[] args) { try{ //獲取一個連接 Connection conn = DBHelper.getConnection(); if(conn!=null){ System.out.println("數據庫連接正常!"); }else{ System.out.println("數據庫連接異常!"); } }catch(Exception ex){ ex.printStackTrace(); }}

關于Class.forName ??加載數據庫驅動的時候我們通常會使用Class.forName進行加載。而Class.forName(xxx.xx.xx)的作用是要求JVM查找并加載指定的類,也就是說JVM會執行該類的靜態代碼段,因此,如果在類中有靜態初始化器的話,JVM必然會執行該類的靜態代碼段。而在JDBC規范中明確要求這個Driver類必須向DriverManager注冊自己,即任何一個JDBCDriver的Driver類的代碼都必須類似如下。既然在靜態初始化器的中已經進行了注冊,所以我們在使用JDBC時只需要Class.forName(xxx.xx.xx);就可以了。這里的xxx.xxx.xx指向一個類。

public classMyJDBCDriver implements Driver { static{ DriverManager.registerDriver(new MyJDBCDriver()); }}

??所以,利用靜態代碼塊負責加載驅動,可以在程序開始執行時,加載到數據庫驅動,而且只會執行一次。值得一提的是,這里的DBHelper類的是一個單例模式。該模式的一個優點是:利于控制實例數目,節省系統資源。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐柏县| 宜章县| 庆城县| 泰顺县| 马公市| 望谟县| 水富县| 龙州县| 星子县| 梁河县| 锦州市| 永平县| 呼图壁县| 易门县| 酉阳| 望江县| 广东省| 遂宁市| 河间市| 泗阳县| 固阳县| 唐海县| 毕节市| 平原县| 安泽县| 自治县| 横峰县| 德阳市| 康平县| 沈丘县| 格尔木市| 仙桃市| 南宁市| 容城县| 余庆县| 霍州市| 兴安县| 镇沅| 靖安县| 南雄市| 桂阳县|