什么是ORM?
ORM(Object Relationship Mapping) 对象关系映射
利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多和底层数据库相关的SQL语句。这与面向对象思想格格不入~!
为什么要用hibernate的ORM框架技术,用原始的SQL方式的有什么局限性?
1). 不同的数据库使用的SQL语法不同。比如:PL/SQL与T/SQL
2). 同样的功能在不同的数据库中有不同的实现方式。比如分页SQL。
3). 程序过分依赖SQL对程序的移植及扩展、维护带来很大的麻烦。
1.Hibernate简介
Hibernate是java领域的一款开源的ORM框架技术
Hibernate对JDBC进行了非常轻量级的对象封装
2.Hibernate在我们的应用程序中充当着什么样的角色呢?
举例,如下图所示:我们要开发不同的系统
image.png
持久化层 --- 处于业务逻辑层和数据库之间的一个角色
作用 -- 把程序中生成的对象持久化到数据库中,换句话说,就是把这些对象通过对象关系映射保存到数据库的表中
3.其他主流的ORM框架技术
①MyBtis : 前身就是著名的iBatis
②Toplink:后被Oracle收购,并重新包装为Oracle AS TopLink
③EJB:本身是JAVAEE的规范
编写一个Hibernate小例子
使用Hibernate框架实现数据库连接,此例子中使用的是eclipse ide+SQL server数据库
1.在eclipse中安装hibernate软件包
在JBoss官网http://tools.jboss.org/downloads/中选中右边的JBoss Tools 4.11.0.Final,然后在下载页中的artifacts选项卡中选第一个最大的816MB的包,使用下载工具下载。
点击菜单栏Help-->install New Software
把下载的压缩包,添加进去,最好勾选添加所有与hibernate有关的所有文件.
2.导入必须的jar包
1.导入Hibernate必须的jar包
https://sourceforge.net/projects/hibernate/files/hibernate4/
这个是hibernate-release-4.xx.Final 4.0所有版本
添加下载文件夹中lib\required的所有jar包
2.导入Sql server的jdbc驱动
sqljdbc4.jar
3.导入Junit4的jar包
junit-4.10.jar
创建hibernate工程
创建一个普通的java工程
1.构建用户类库:windows--preference--java标签--buildpath--user libraries---new创建类库文件夹---Add Extra jars添加jar包
image.png
2.在项目名上右键----properties---java buildpath---libraries---Add libraies--user libraries--勾选上--完成
3.搭建步骤
创建Hibernate的配置文件
创建持久化类
创建对象-关系映射文件
通过Hibernate API编写访问数据库的代码
4.创建hibernate.cfg.xml
点击scr右键others,找到hibernate中的hibernate.cfg.xml创建,并配置属性,如下图所示
5.创建持久化类
创建一个类, 使用javabean创建格式(属性私有,无参构造,set/get封装),程序如下图
image.png
6.创建对象-关系映射文件
New -> other - > Hibernate -> Hibernate XML Mapping file (hbm.xml) 选择需要映射的刚创建的实体类,会将创建的字段和数据库字段进行映射。
对象-关系映射配置文件创建完成之后,要讲该文件引入到hibernate的配置文件中,通过<mapping resource=""/>标签引入,resource中填入对象关系映射文件名
程序如下图
image.png
7.通过Hibernate API编写访问数据库的代码
通过Hibernate API编写访问数据库的代码
1.开启事务
//创建配置对象
Configuration config = new Configuration().configure();
//创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
//创建会话工厂对象
sessionFactory = config.buildSessionFactory(serviceRegistry);
//会话对象
session = sessionFactory.openSession();
//开启事务
transaction = session.beginTransaction()
2.执行CRUD操作
Student s = new Student(1,"花花","女",new Date(),"北京");
session.save(s);
3.提交事务,关闭相应的资源
transaction.commit();//提交事务
session.close();//关闭会话
sessionFactory.close();//关闭会话工厂
通过Hibernate API编写访问数据库的代码
代码如下图所示
运行结果
image.png
在数据库中创建了表并添加内容
网友评论