1.层和层之间的关系。
(界面)
表述层--------->业务逻辑层---------->持久化层--------->数据库层
2. 软件开发领域,模型用来表示真实世界的实体。
软件开发的不同阶段,要为目标系统创建不同的模型:
---分析阶段:创建概念模型
---设计阶段:创建域模型/数据模型。
3. 实体和实体之间存在3种关系:
4. 持久化:(狭义)仅仅指把域对象永久保存到数据库中。
(广义)包括数据库相关的各种操作(save/update/delete/加载/查询)
5. JDBC访问数据库步骤;
。DriverManager:驱动程序管理器,创建DB连接
。Connection:连接数据库
。Statement/PreparedStatement:执行SQL语句(后者有预编译功能)
。ResultSet:返回 SQL语句的结果集
DriverManager--> Connection----> Statement-----> ResultSet5. JDBC 编程的缺点
。业务逻辑的代码和数据访问代码写在一起,程序结构不清晰,可读性差;
。在程序代码中嵌入面向关系的SQL语句,使开发人员不能完全使用面向对象的思维编程;。业务逻辑和关系数据模型绑定,如修改了表结构,相应的SQL语句也要改,难维护;
。当SQL语句有语法错误时,编译能通过,运行才报错,增加了调试程序难度;
6. ORM(object-relationship mapping对象关系映射) 模式:
。在单个组件中负责所有实体域对象的持久化,封装数据访问细节。
。Hibernate是ORM的一个实现
。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录。
7. 面向对象概念 面向关系概念
类 表
对象 表的行(记录)
属性 表达列(字段)
8. hibernate.cfg.xml
hibernate的主配置文件,配置数据库连接等相关信息......
9.SessionFactory (唯一的)作用:创建Session。
。它的线程是安全的。
。它是重量级的,这意味着它的同一个实例可以被应用的多个线程共享。
10.Session是Hibernate应用使用最广泛的接口。其也被称为持久化管理器。
特点:。线程不是安全的,设计软件架构是,应避免多个线程共享同一个Session实例。
。Session实例是轻量级的。
。此Session非彼Session(HttpSession)
OGNL
1.OGNL(Object Graph Navigation Language)对象图导航语言.
2.OgnlContext(上下文对象),存在唯一的叫做根的对象(root),可以通过程序设定上下文中的那个对象作为跟对象。
3.在OGNL中,如果表达式没有使用#号,那么OGNL会从根对象中寻找该属性对应的get方法,如果寻找的不是根对象,那么则需要 #号开头,告诉OGNL,去寻找你所指定的特定对象的属性。
4.对于OGNL来说,数组和集合一样,都是通过下标索引去访问,构造集合时使用{...}形式
5.OGNL处理映射(Map)语法:#{'key1':'value1','key2':'value2','key3':'value3'};访问的时候通过key访问。
6.过滤(filtering): collection.{?expression}
7.OGNL 针对集合提供了一些伪属性(如size,isEmpty)等,让我们可以通过属性的方式来调用方法(本质原因在于集合当中可以有很多方法并不符合JavaBean的命名规则),但我们依然可以通过调用方法来实现与伪属性相同的目的。