MVC思想:
servlet-->缺點:生成html內容太麻煩
jsp--->缺點:閱讀起來不方便,維護比較困難
jsp+javabean:
jsp的model1:
jsp:接受請求,展示數據
javabean:和數據打交道(類似User類)
jsp+javabean+servlet
jsp的model2:
jsp:展示數據
javabean:和數據打交道
servlet:接受請求,處理業務邏輯
就是MVC思想的體現
MVC:
就是將業務邏輯,代碼,顯示相分離的一種思想
M:model 模型 作用:主要是封裝數據,封裝對數據的訪問
V:view 視圖 作用:主要是用來展示數據 一般是jsp擔任的
C:ctrl 控制 作用:接受請求,找到相應的javabean完成業務邏輯
JAVA的三層架構(分層):
web
作用:
展示數據 ----jsp
-----servlet-------
接受請求
找到對應的service,調用方法 完成邏輯操作
信息生成或者頁面跳轉
service 業務層
作用:
完成業務操作
調用dao
dao(data access object 數據訪問對象)
作用:
對數據庫的curd操作
事務:就是一件完整的事情,包含多個操作單元,這些操作要麼全部成功,要麼全部失敗.
四大特性:原子性(基本單元不能再分,成功或者回滾到起點),隔離性(同一時間,同一數據只能被一個事務訪問,比如轉出沒完成前是不能轉入得),
一致性(事務最終不破壞完整性約束),可持久性(更新持久不能回滾)
例如:轉賬
包含轉出操作和轉入操作.
mysql中的事務:
mysql中事務默認是自動提交,一條sql語句就是一個事務.
開啓手動事務方式
方式1:關閉自動事務.(瞭解)
set autocommit = off;
方式2:手動開啓一個事務.(理解)
start transaction;-- 開啓一個事務
commit;-- 事務提交
rollback;-- 事務回滾
擴展:
oracle中事務默認是手動的,必須手動提交纔可以.
例如:創建數據庫和表
create database day13;
use day13;
create table account(
name varchar(20),
money int
);
insert into account values('aa','1000');
insert into account values('bb','1000');
完成 aa給bb轉500;
update account set money = money - 500 where name='aa';
update account set money = money + 500 where name='bb';
java中的事務:Connection接口的api:★
setAutoCommit(false);//手動開啓事務
commit():事務提交
rollback():事務回滾
擴展:瞭解 Savepoint還原點
void rollback(Savepoint savepoint) :還原到那個還原點
Savepoint setSavepoint() :設置還原點