JavaWeb入門——數(shù)據(jù)庫(kù)高蜂、JDBC

首先,簡(jiǎn)單介紹一下兩大軟件編程體系:

軟件架構(gòu)
  • 圖片理解


    C/S

    B/S

(一)Web簡(jiǎn)介
做WEB應(yīng)用就是B/S結(jié)構(gòu)罕容,所有的客戶端和所有的服務(wù)器要進(jìn)行通信备恤,必須采用雙方認(rèn)可的規(guī)則,即HTTP,( Hypertext transport protocol)進(jìn)行通信锦秒。無(wú)狀態(tài)通信露泊。
無(wú)狀態(tài)——當(dāng)瀏覽器向服務(wù)器發(fā)送request時(shí),服務(wù)器之后向?yàn)g覽器作出response脂崔,這個(gè)過(guò)程完成后滤淳,此過(guò)程就會(huì)斷開,稱之為無(wú)狀態(tài)砌左。在默認(rèn)的情況下脖咐,服務(wù)器不會(huì)記住客戶端的私有信息,就像是一個(gè)沒有記憶的魚一樣汇歹。

  • Web的特點(diǎn)
    (1)用超文本標(biāo)記語(yǔ)言(HTML)來(lái)表達(dá)信息
    (2)用統(tǒng)一資源定位URL(UniformResourceLocator)來(lái)對(duì)網(wǎng)絡(luò)上信息的精確定位屁擅。
    (3)使用DNS域名解析來(lái)處理IP,以方便記憶产弹。
    (4)用HTTP協(xié)議來(lái)實(shí)現(xiàn)與Web服務(wù)器之間的通信派歌。底層為TCP/IP協(xié)議弯囊。
  • Web資源
    (1)靜態(tài)資源:html、css
    (2)servlet/JSP胶果、ASP匾嘱、PHP

凡是用java技術(shù)來(lái)開發(fā)web應(yīng)用中的動(dòng)態(tài)資源,就叫做JavaWeb早抠。

  • Url格式講解

URL格式

(二)做Web應(yīng)用霎烙,為什么要用Web服務(wù)器呢?
因?yàn)槿绻麤]有Web服務(wù)器蕊连,就不能夠?qū)⒈镜刭Y源讀取出來(lái)并響應(yīng)給遠(yuǎn)程的客戶端悬垃。Web服務(wù)器相當(dāng)于一個(gè)中介,接受客戶端的請(qǐng)求甘苍,并做出對(duì)應(yīng)的響應(yīng)尝蠕。

如何配置JDK1.7+tomcat7.0+MyEclipse10.7的環(huán)境

在這里采用安裝Tomcat服務(wù)器,啟動(dòng)服務(wù)器后载庭,在瀏覽器地址欄輸入如下URL:http://127.0.0.1:8080回車看彼,出現(xiàn)下圖就表明安裝成功!

Tomcat 7的界面

(三) Web應(yīng)用的組成結(jié)構(gòu)
開發(fā)web應(yīng)用時(shí)昧捷,不同類型的文件有嚴(yán)格的存放規(guī)則闲昭,否則不僅可能會(huì)使web應(yīng)用無(wú)法訪問(wèn),還會(huì)導(dǎo)致web服務(wù)器啟動(dòng)報(bào)錯(cuò)靡挥。
Web應(yīng)用的組成結(jié)構(gòu)

所有的Web資源序矩,都應(yīng)該放在一個(gè)目錄下保存,該目錄我們叫Web應(yīng)用的根目錄跋破,也叫網(wǎng)站的根目錄簸淀。Web應(yīng)用開發(fā)好后,若想供外界訪問(wèn)毒返,需要把Web應(yīng)用所在目錄交給Web服務(wù)器管理租幕,這個(gè)過(guò)程稱之為虛擬目錄的映射。

(四)數(shù)據(jù)庫(kù)——MySQL

1劲绪、所謂安裝數(shù)據(jù)庫(kù)服務(wù)器,只是在機(jī)器上裝了一個(gè)數(shù)據(jù)庫(kù)管理程序盆赤,這個(gè)管理程序可以管理多個(gè)數(shù)據(jù)庫(kù)贾富,一般開發(fā)人員會(huì)針對(duì)每一個(gè)應(yīng)用創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。
2牺六、為保存應(yīng)用中的數(shù)據(jù)颤枪,一般會(huì)在數(shù)據(jù)庫(kù)創(chuàng)建多個(gè)表,以保存程序中的數(shù)據(jù)淑际。
3畏纲、數(shù)據(jù)庫(kù)服務(wù)器扇住、數(shù)據(jù)庫(kù)和表的關(guān)系如圖所示:


client客戶端通過(guò)MySQL數(shù)據(jù)庫(kù)服務(wù)器,可訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)盗胀,每個(gè)數(shù)據(jù)庫(kù)中建立了多個(gè)表艘蹋,表中有多個(gè)記錄(行)。

使用命令行連接數(shù)據(jù)庫(kù)
  • 對(duì)數(shù)據(jù)庫(kù)的操作


  • 創(chuàng)建票灰、備份與恢復(fù)數(shù)據(jù)庫(kù)
    (1)備份數(shù)據(jù)庫(kù):mysqldump -uroot -p mydb1 > E:/mydb1.sql將該數(shù)據(jù)庫(kù)中的表內(nèi)容復(fù)制到對(duì)應(yīng)的SQL文件中


注:該條指令必須在Windows環(huán)境中運(yùn)行簿训,需要退出mysql環(huán)境
(2)恢復(fù)數(shù)據(jù)庫(kù):mysql > source將SQL文件中的內(nèi)容還原成數(shù)據(jù)庫(kù)中的表
注:恢復(fù)時(shí),先創(chuàng)建數(shù)據(jù)庫(kù)米间,再使用該數(shù)據(jù)庫(kù),通過(guò)source命令膘侮。因?yàn)镾QL文件中只有表的信息屈糊。

  • 對(duì)數(shù)據(jù)庫(kù)中的表的操作

    (五)JDBC簡(jiǎn)介
  • JDBC是什么?
    數(shù)據(jù)庫(kù)驅(qū)動(dòng)琼了;
    SUN公司為統(tǒng)一對(duì)數(shù)據(jù)庫(kù)的操作逻锐,定義了一套Java操作數(shù)據(jù)庫(kù)的規(guī)范,稱之為JDBC雕薪;
    為什么要統(tǒng)一呢昧诱?
    因?yàn)槊總€(gè)程序員使用不同的數(shù)據(jù)庫(kù)就要寫不同的數(shù)據(jù)庫(kù),這樣工作太繁瑣了

    所以使用JDBC進(jìn)行統(tǒng)一
  • JDBC全稱為:Java Data Base Connectivity(java數(shù)據(jù)庫(kù)連接)所袁,它主要由接口組成盏档。
  • 組成JDBC的2個(gè)包:
     (1)java.sql
     (2)javax.sql
    開發(fā)JDBC應(yīng)用需要以上2個(gè)包的支持外,還需要導(dǎo)入相應(yīng)JDBC的數(shù)據(jù)庫(kù)實(shí)現(xiàn)(即數(shù)據(jù)庫(kù)驅(qū)動(dòng))燥爷。
  • JDBC連接數(shù)據(jù)庫(kù)解析
    編寫一個(gè)程序蜈亩,這個(gè)程序從user表中讀取數(shù)據(jù),并打印在命令行窗口中前翎。
    一稚配、搭建實(shí)驗(yàn)環(huán)境 :
    1、在mysql中創(chuàng)建一個(gè)庫(kù)港华,并創(chuàng)建user表和插入表的數(shù)據(jù)道川。
    2、新建一個(gè)Java工程立宜,并導(dǎo)入數(shù)據(jù)驅(qū)動(dòng)冒萄。
    二、編寫程序赘理,在程序中加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
    DriverManager. registerDriver(Driver driver)
    三宦言、建立連接(Connection)
    Connection conn = DriverManager.getConnection(url,user,pass);
    四、創(chuàng)建用于向數(shù)據(jù)庫(kù)發(fā)送SQL的Statement對(duì)象商模,并發(fā)送sql
    Statement st = conn.createStatement();
    ResultSet rs = st.excuteQuery(sql);
    五奠旺、從代表結(jié)果集的ResultSet中取出數(shù)據(jù)蜘澜,打印到命令行窗口
    六、斷開與數(shù)據(jù)庫(kù)的連接响疚,并釋放相關(guān)資源
package cn.itcast.android.dao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


import com.mysql.jdbc.Driver;


/*
 * sun公司的規(guī)則
 * */

public class JavaSql1 {

    /**
     * 查詢users表中所有的記錄鄙信,并在控制臺(tái)顯示出來(lái)
     */
    public static void main(String[] args) throws Exception {
        //定義
        
        //連接mysql數(shù)據(jù)庫(kù)服務(wù)器的字符串
        String url = "jdbc:mysql://127.0.0.1:3306/class" ;
        //進(jìn)入數(shù)據(jù)庫(kù)的用戶名
        String user = "root";
        //密碼,要加密
        String password = "19961228";
        //SQL語(yǔ)句建議用大寫忿晕,因?yàn)閙ysql會(huì)把小寫轉(zhuǎn)成大寫
        String sql = "SELECT S_NAME,S_PASSWORD,S_NUMBER,S_CLASSCODE FROM STUDENT";
        //注冊(cè)mysql數(shù)據(jù)庫(kù)服務(wù)器的驅(qū)動(dòng)      
        DriverManager.registerDriver(new Driver());
        /*因?yàn)镈river類中装诡,已經(jīng)有了相應(yīng)的方法了,這樣重復(fù)了
         * 
         * */
        //將類加載到j(luò)vm中
        Class.forName("com.mysql.jdbc.Driver");
        //獲取與數(shù)據(jù)庫(kù)的連接
        Connection conn = DriverManager.getConnection(url, user, password);
        //System.out.println(conn != null?"獲取數(shù)據(jù)庫(kù)連接成功":"失敗");
        //創(chuàng)建封裝sql語(yǔ)句對(duì)象
        Statement stmt = conn.createStatement();
        //執(zhí)行sql語(yǔ)句,將結(jié)果封裝到結(jié)果集中
        ResultSet rs = stmt.executeQuery(sql);
        //處理結(jié)果集
        while(rs.next()){
            //以行為單位践盼,獲取每個(gè)字段的值
            String S_NAME = rs.getString("S_NAME");
            String S_PASSWORD = rs.getString("S_PASSWORD");
            String S_NUMBER = rs.getString("S_NUMBER");
            String S_CLASSCODE = rs.getString("S_CLASSCODE");
            //顯示在控制臺(tái)
            System.out.println(S_NAME + "\t" + S_PASSWORD+ "\t" +S_NUMBER+"\t"+S_CLASSCODE);
        }
        //關(guān)閉所有的連接對(duì)象
        rs.close();
        stmt.close();
        conn.close();
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸦采,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咕幻,更是在濱河造成了極大的恐慌渔伯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肄程,死亡現(xiàn)場(chǎng)離奇詭異锣吼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蓝厌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門玄叠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人拓提,你說(shuō)我怎么就攤上這事读恃。” “怎么了崎苗?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵狐粱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我胆数,道長(zhǎng)肌蜻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任必尼,我火速辦了婚禮蒋搜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘判莉。我一直安慰自己豆挽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布券盅。 她就那樣靜靜地躺著帮哈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锰镀。 梳的紋絲不亂的頭發(fā)上娘侍,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天咖刃,我揣著相機(jī)與錄音,去河邊找鬼憾筏。 笑死嚎杨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氧腰。 我是一名探鬼主播枫浙,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼古拴!你這毒婦竟也來(lái)了箩帚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奏窑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡砍的,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晕城。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片催植。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖刻帚,靈堂內(nèi)的尸體忽然破棺而出潦嘶,到底是詐尸還是另有隱情,我是刑警寧澤崇众,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布掂僵,位于F島的核電站,受9級(jí)特大地震影響顷歌,放射性物質(zhì)發(fā)生泄漏锰蓬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一眯漩、第九天 我趴在偏房一處隱蔽的房頂上張望芹扭。 院中可真熱鬧,春花似錦赦抖、人聲如沸舱卡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)轮锥。三九已至,卻和暖如春要尔,著一層夾襖步出監(jiān)牢的瞬間舍杜,已是汗流浹背新娜。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝴簇,地道東北人杯活。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像熬词,于是被迫代替她去往敵國(guó)和親旁钧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容