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() :设置还原点