Hibernate概述
来源:互联网 发布:美家预算软件 编辑:程序博客网 时间:2024/05/19 04:51
Hibernate是一个免费的开源Java包,它使得程序和数据库的交互变得十分容易,更加符合面向对象的设计思想,像数据库中包含普通Java对象一样,而不必考虑如何把他们从数据库中取出。使得开发者可以专注于应用程序的对象和功能,而不必关心如何保存或查找这些对象。甚至在对SQL语句完全不了解的情况下,使用Hibernate任然可以开发出优秀的包含数据库访问的应用程序。
一、JDBC简介
Java访问数据库最原始的方法是通过JDBC来完成的。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC是J2EE标准的一部分,它提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
1、JDBC提供的工具接口
java.sql包提供了JDBC API ,开发者可以通过他们编写数据库的程序代码。在java.sql包中常见的类和接口包括以下内容:
DriverManager类:负责管理JDBC驱动程序
Connection类:负责维护JSP/JAVA数据库程序和数据库之间的联机。
Statement类:通过Statemament类所提供的方法,可以利用标准的SQL命令,对数据库直接进行新增、删除、或修改操作。
PreparedState类:PreparedStatement和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编号等待使用。当有单一的SQL指令被多次执行时,用PreparedStatement类会比Statement类有效率。
ResultSet类:负责存储查询数据库的结果,并提供一系列的方法对数据库进行新增、删除、和修改操作,也负责维护一个记录指针,记录指针指向数据库中的某个记录,通过适当地移动记录指针,可以随心所欲的存取数据库,加强程序的效率。
2、JDBC访问数据库
(1)载入数据库驱动
(2)建立数据库连接,获取connection对象
(3)根据SQL语句建立Statement对象或者PreraredStatement对象
(4)用Connection对象执行SQL语句
(5)然后用一条一条读取结果集ResultSet对象中的数据,保存在Java对象中。
(6)如果是修改或删除操作需要对数据库发Commit命令
(7)一次关闭Statement对象和Connection对象
典型的JDBC程序:
Class.formName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/demo","test","test");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from person");
while(re.next()({
int id=rs.getInt("id");
String name=rs.getString("name");
String age=rs.getObject("age")==null?null:rs.getInt("age");
System.out.print("id+":"+name+" "+age);
}
stmt.close();
con.close();
由上看出利用JDBC业务处理逻辑和数据存取逻辑是混杂在一起的。代码逻辑非常复杂。
3、持久化层
访问数据库代码与业务逻辑混杂在一起带来了许多问题,这样的程序设计严重的限制了程序的可扩展性和适应性,所以有必要把涉及及数据库操作的代码分离出来与业务逻辑分离,就形成了所谓“持久层”。
持久化,即把数据(内存中的对象)保存到可永久保存的存储设备中,持久化的主要应用是将内存中的数据存储在关系型数据库中。也可以存储在磁盘文件中\XML数据文件中等。
所谓持久层,即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联,它包括数据库的相关操作:
保存:
更新:
删除:
查询:
在设计中分出持久化的目的都是为了提高应用程序的可维护性、可扩展性、可重用性和可管理性。
- Hibernate概述
- Hibernate 概述
- Hibernate 概述
- 【Hibernate】概述
- Hibernate概述
- Hibernate概述
- Hibernate概述
- Hibernate概述
- 【Hibernate】概述
- Hibernate概述
- hibernate概述
- hibernate 概述
- Hibernate进化史-------Hibernate概述
- hibernate学习 hibernate概述
- Hibernate 01 : Hibernate概述
- 【JavaEE—Hibernate】Hibernate概述
- Hibernate缓存概述
- 【转】Hibernate缓存概述
- C++的虚函数相关知识点(二)
- 函数参数传递是不是都会创建一个副本
- vim的安装
- wsprintf和swprintf区别(转)
- redis-lua(二): 遍历数据库
- Hibernate概述
- HDU 动态规划(46道题目)倾情奉献~
- Eclipse中SVN版本控制插件的安装和使用
- cx-extractor:基于行块分布函数的通用网页正文抽取:线性时间、不建DOM树、与HTML标签无关
- SVN的简明用户使用指南,eclipse版本
- Repository Browser显示期望文件系统为2 而不是4
- linux putty下中文乱码
- 新开播客
- 面试和IT就业方向