1.三大框架
SSH:???? struts2(web层技术)?????????? sping(业务层,跨所有层的整合技术)??????? hibernate(持久层技术)
2.hibernate
????? hibernate完全替代了jdbc层.代替了整个DAO.
????? Hibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,它将简单的java对象(opjo)与数据库表建立映射关系,是一个全自动的orm(Object Relational Mapping? 面向对象关系映射)框架,hiernate可以自动生成SQL语句,自动执行,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在servlet/jsp的web应用中使用.
2.ORM?? Object??? Relational? Mapping
????????? 是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换,从效果上说,它其实是创建了一个可在编程语言里使用的"虚拟对象数据库"
????????? O:object对象,面向对象语言领域,java中的javaBean
????????? R:关系数据库领域的Relational(数据库中表的结构)
????????? M:映射Mapping(xml的配置文件)
优点:
hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码,
Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作
Hibernate的性能非常好,因为他是一个轻量级框架,映射的灵活性很出色.它支持很多关系型数据库(如Mysql, Orcale等(在Redis中有讲解关系型数据库和非关系型数据库 )),从一对一到多对多的各种复杂关系.
Hibernate环境搭建步骤:
1.下载Hibernate环境资源
???? Hibernate?? ORM官网
2.导入Hibernate环境必要的jar包
? ? ? .? hibernate的必须jar包:在hibernate-release-5.0.7.Final\lib\required下的9个jar包
? ? ? .数据库驱动的jar? 这里用的mysql-connector-java-5.1.7-bin.jar
3.创建数据库
dropdatabasehibernate_day01;
createdatabasehibernate_day01;
usehibernate_day01;
CREATETABLE`hibernate_day01`.`t_user`(?????????????? `u_id`BIGINTNOTNULLAUTO_INCREMENTPRIMARYKEY,? ? ? ? ? ? ? ? ? ? ? `u_name`VARCHAR(32)NOTNULL,
`u_age`INT(16)
);
4.编写Bean
publicclassUser{
privateInteger u_id;
privateString u_name;
privateintu_age;
}
注意:需要给数据bean中对应表中主键的属性设置为对象类型,且必须实现序列化接口.需要提供get和set方法
5.配置映射文件
映射文件的作业就是将数据bean 和表结构建立关系
命名规范问题:hibernate命名以类名.hbm.xml方式命名。
新建位置规范:通常和java类放到同一个包中。
dtd头的导入: org.hibernate 的包中有对应的dtd头。
在配置关系过程中,几乎所有的name属性指向的都是Java类,column和table指向数据库表
6.配置核心启动文件
命名规范要求:以hibernate.cfg.xml方式命名
新建位置规范:放到src目录中,也就是classpath路径(类根路径)
dtd头的导入:org.hibernate的包中有对应的dtd头
7.编写程序访问数据库
下载JBoos Tools
eclipse安装插件
?????? 1.Help–>Install New Software–>add
?????? 2.在打开的对话框中Location后点击Archive,选择下载的JBoss Tools的压缩包
??????? 3.在对话框中只勾选Hibernate Tools
??????? 4.下一步直到完成重启
工具开发提供的便利
??????? 1.自动生成核心启动文件
??????? 2.自动生成映射关系