1、三层架构
表现层 web层(MVC是一个表现层的设计模型)
业务层 service层
持久层 dao层
表现层 web层(MVC是一个表现层的设计模型)
业务层 service层
持久层 dao层
2、三大框架和三层架构的关系
hibernate框架:它是一个持久层框架
struts2框架:它是一个表现层框架
spring框架:它是一个综合类框架
hibernate框架:它是一个持久层框架
struts2框架:它是一个表现层框架
spring框架:它是一个综合类框架
明确:hibernate只能操作数据库(跟数据库打交道)
3、我们已经掌握的持久层技术:
1、JDBC :它是操作数据库最底层的方式。
优势:最底层,效率快。
弊端:需要编写繁琐的代码,特别是在封装结果集的时候。
4、使用JDBC操作字段较多的数据库表时遇到的问题。
1、在查询已经封装好的结果集时,写get方法太重复繁琐。
5、希望怎么解决。
在操作数据表时,写一行代码就可以做到
例如保存对象 session.save(对象); 在数据库执行insert into 插入一条记录。
6、实现
编写实体类
public class Product{
private Integer pid;
private String pname;
private Double price;
}
private Integer pid;
private String pname;
private Double price;
}
创建数据表
create table product(
product_id int primary key auto_increment,
product_name varchar(50),
product_price double(7,2)
);
product_id int primary key auto_increment,
product_name varchar(50),
product_price double(7,2)
);
建立一个桥梁关系,从而达到操作实体类对象就是操所数据库表的目的。这个关系就是SQL语句。
insert into product(product_name,product_price)values(product.getPname(),product.getPrice());
使用配置文件。
配置文件的种类:
properties
xml
选择properties还是xml呢?
使用XML。
因为XML可以描述层级关系
对应关系的配置文件示例:
<class name="类名" table="表名">
<id name="实体类属性名称" column="表中的主键字段名">
<property name="属性名" column="表中的字段名"/>
</class>
配置文件的种类:
properties
xml
选择properties还是xml呢?
使用XML。
因为XML可以描述层级关系
对应关系的配置文件示例:
<class name="类名" table="表名">
<id name="实体类属性名称" column="表中的主键字段名">
<property name="属性名" column="表中的字段名"/>
</class>
insert into $tablename$($columnname$,$columnname$) values(product.getxxx,product.getxx)
7、ORM
Object Relational Mapping
对象关系映射
建立实体类和数据库表单的对应关系,从而达到,操作实体类就是操作数据库表的效果。
8、hibernate
它是一个轻量级、企业级、开源的ORM持久层框架。操作数据库的。
轻量级:意为所需的启动资源较少,实现的功能也少。(例如tomocat服务器,它是一个轻量级的服务器,所需的启动资源较少,只能实现jsp里面servlet和跳转等。)
企业级:面对的客户是固定的人群,数量较多,在企业级应用中使用的人比较多。
开源的:指开发源代码。
框架:指架构,固定的模型。
9、hibernate中的常用对象。
Configuration
SessionFactory
Session
Transaction