SSH框架知识点

Oracle数据库的主要特点
支持多用户,大事务量的事务处理。
在保持数据安全性和完整性方面性能优越。
支持分布式数据处理,组成一个逻辑上统一的数据库。
具有可移植性,Oracle可以在windows,linux等多个操作系统平台上使用,SQL Server只能在windows上运行。

Oracle基本概念
1 它是磁盘上存储数据的集合,在物理上表现为数据文件,日志文件和控制文件,在逻辑上以表空间形式存在。
2 使用时,必须首先创建数据库,然后才能使用Oracle,可以在安装Oracle软件的同时创建数据库,也可以在安装后单独创建数据库。
3 全局数据库名是用于区分一个数据库的标识,在安装数据库,创建新数据库,创建控制文件,修改数据库结构,利用rman备份是都需要使用。
4 数据库实例就是通过内存共享运行状态的一组服务器后台进程。
5 一个表空间可以由多个数据文件组成,但一个数据文件只能属于一个表空间,与数据文件这种物理结构相比,表空间属于数据库的逻辑结构。
6 数据文件的扩展名是.dbf,是用于存储数据库数据的文件。
7 控制文件的扩展名是.ctl,是一个二进制文件,控制文件中存储的信息很多,包括数据文件和日志文件的名称和位置,控制文件是数据库启动及运行所必须的文件,当Oracle读写数据时,要根据控制文件的信息查找数据文件。
8 日志文件的扩展名是.log,它记录了数据的所有更改信息,并提供了一种数据恢复机制,日志文件是成组使用的,每个日志文件组可以有一个或多个日志文件,在工作过程中,多个日志文件组之间循环使用,当一个日志文件组写满后,会转向下一个日志文件组。
9 模式是数据库对象的集合,Oracle会为每一个数据库用户创建一个模式,此模式为当前用户所拥有和用户具有相同的名称。

Oracle常用的三个服务
OracleServiceSID服务是Oracle数据库服务,此服务是对应名为SID(系统标识符)的数据库实例创建的,其中SID是安装Oracle 11G时输入的数据库名称,该服务默认是自启动的。
OracleOraDb11g_home1TNSListener服务是监听服务,监听器监听并接收来自客户端应用程序的连接请求,该服务只有在数据库需要远程访问的时候才需要。
OracleDBConsoleSID服务是数据库控制台服务,EMC(企业管理控制台)的服务程序(SID随安装的数据库而不同)是采用浏览器方式打开的,用于使用Oracle企业管理器的程序。

课后经验
如果数据库安装在本地,并且使用自带的SQLPlus进行访问,只需要启动OracleServiceSID服务即可,并且使用SQLPlus连接时不能使用"@"。
这种连接被视为本地连接,Oracle中存在一个默认的数据库服务名,本地连接会自动连接该默认的数据库服务。
如果进入基于Web形式的企业管理(EM)控制平台,则必须要启动OracleDBConsoleSID服务。

更新会话
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

LOB数据类型
CLOB 能够存储大量字符数据。该数据类型可以存储单字节字符数据和多字节字符数据,主要用于存储非结构化的XML文档。
BLOB 可以存储较大的二进制对象。
BFILE 能够将二进制文件存储在数据库外部的操作系统文件中,存储一个定位器,指向位于服务器文件系统上的二进制文件,支持的文件最大为4GB。
NCLOB 数据类型用于存储大的NCHAR字符数据,同时支持固定宽度字符和可变宽度字符。大字符对象的大小不大于4GB。

伪列ROWID用途
能以最快的方式访问表中的一行
能显示表的行是如何存储的
可以作为表中行的唯一标识
示例:使用select语句查看ROWID值
select ROWID,ename from scott.emp where ename='smith';

伪列ROWNUM用途
示例:select emp.*,ROWNUM from scott.emp where ROWNUM<11;

SQL语言简介
DDL(数据定义语言):create,alter,truncate(截断),drop命令
DML(数据操纵语言):insert,select,delete,update命令
TCL(事务控制语言):commit,savepoint(保存点),rollback命令
DCL(数据控制语言):grant(授予),revoke(回收)命令

创建表示例
create table 表名称(
stuNo char(6) not null,
stuName varchar2(20) not null
);

不重复显示
select DISTINCT stuname from stuInfo;

逻辑运算符
用于组合多个比较运算符的结果以生成一个或真或假的结果,逻辑运算符包括and(与),or(或),not(非)。

集合运算符
UNION(并集) 返回两个查询选定的所有不重复的行。
UNION ALL(并集ALL) 合并两个查询选定的所有行,包括重复的行。
INTERSECT(交集) 返回两个查询都有的行。
MINUS(减集) 返回由第一个查询选定而未被第二个查询选定的行。

转换函数
TO_CHAR 转换成字符串类型。
TO_DATE 转换成日期格式。
TO_NUMBER 转换成数值类型。
示例:
1 select TO_CHAR(SYSDATE,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS');
2 select TO_DATE('2013-07-13','yyyy-mm-dd') from dual;
3 select sqrt(TO_NUMBER('100')) from dual;

分析函数
ROW_NUMBER 返回一个唯一的值,当遇到相同的数据时,排名安装记录集中记录的顺序依次递增。
DENSE_RANK 返回一个唯一的值,遇到相同的数据时,所有相同数据的排名都是一样的。
RANK 返回一个唯一的值,所有相同数据排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。
示例
select ename,deptno,sal,
RANK() OVER (PARTITION BY deptno ORDER BY sal DESC),
ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY sal DESC),
DENSE_RANK () OVER (PARTITION BY deptno ORDER BY sal DESC)
from employee;

表空间分类
永久性表空间 一般保存表,视图,过程和索引等的数据,SYSTEM,SYSAUX,USERS,EXAMPLE表空间是默认安装的。
临时表空间 只用于保存系统中短期活动的数据。
撤销表空间 用来帮助回退未提交的事务数据,已提交了的数据在这里是不可以恢复的。

表空间的目的
对不同用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户数据的操作,对模式对象的管理。
可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,有利于提高I/O性能,有利于备份和恢复数据等。

创建表空间
create tablespace 表名
datafile 'D:\oracle\worktbs.dbf'
size 10M autoextend on;

删除表空间
drop tablespace 表名;

自定义用户管理
1 SYS用户是Oracle中的一个超级用户,所有数据字典和视图都存储在SYS模式,主要用来维护系统信息和管理实例,SYS用户只能以SYSOPER或SYSDBA角色登录系统。
2 System是Oracle中默认的系统管理员,他拥有DBA权限,不建议在System模式中创建用户表,System用户不能以SYSOPER和SYSDBA角色登录系统,只能以默认方式登录。
3 scott用户是一个示范用户,一般在数据库安装的时候创建。

创建用户
create user user
identified by password
default tablespace table 默认表空间
temporart tablespace table 临时表空间

删除用户
drop user table caseade; 使用caseade选项删除用户和用户模式对象。

系统预定义角色
1 connect 需要连接上数据库的用户,特别是那些不需要创建表的用户,通常授予该角色。
2 resource 更为可靠和正式的数据库用户可以授权该角色,可以创建表,触发器,过程等。
3 DBA 数据库管理员角色,拥有管理数据库的最高权限,一个具有DBA角色的用户可以撤销任何其他用户甚至其他DBA权限。

授权语法
grant connect,resource TO table;

撤销语法
revoke connect,resource TO table;

允许用户查看emp表中的记录
grant select on scott.emp TO table;

创建序列
create sequence 表
start with 10 第一个序列号
increment by 10 每次增长的间隔
maxvalue 2000 生成的最大值
nocycle; 序列在达到最大值,将不能再继续生成值

访问序列
nextval 创建序列后第一次使用NEXTVAL时,将返回该序列的初始值,以后再引用nextval时,将使用increment by 子句来增加序列值,并返回这个新值。
currval 返回序列的当前值,即最后一次引用nextval时返回的值。

插入数据
insert into table(toyid)values(seq.nextval,'twenty',25);

删除序列
drop sequence 序列;

同义词用途
1 简化SQL语句
2 隐藏对象的名称和所有者
3 为分布式数据库的远程对象提供了位置透明性
4 提供对对象的公共访问

私有同义词
当前模式下创建私有同义词,用户必须拥有create synonym系统权限,
要在其他用户模式下创建私有同义词,用户必须拥有create any synonym系统权限。
语法:
create or replace 替换该同义词 synonym 名称 for 创建同义词对象的名称;

删除同义词
drop synonym 名称;

索引分类
1 分区索引 单列或组合索引
2 B树索引 唯一或非唯一索引
3 正常或反向键索引 基于函数索引
4 位图索引
语法:
唯一索引:create unique index 名称 on 表(列);
反向键索引:create index 名称 on 表名(列) reverse;
位图索引:create bitmap index 名称 on 表(列);
大写函数索引:create index 名称 on 表(upper(列));
重建索引:alter index 名称 rebuild noreverse;

注:何时删除索引
1 应用程序不在需要索引。
2 执行批量加载前,大量加载数据前删除索引,加载后再重建索引有以下好处:提高加载性能,更有效的使用索引空间。
3 索引已坏。
何时重建索引
1 用户表被移动到新的表空间后,表上的索引不是自动转移,此时需将索引移到指定表空间。
2 索引中包含很多已删除的项,对表进行频繁删除,造成索引空间浪费,可以重建索引。
3 需将现有的正常索引转换成反向键索引。

分区表
create table table
(
字段 数据类型
)
partition by range(日期字段)
(
partition p1 values less than (to_date('2013-04-1','yyyy-mm-dd')),
partition p5 values less than(maxvalue)
);
查看第一季度的数据
select * from table partition(p1);

PL/SQL是结合了Oracle过程语言和结构化查询语言是一种扩展语言。
主要功能
1.PL/SQL具有编程语言的特点
2.可以采用过程性语言控制程序的结构
3.对程序中的错误进行自动处理
4.具有更好的可移植性
5.减少网络的交互,提高程序的性能

把原表的数据类型赋予他
declare
v_empno employee.empno%TYPE:=7788;
v_rec employee%ROWTYPE;
Begin
select *into v_rec from emp where
empno=v_empno;
DBMS_output.put_line(打印输出);
end;

条件控制
if<布尔表达式>then
SQL语句
end if;

case语句语法
case 条件表达式
when 表达式结果 then
语句段 1

end case;

Loop循环
Loop
执行语句
Exit when 条件语句
End Loop;

for循环计数器 in 下限 上限 Loop
执行语句;
End Loop;

while循环
while 表达式 Loop
执行语句
end Loop;

重新定义异常错误信息
raise_Application_error(编号,文本)
编号长度必须是20999到20000之间
消息长度可达2048字节

游标类型:静态 动态
游标
cursor 游标名称 return 行类型
is 查询语句

打开游标
open 名称;

提前游标
fetch 名称 into 变量名;

关闭游标
close 名称

使用显示游标删除更新
cursor 名称 is select * for update
for update 为更新查询,锁定选择行

Hibernate框架
Gavin King是Hibernate的创始人,EJB3.0专家委员会成员,JBoss核心成员之一。

Hibernate 优点
1.功能强大
2.支持许多面向对象的特性
3.可移植性强
4.Hibernate框架开源免费

瞬时状态转为持久状态
使用session的saveorupdate()保存对象后,该对象的状态为持久。
get(),load()获取对象,为持久对象

持久状态转为瞬时状态
执行session的delete()方法后,由原来的持久转为瞬时

游离转为持久状态
执行session的update(),游离转为持久

游离转为瞬时状态
执行session的delete()方法,游离转为瞬时

数组对象返回一个信息
Object[] obj=(Object[])session.createQuery(hql).uniqueResult();//返回一条信息

连接类型
内连接 inner join或 join
迫切内连接 inner join fetch或join fetch
左外连接 left outer join或left join
迫切左外连接 left outer join fetch或left join fetch
右外连接 right outer join 或right join
示例:from Dept inner join Dept.emps(内连接)

Struts2标签库
<%@taglib prefix="s" uri="/struts-tags"%>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容