JSP、數(shù)據(jù)庫

HTML作為展示頁的缺點

缺點

緩存問題

回顯問題

除非使用異步

動態(tài)顯示頁面

定義

Java Server Pages,java服務器頁面具被。和Servlet一樣,是sun公司定義的一種動態(tài)網(wǎng)頁開發(fā)技術只损。

特點:基于html模版硬猫,可以在html模版嵌入java代碼和jsp中的標簽。

備注:html靜態(tài)頁面改执。

CSS:修飾美化html頁面啸蜜。

JavaScript:動態(tài)修改html頁面和css樣式。

Servlet:運行在服務器上的java程序辈挂。適合編寫java代碼衬横,寫網(wǎng)頁困難

jsp:適合編寫動態(tài)內(nèi)容,不適合寫java代碼终蒂,主要用于顯示頁面

作用

JSP不緩存的原因是:jsp是servlet ,不是靜態(tài)頁面

動態(tài)拼接頁面

jsp性能好蜂林,可以在html頁面中動態(tài)嵌入元素

服務器調(diào)用的是已經(jīng)編譯好的JSP文件

JSP基于Java Servlet Api,有很多強大企業(yè)的支持

JSP可以與處理業(yè)務邏輯的Servlet一起使用,該模式被Java Servlet模版引擎所支持

JSP指令

page指令

import和java代碼的含義一樣

session:是否會自動創(chuàng)建session對象拇泣,默認值為true;

buffer:JSP中有java.servlet.jsp.JspWriter輸出字符流噪叙。設置輸出數(shù)據(jù)的緩存大小。默認8kb.

errorPage:如果頁面中有錯誤霉翔,跳轉(zhuǎn)到指定的資源 errorPage="/uri" 如果寫“/”則代表當前應用的目錄 下睁蕾,絕對路徑。? 如果不寫“/”則代表相對路徑

isErrorPage:是否創(chuàng)建throwable對象债朵。默認是false

contentType:等同于response.setContentType(“text/html子眶;charset=utf-8);服務器發(fā)送客戶端的內(nèi)容編碼

pageEncoding: Jsp文件本身的編碼

isELIgnored: 是否支持EL表達式。 默認是false,支持表達式, 是true,不支持表達式序芦,${1+1};false輸出結(jié)果2? true按照原樣輸出

inclue指令

靜態(tài)包含: <%@ include file="header.jsp" %>

動態(tài)包含: <jsp:include page=“header.jsp"></jsp:include>

區(qū)別:翻譯的時間段不同(可在tomcat工作目錄下查看)靜態(tài)包含:在翻譯時就把兩個文件進行合并動態(tài)包含:不會合并文件臭杰,當代碼執(zhí)行到include時,才包含另一個文件的內(nèi)容

taglib指令

引入其他標簽庫

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>

JSP9大內(nèi)置對象(不準使用)

對象名 類型 說明

request? ?javax.servlet.http.HttpServletRequest

response? javax.servlet.http.HttpServletResponse

session? ?javax.servlet.http.HttpSession由session=“true”開關

application? ?javax.servlet.ServletContext

exception? ?java.lang.Throwable由isErrorPage=“false”開關

page? ? java.lang.Object當前對象this當前servlet實例

config? ?javax.servlet.ServletConfig

pageContext? ? javax.servlet.jsp.PageContext

out

JSP的四大域?qū)ο?br>

pageContext : 表示當前jsp頁面

request域

session域

servletContext域

EL表達式

expression language表達式語言

簡化了JSP中代碼開發(fā)

這是不是一種語言,是jsp中獲取數(shù)據(jù)的一種規(guī)范

獲取實體類中的屬性值

${user.address.addr }

JSTL

JSTL是一款強大的邏輯標簽庫, 她可以使我們像寫Java代碼一樣在頁面中進行判斷和循環(huán)

<c:if test="${8>2 }">

? ? 8大于2是成立的

? ? </c:if>

foreach標簽

<c:forEach var="i" begin="1" end="10" step="2">

${i}<br>

</c:forEach>

總結(jié)

為什么要學習jsp

避免瀏覽器的緩存

動態(tài)拼接頁面

jsp要記憶的內(nèi)容

jsp注釋 : 不會返回到瀏覽器, 減少傳輸量

指令 : page include? taglib

動作 : jsp:include

九大內(nèi)置對象

四大域

域 : 一個控數(shù)據(jù)空間

jsp頁面中可以使用這個四個域

pageContext request session servletContext

el表達式

${名稱}

可以獲取對象中的屬性, 集合中的元素

jstl

功能標簽

先引入, 在使用

c標簽中 if? forEach


數(shù)據(jù)庫(DataBase谚中,DB):指長期保存在計算機的存儲設備上渴杆,按照一定規(guī)則組織起來,可以被各種用戶或應用共 享的數(shù)據(jù)集合宪塔。簡單理解數(shù)據(jù)的倉庫磁奖。

數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS):指一種操作和管理數(shù)據(jù)庫的大型軟件蝌麸,用于建立点寥、 使用和維護數(shù)據(jù)庫艾疟,對數(shù)據(jù)庫進行統(tǒng)一管理和控制来吩,以保證數(shù)據(jù)庫的安全性和完整性敢辩。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問 數(shù)據(jù)庫中的數(shù)據(jù)。

數(shù)據(jù)庫是通過數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建和操作的

常見數(shù)據(jù)庫管理系統(tǒng)

Oracle:Oracle數(shù)據(jù)庫被認為是業(yè)界目前比較成功的關系型數(shù)據(jù)庫管理系統(tǒng)弟疆。Oracle數(shù)據(jù)庫可以運行在UNIX戚长、 Windows等主流操作系統(tǒng)平臺,完全支持所有的工業(yè)標準怠苔,并獲得最高級別的ISO標準安全性認證同廉。

?MySQL:MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā)柑司,目前屬于 Oracle旗下產(chǎn)品迫肖。 MySQL 是最流行的關系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應用方面攒驰,MySQL是最好的 RDBMS (Relational Database Management System蟆湖,關系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件。

?DB2:DB2是IBM公司的產(chǎn)品玻粪,DB2數(shù)據(jù)庫系統(tǒng)采用多進程多線索體系結(jié)構隅津,其功能足以滿足大中公司的需要, 并可靈活地服務于中小型電子商務解決方案劲室。

?Microsoft SQL Server:SQL Server 是Microsoft 公司推出的關系型數(shù)據(jù)庫管理系統(tǒng)伦仍。具有使用方便可伸縮性好 與相關軟件集成程度高等優(yōu)點。

?SQLLite:應用在手機端的數(shù)據(jù)庫很洋。

非關系數(shù)據(jù)庫

Redis?

MongoDB

卸載過程1 控制面板 卸載 2找到mysql的安裝目錄 刪除 3 ProgramData 刪除mysql

SQL語句分類

DDL(Data De?nition Language):數(shù)據(jù)定義語言充蓝,用來定義數(shù)據(jù)庫對象:庫、表喉磁、列等棺克。

?DML(Data Manipulation Language):數(shù)據(jù)操作語言,用來定義數(shù)據(jù)庫記錄(數(shù)據(jù))线定。

?DCL(Data Control Language):數(shù)據(jù)控制語言娜谊,用來定義訪問權限和安全級別。

?DQL(Data Query Language):數(shù)據(jù)查詢語言斤讥,用來查詢記錄(數(shù)據(jù))

DDL操作表

CREATE TABLE [IF NOT EXISTS] 表名( 字段1 字段類型(長度) 約束,

字段2 字段類型(長度) 約束, ... 字段n 字段類型(長度) 約束

) [charset=utf8];

int:整型(4個字節(jié))

double:浮點型(8個字節(jié))纱皆,近似值 例如double(5,2)表示最多5位,其中必須有2位小數(shù)芭商,取值范圍為-999.99到999.99

decimal:精確數(shù)值數(shù)據(jù)派草,最大位數(shù)可以是65 例如decimal(5,2)能夠存儲具有五位數(shù)和兩位小數(shù)的任何值,因此可以存儲范圍為

-999.99至999.99铛楣。 char:固定長度字符串類型近迁; char(10) 'aaa ' 固定10個字符,不足補空格簸州, 長度0-255 缺點:浪費空間鉴竭,優(yōu)點:查詢速度快

varchar:可變長度字符串類型歧譬; varchar(10) 'aaa' 最多存儲10個字符

缺點:查詢速度慢,優(yōu)點:節(jié)省空間

text:大文本字符串類型搏存;有字符編碼瑰步,存儲比較大的文本數(shù)據(jù)。 blob:Binary Large Object二進制大對象數(shù)據(jù)璧眠;可以存儲圖片缩焦、音頻、視頻 date:日期類型责静,格式為:yyyy-MM-dd

time:時間類型袁滥,格式為:hh:mm:ss timestamp:時間戳類型 yyyy-MM-dd hh:mm:ss 會自動賦值 datetime:日期時間類型 yyyy-MM-dd hh:mm:s

常用約束:

主鍵約束:primary key (保證數(shù)據(jù)唯一性),不能重復,不能為null

唯一約束:unique [key],不能重復灾螃,可以為null 非空約束:not null 默認約束:default

外鍵約束:foreign key 自動增長:auto_increment

當前數(shù)據(jù)庫中的所有表

SHOW TABLES;

查看表的字段信息

DESC student;

在上面學生表的基礎上增加一個image列呻拌。 ALTER TABLE student ADD image blob;

修改address列,使其長度為60睦焕。 ALTER TABLE student MODIFY address varchar(60);

刪除image列,一次只能刪一列藐握。 ALTER TABLE student DROP image;

表名改為user。 RENAME TABLE student TO user;

查看表的創(chuàng)建細節(jié)

SHOW CREATE TABLE user; 修改表的字符集為gbk

ALTER TABLE user CHARACTER SET gbk; 列名name修改為username ALTER TABLE user CHANGE name username varchar(100);

DML操作

主要包括:INSERT 垃喊、UPDATE猾普、 DELETE

DQL數(shù)據(jù)查詢

數(shù)據(jù)庫執(zhí)行DQL語句不會對數(shù)據(jù)進行改變,而是讓數(shù)據(jù)庫發(fā)送結(jié)果集給客戶端本谜。

查詢返回的結(jié)果集是一張?zhí)摂M表初家。

查詢關鍵字:SELECT

語法: SELECT 列名 FROM 表名 【W(wǎng)HERE --> GROUP BY-->HAVING--> ORDER BY-->LIMIT】

?SELECT selection_list /要查詢的列名稱/

FROM table_list /要查詢的表名稱/?

WHERE condition /行條件/?

GROUP BY grouping_columns /對結(jié)果分組/

HAVING condition /分組后的行條件/?

ORDER BY sorting_columns /對結(jié)果排序/

LIMIT o?set_start, row_count /結(jié)果限定/




數(shù)據(jù)完整性

實體完整性: 域完整性: 引用完整性: 學生表(學號 ,姓名) 成績表( 學號,科目,成績)

實體完整性約束

實體:即表中的一行(一條記錄)代表一個實體(entity)

實體完整性的作用:標識每一行數(shù)據(jù)不重復。

約束類型:

主鍵約束(primary key)? 唯一約束(unique)? 自動增長列(auto_increment)

域完整性約束

域完整性約束的作用:限制此單元格的數(shù)據(jù)正確乌助,不對其它單元格起作用溜在,域代表當前單元格

域完整性約束:數(shù)據(jù)類型、非空約束(not null)他托、默認值約束(default)?

check約束(mysql 5.5不支持)check(sex='男'or? sex='女')

引用完整性約束

參照完整性約束

多表查詢

多個表之間是有關系的掖肋,那么關系靠誰來維護?

多表約束:外鍵約束。

多表的關系

一對多關系

客戶和訂單赏参,分類和商品志笼,部門和員工.

一對多建表原則:在多的一方創(chuàng)建一個字段,字段作為外鍵指向一方的主鍵.

多對多關系

學生和課程:

多對多關系建表原則:需要創(chuàng)建第三張表,中間表中至少兩個字段把篓,這兩個字段分別作為外鍵指向各自一 方的主鍵.

一對一關系

一個丈夫?qū)粋€妻子

一個員工對應一個簡歷

在實際的開發(fā)中應用不多.因為一對一可以創(chuàng)建成一張表.

兩種建表原則:

唯一外鍵對應:在多的一方創(chuàng)建一個外鍵指向一的一方的主鍵纫溃,將外鍵設置為unique和非空.

主鍵對應:讓一對一的雙方的主鍵進行建立關系.

多表查詢

多表查詢有如下幾種:

1 合并結(jié)果集;UNION 韧掩、 UNION ALL

2 連接查詢

? 2.1內(nèi)連接 [INNER] JOIN? ON

? 2.2外連接 OUTER JOIN ON

左外連接 LEFT [OUTER] JOIN

#成績表(從表) create table score( ? ? ?? id int, ? ? ?? score int, ? ? ?? sid int ,? ? ? ?? CONSTRAINT fk_score_sid foreign key(sid) references student(sid) ); -- 外鍵列的數(shù)據(jù)類型一定要與主鍵的類型一致

ALTER TABLE score ADD CONSTRAINT fk_stu_score FOREIGN KEY(sid) REFERENCES student(sid);

右外連接 RIGHT [OUTER] JOIN

3 子查詢

合并結(jié)果集

作用:合并結(jié)果集就是把兩個select語句的查詢結(jié)果合并到一起紊浩!

合并結(jié)果集有兩種方式:

l? UNION:去除重復記錄,例如:SELECT* FROM t1 UNION SELECT * FROM t2;

l? UNION ALL:不去除重復記錄坊谁,例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2费彼。

注意:被合并的兩個結(jié)果:列數(shù)必須相同,列類型可以不同

內(nèi)連接

上面的連接語句就是內(nèi)連接呜袁,但它不是SQL標準中的查詢方式敌买,可以理解為方言简珠!

SQL標準的內(nèi)連接為:

SELECT * FROM emp e INNER JOIN dept d ON e.deptno=d.deptno; 注意:on后面 主外鍵關系

外連接

包括左外連接和右外連接阶界,外連接的特點:查詢出的結(jié)果存在不滿足條件的可能。

a.左外連接:以左表為主表聋庵,右表是從表

SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno;

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膘融,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祭玉,更是在濱河造成了極大的恐慌氧映,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脱货,死亡現(xiàn)場離奇詭異岛都,居然都是意外死亡,警方通過查閱死者的電腦和手機振峻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門臼疫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扣孟,你說我怎么就攤上這事烫堤。” “怎么了凤价?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵鸽斟,是天一觀的道長。 經(jīng)常有香客問我利诺,道長富蓄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任慢逾,我火速辦了婚禮格粪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氛改。我一直安慰自己帐萎,他們只是感情好,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布胜卤。 她就那樣靜靜地躺著疆导,像睡著了一般。 火紅的嫁衣襯著肌膚如雪葛躏。 梳的紋絲不亂的頭發(fā)上澈段,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天悠菜,我揣著相機與錄音,去河邊找鬼败富。 笑死悔醋,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的兽叮。 我是一名探鬼主播芬骄,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹦聪!你這毒婦竟也來了账阻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤泽本,失蹤者是張志新(化名)和其女友劉穎淘太,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體规丽,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡蒲牧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赌莺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冰抢。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雄嚣,靈堂內(nèi)的尸體忽然破棺而出晒屎,到底是詐尸還是另有隱情,我是刑警寧澤缓升,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布鼓鲁,位于F島的核電站,受9級特大地震影響港谊,放射性物質(zhì)發(fā)生泄漏骇吭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一歧寺、第九天 我趴在偏房一處隱蔽的房頂上張望燥狰。 院中可真熱鬧,春花似錦斜筐、人聲如沸龙致。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽目代。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榛了,已是汗流浹背在讶。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霜大,地道東北人构哺。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像战坤,于是被迫代替她去往敵國和親曙强。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

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

  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,815評論 0 11
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件湖笨,本...
    java日記閱讀 3,463評論 0 13
  • 測試: http://blog.csdn.net/chenmengyi828/article/details/52...
    Miley_MOJIE閱讀 891評論 0 1
  • 引入 : 數(shù)據(jù)保存的三種方式 數(shù)據(jù)保存到內(nèi)存:優(yōu)點:讀寫非称炱耍快缺點:程序關閉導致數(shù)據(jù)丟失 數(shù)據(jù)保存到文件:優(yōu)點:數(shù)...
    奮斗的老王閱讀 922評論 0 50
  • 1 周影從小就愛看影視劇蹦骑,不論是愛國教育片慈省,還是家庭倫理片,他總能全神貫注的看進去眠菇,并且將劇情牢記在心中边败。 有時候...
    觀復山河閱讀 182評論 0 1