- Java高手真經(高級編程卷):Java Web高級開發技術
- 劉中兵Java研究室編著
- 3133字
- 2018-12-29 18:58:42
2.5 創建數據庫
上面講解了數據庫表的設計,下面我們來根據該設計創建數據庫,我們所使用的數據庫是MySQL。
2.5.1 MySQL的下載、安裝與啟動
在使用MySQL之前,需要建立數據庫的環境來創建數據表,首先我們需要安裝該數據庫環境,即MySQL。
1.下載MySQL
MySQL的官方網站是http://www.mysql.org/,如圖2-9所示。

圖2-9 MySQL官方網站
當前穩定版本為5.1,我們選用MySQL 5.1.22作為數據庫服務器,到其官方網站http://dev.mysql.com/downloads/mysql/5.1.html上進行下載,下載后的文件為mysql-noinstall-5.1.22-rc-win32.zip。該版本是個綠色軟件,解壓縮即可使用。
2.安裝MySQL
我們將mysql-noinstall-5.1.22-rc-win32.zip文件解壓到D盤根目錄下,并修改解壓后的根目錄名為mysql,這樣做是為了使目錄名簡單一些,方便我們使用。解壓后的目錄結構如圖2-10所示。

圖2-10 MySQL解壓后的目錄
該根目錄下包含以下幾個最常用的子目錄。
● bin目錄:該目錄包含了MySQL的啟動、停止等各種操作命令文件,我們也要使用這下面的命令文件來啟動和管理MySQL。
● data目錄:該目錄是MySQL的數據庫存放目錄。在該目錄下,每一個子目錄對應一個數據庫。默認時包含兩個數據庫mysql和test。在該data目錄下直接新建一個目錄,即表示新建了一個數據庫。
● Docs目錄:該目錄下包含了MySQL的文檔,其中manual.chm為MySQL的英文版使用手冊。
對其他的子目錄開發人員不必給予太多關注。另外,該根目錄下有5個以ini為擴展名的文件,分別表示不同級別的MySQL配置參數文件,例如my-small.ini、my-large.ini等。我們可以手動修改這些文件內的屬性值,也可以通過SQL-Front來進行管理。
3.MySQL的啟動與停止
MySQL的安裝文件解壓縮完成后,它的安裝過程即結束,但此時還不能夠使用。要使用MySQL,則必須啟動MySQL的服務。需要使用D:/mysql/bin目錄下的mysqld命令,命令行語法如下:
mysqld --console
依次選擇【開始】→【運行】命令,在彈出的對話框中輸入“cmd”,進入Windows命令窗口。然后通過“cd”命令進入到D:/mysql/bin目錄,執行上面的命令行,即可啟動MySQL的服務。此時顯示的窗口如圖2-11所示。

圖2-11 啟動MySQL服務
如果要停止MySQL的服務,則只需要關閉上面的窗口即可。
到這里我們應該已經結束了MySQL的安裝與啟動了,但是上面的這種啟動方式需要每一次都執行命令行,對于我們的使用十分不便。為此,我們在D:/mysql/bin目錄下新建一個批處理文件mysql-startup.bat,寫入一行啟動命令語句“mysqld --console”,以后我們只需要雙擊該批處理文件即可啟動MySQL服務了。
4.MySQL服務的啟動與停止
上面使用bat批處理來開啟一個MySQL服務,服務運行在命令窗口中。我們也可以以服務的形式啟動MySQL。分別使用如下命令:
net stop mysql net start mysql
需要注意的是,net stop和net start后面的mysql是MySQL服務器安裝時的服務名稱,只有在使用二進制的MySQL安裝程序安裝時才會有該服務,該服務可以在Windows的服務管理列表中找到。
下面是停止和啟動MySQL服務的實例:
D:\msyql\bin>net stop mysql MySQL服務正在停止。 MySQL服務已成功停止。 D:\msyql\bin>net start mysql MySQL服務已經啟動成功。
上面講解了MySQL命令的使用,我們可以直接使用上一節課創建的demo.sql文件中的SQL語句來創建MySQL數據庫。但我們還有更方便的方式,即使用MySQL的客戶端軟件來創建數據庫。
2.5.2 安裝MySQL客戶端軟件SQL-Front
為了能夠方便地管理和瀏覽數據庫,我們使用一個MySQL的客戶端管理軟件SQL-Front來進行管理,該軟件實際上是MySQL-Front的新版命名。其最新的版本為3.3,我們可以在該網站上找到該版本的下載鏈接http://www.omnipotus.com/download/SQL-Front_Setup.exe,下載的文件為SQL-Front_Setup.exe。
雙擊安裝文件SQL-Front_Setup.exe,一直單擊【下一步】按鈕即可完成安裝。安裝完成后會在【開始】菜單中添加SQL-Front一項,單擊其啟動文件會讓你輸入連接數據庫的信息,如圖2-12所示。

圖2-12 新建數據庫連接
此時單擊上方的【連接】標簽,打開【連接】選項卡,輸入連接的服務器為“localhost”,端口使用默認的3306,并且在【注冊】頁面使用默認的用戶root,密碼為123。單擊【確定】按鈕即可打開軟件的主界面,如圖2-13所示。

圖2-13 SQL-Front主界面
該主界面的左側樹形結構顯示了當前數據庫中的所有數據庫名列表,展開數據庫名即可看到數據庫中的數據表。右側顯示了數據庫、數據表的詳細信息,并有一個“Query”的頁面,用于執行SQL語句。
2.5.3 新建數據庫demo
接下來我們使用SQL-Front來新建一個數據庫,將數據庫命名為demo。依次選擇圖2-13中的【數據庫】→【新建】→【數據庫】命令,彈出如圖2-14所示的界面。

圖2-14 創建數據庫demo
在該界面的文本框中輸入新建的數據庫名稱“demo”,單擊【確定】按鈕即可完成數據庫的創建。此時圖2-13中左側的樹形結構中就有了“demo”這一項了。
2.5.4 新建用戶表user
接下來我們使用SQL-Front來新建數據表user。選中圖2-13中左側的數據庫demo,依次選擇【數據庫】→【新建】→【表格】命令,彈出如圖2-15所示的創建數據表界面。

圖2-15 新建數據表user
在該界面中輸入表名“user”,然后進入【字段】頁面添加該表的4個字段,并設置字段的類型、長度及相關屬性,如圖2-16所示。

圖2-16 新建字段
最后單擊【確定】按鈕即可完成數據表的創建。此時將圖2-13左側的demo數據庫展開即可看見新建的user數據表。
當然我們也可以直接使用SQL語句來創建該表,只需要在圖2-13中右側的【SQL編輯器】窗口中輸入下面的SQL語句,單擊【執行】按鈕即可。
CREATE TABLE IF NOT EXISTS user ( ID int(10) unsigned NOT NULL auto_increment, username varchar(50) , password varchar(50) , email varchar(50) , PRIMARY KEY (ID), UNIQUE KEY ID (ID), KEY ID_2 (ID) );
2.5.5 添加一條用戶數據
為了在后面的系統開發中可以進行登錄,我們首先在用戶表user中添加一個用戶記錄。單擊圖2-13中左側的demo數據庫中的數據表user,在右側的【數據瀏覽器】項中即可顯示該表的數據列表,如圖2-17所示。

圖2-17 添加一條用戶數據
在圖2-17的表格中添加一個用戶“admin”,密碼設置為“admin”,E-mail地址為“abc@163.com”。然后單擊工具欄中的【√】按鈕,即可提交保存。
當然我們也可以通過在【SQL編輯器】中執行下面的SQL語句來添加該條數據:
INSERT INTO user VALUES("1", "admin", "admin", "abc@163.com");
需要說明的是,使用【SQL編輯器】的SQL執行功能可以很方便地進行開發。
2.5.6 創建通訊錄管理表address
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'address' ( 'id' int(10) unsigned NOT NULL auto_increment, 'username' varchar(50) NOT NULL default '', 'name' varchar(50) NOT NULL default '', 'sex' varchar(10) default NULL, 'mobile' varchar(20) default NULL, 'email' varchar(50) default NULL, 'qq' varchar(20) default NULL, 'company' varchar(100) default NULL, 'address' varchar(100) default NULL, 'postcode' varchar(10) default NULL, PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8; INSERT INTO 'address' VALUES (1,'admin','admin','mail','13812345678','abc@163.com','12345678','IBM','北京','100085'); INSERT INTO 'address' VALUES (6,'admin','admin','mail','13812345678','abc@163.com','12345678','IBM','北京','100085');
2.5.7 創建短消息管理表sms
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'sms' ( 'id' int(10) unsigned NOT NULL auto_increment, 'username' varchar(50) NOT NULL default '', 'sender' varchar(50) NOT NULL default '', 'message' text, 'sendtime' varchar(20) default NULL, 'isRead' varchar(1) default '0', PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; INSERT INTO 'sms' VALUES (10,'a','admin','a','2007-08-29 19:22:07','0'); INSERT INTO 'sms' VALUES (14,'s','admin','內','2008-10-14 13:33:59','0');
2.5.8 創建日程安排表schedule
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'schedule' ( 'id' int(10) unsigned NOT NULL auto_increment, 'username' varchar(50) NOT NULL default '', 'year' int(4) default NULL, 'month' int(2) default NULL, 'day' int(2) default NULL, 'plan' text, PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; INSERT INTO 'schedule' VALUES (8,'admin',2009,1,30,'Java高手真經討論會'); INSERT INTO 'schedule' VALUES (9,'admin',2008,12,1,'Java高手真經討論會');
2.5.9 創建工作記錄表worklog
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'worklog' ( 'id' int(10) unsigned NOT NULL auto_increment, 'username' varchar(50) NOT NULL default '', 'year' int(4) default NULL, 'month' int(2) default NULL, 'day' int(2) default NULL, 'title' varchar(100) default NULL, 'description' text, 'logtime' varchar(20) default NULL, PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; INSERT INTO 'worklog' VALUES (8,'admin',2008,12,30,'JavaWeb','Java高手真經討論會','2007-08-29 17:40:00'); INSERT INTO 'worklog' VALUES (15,'admin',2008,12,20,'Java討論結束','產生JSP方案','2008-10-14 17:46:08');
2.5.10 創建公司公告表notice
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'notice' ( 'id' int(10) unsigned NOT NULL auto_increment, 'sender' varchar(50) NOT NULL default '', 'title' varchar(100) default NULL, 'content' text, 'sendtime' varchar(20) default NULL, PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; INSERT INTO 'notice' VALUES (8,'admin','JavaWeb','Java高手真經討論會','2007-08-29 18:12:08'); INSERT INTO 'notice' VALUES (13,'admin','開始第2卷討論','討論內容','2008-10-14 18:15:18');
2.5.11 創建工作會議表meeting
使用SQL-Front執行SQL窗口并執行下面的SQL即可創建:
CREATE TABLE 'meeting' ( 'id' int(10) unsigned NOT NULL auto_increment, 'sender' varchar(50) NOT NULL default '', 'starttime' varchar(20) default NULL, 'endtime' varchar(20) default NULL, 'address' varchar(100) default NULL, 'title' varchar(100) default NULL, 'content' text, PRIMARY KEY ('id'), UNIQUE KEY 'ID' ('id'), KEY 'ID_2' ('id') ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; INSERT INTO 'meeting' VALUES (8,'admin','2007-08-30 09:00','2007-08-30 11:00','北京','Java','JavaWeb高手真經討論會'); INSERT INTO 'meeting' VALUES (17,'admin','2008-10-10 10:00:00','2008-10-10 12:00:00','會議室','Java討論','討論內容');
2.5.12 打包emis07(SQL+MySQL).zip
經過以上的操作,就完成了MySQL下企業信息管理系統數據庫的創建。此時我們可以使用SQL-Front的導出功能,將demo數據庫導出為SQL文件demo.sql。
請讀者注意
本書主要以MySQL數據庫為主講解Hibernate和iBATIS層的開發,但由于Oracle和SQL Server也是日常開發中經常使用的數據庫,因此我們也會講解基于這兩種數據庫的持久層的開發過程。但限于篇幅,本書不再講解Oracle和SQL Server數據庫的安裝過程和使用方法,Oracle和SQL Server的安裝、配置和使用的詳細講解見本系列的第二本圖書《Java Web核心技術》。
我們將MySQL(以及第二本書中的Oracle和SQL Server)數據庫的備份文件打包為database.zip,其結構如下:
database.zip ├─mysql //MySQL數據庫文件 | └─demo.sql | ├─oracle //Oracle數據庫文件 | └─demo.dmp | └─sqlserver //SQL Server數據文件 ├─demo.sql //SQL導出文件 ├─demo.mdb //導出數據文件 ├─demo.bak //采用第2種方式備份的文件 ├─demo_Data.MDF //采用第3種方式備份的文件 └─demo_Log.LDF ├─META-INF
該文件放在光盤中的source目錄下,可以直接解壓查看。