`
阿牛ge
  • 浏览: 104720 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate学习(1):常规数据库操作

阅读更多
在学习Hibernate之前,有必要了解一下,不采用Hibernate,Java是怎么进行数据库操作的。先看如下一段代码:

try
   {
    Class.forName ( "oracle.jdbc.driver.OracleDriver" ) ;
     Connection conn= DriverManager.getConnection (
                         "jdbc:oracle:thin:@dbserver:1521:XXX" ,
                         "UserID" ,
                         "Password"
                         )
       String sSQL =  "Select * from Test_Table" ;
       Statement statement = conn.createStatement () ;
       ResultRest rs = statement.execute  ( sSQL ) ;
   }
   catch  ( ClassNotFoundException e )
   {
     e.printStackTrace () ;
   }
   catch  ( SQLException e )
   {
     e.printStackTrace () ;
   }
   finally
   {
     if  ( conn!= null )
     {
       try
       {
         if  ( statement!= null )
         {
           try
           {
             statement.close () ;
           }
           catch  ( SQLException e )
           {
             e.printStackTrace () ;
           }
         }
         conn.close () ;
       }
       catch  ( SQLException e )
       {
         e.printStackTrace () ;
       }
     }
   }

     这里有几个学习点: Class.forName( ), Connection, DriverManager, Statement,ResultRest。

    在学习Class.forName()之前,先说说DriverManager:DriverManager类是 JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。对于简单的应用程序,一般需要在此类中直接使用的唯一方法是DriverManager.getConnection。正如名称所示,该方法将建立与数据库的连接。JDBC 允许用户调用DriverManager 的方法 getDriver、getDrivers 和 registerDriver 及 Driver 的方法connect。但多数情况下,让 DriverManager 类管理建立连接的细节为上策。

    DriverManager类包含一列 Driver 类,它们已通过调用方法DriverManager.registerDriver 对自己进行了注册。所有Driver 类都必须包含有一个静态部分。它创建该类的实例,然后在加载该实例时DriverManager类进行注册。这样,用户正常情况下将不会直接调用DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用。加载 Driver 类,然后自动在DriverManager 中注册的方式有两种:

  其中之一:通过调用方法 Class.forName。这将显式地加载驱动程序类。由于这与外部设置无关,因此推荐使用这种加载驱动程序的方法。以下代码加载类
    Class.forName ( "oracle.jdbc.driver.OracleDriver" ) ;

    现在回过来理解Class.forName这个方法:该方法返回的是一个类,要求JVM查找并加载指定的类。我们知道,有两种方式创建对象,一种是使用关键字new,另一种是newInstance方法。
    从JVM的角度看,我们使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:1、这个 类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载 java API的那个加载器。

    newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

    用最简单的描述来区分new关键字和newInstance()方法的区别:
    newInstance: 弱类型。低效率。只能调用无参构造。
    new: 强类型。相对高效。能调用任何public构造。

先写到这,后面再说Statement,ResultRest等
分享到:
评论

相关推荐

    hibernate同时配置多个数据库连接

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在某些复杂的应用场景下,我们可能需要同时连接并操作多个不同的数据库,例如,一个用于存储主业务...

    hibernate2文档

    由于提供的【标题】和【描述】内容完全相同,且信息量较少,【部分内容】中提供的信息也仅是标题重复和版本号...由于提供的信息有限,以上知识点是基于对Hibernate框架的理解和常规介绍。希望这些信息对您有所帮助。

    Hibernate学习笔记.pdf

    总的来说,Hibernate通过提供对象化的数据库操作,极大地提高了开发效率,降低了数据库操作的复杂性,是Java开发者在处理数据库相关问题时不可或缺的工具。深入学习和掌握Hibernate,将有助于提升开发者的专业技能,...

    hibernate应用包

    Hibernate是一款开源的对象关系映射(ORM)框架,它在Java开发中被广泛应用,极大地简化了数据库操作。在“hibernate应用包”中,我们通常会发现与Hibernate框架相关的各类库和配置文件,特别是关于注解(Annotation...

    Hibernate中的查询:HQL、Criteria、原生SQl

    在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据管理。本篇文章将深入探讨Hibernate中的三种主要查询方式:HQL(Hibernate Query ...

    Hibernate学习.doc.docx

    【Hibernate学习】文档主要介绍了如何将SSH(Struts2、Spring、Hibernate)框架整合使用,以及Hibernate在项目开发中的核心概念和配置需求。以下是详细的知识点解析: 1. SSH框架集成: - 客户端发起请求给...

    JDBC与Hibernate区别

    Java开发人员来说,JDBC(Java Database Connectivity)和Hibernate是两个重要的数据库操作工具。它们各自具有独特的优点和适用场景。 JDBC是Java平台的标准接口,用于连接和操作各种类型的数据库。它提供了直接的...

    Hibernate 5.3.7 +mysql jar包

    Hibernate作为一个强大的ORM工具,它通过将Java对象与数据库表进行映射,使得开发人员可以使用面向对象的方式处理数据库操作,从而降低了数据层的复杂性,提高了开发效率。 **文件列表详解:** 虽然具体的文件列表...

    最强大的数据库框架,秒杀mybatis、mybatisplus、hibernate

    Mybatis适合需要高度控制SQL的项目,MybatisPlus简化了常规操作,而Hibernate则提供了全面的ORM解决方案。至于esdk-master,它可能提供了一种新的方式来接入和操作数据库,但具体优势和适用场景需要进一步研究源码和...

    SSH笔记-管理Session和批量操作数据库

    - StatelessSession 不维护任何会话状态,不支持缓存,适用于只读或大量插入、更新等无状态操作,性能优于常规Session。 - 通过`SessionFactory.openStatelessSession()`创建StatelessSession,使用`batchSize`...

    hibernate4.1.8简化包

    Hibernate是一个流行的Java持久层框架,它允许开发者以对象关系映射(ORM)的方式处理数据库操作,极大地简化了Java应用与数据库之间的交互。"简化包"意味着这个版本可能去除了部分非核心功能或模块,旨在提供更轻量...

    hibernate与mybatis一起使用取长补短

    1. **数据持久化**: 对于常规的CRUD操作和复杂的业务逻辑,可以使用Hibernate,它能够自动处理对象的持久化,简化代码,提高开发效率。 2. **性能优化**: 对于大数据量的查询或者需要进行复杂SQL操作的部分,可以...

    hibernate5.5.4

    Hibernate是Java开发中的一个流行对象关系映射(ORM)工具,它允许开发者用面向对象的方式处理数据库操作,而无需直接编写SQL语句。描述中提到的“下载速度太慢”,暗示了可能在官方源或者其他常规渠道下载该版本时...

    hibernate执行外部sql

    在IT行业中,数据库操作是应用程序开发的核心部分,而Hibernate和MyBatis作为两个流行的Java持久层框架,都提供了与数据库交互的能力。本篇文章将详细探讨如何利用Hibernate来执行外部SQL文件,实现类似于MyBatis的...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对Oracle Clob在Hibernate中应用的详细总结: 3.1 传统的JDBC方式: 在没有使用ORM框架之前,我们通常...

    Hibernate识别数据库特有字段实例详解

    Hibernate识别数据库特有字段实例详解 前言: Hibernate已经为绝大多数常用的数据库数据类型提供了内置支持,但对于某些数据库的专属字段支持就不够好了。 这些特殊数据类型往往提供了比常规数据类型更好的数据表达...

    在Hibernate中处理批量更新和批量删除

    本文将深入探讨在Hibernate中处理批量更新和批量删除的策略,以及如何优化这些操作,以提高数据库操作的效率。 ### 批量更新的常规方法 在Hibernate中,最直观的批量更新方式是通过循环遍历查询结果集,并对每个...

    hibernate教程

    1. **对象关系映射(ORM)**:ORM是将对象模型和关系数据库模型之间建立的一种映射机制,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句的编写。 2. **配置文件**:Hibernate的配置文件...

    基于SSH三大框架的信息管理系统的毕业设计带数据库和论文

    通过配置文件,Hibernate将Java对象映射到数据库表,实现了对象的CRUD(创建、读取、更新、删除)操作。开发者可以通过面向对象的方式来处理数据库操作,降低了对SQL的依赖。 3. **Spring**:作为核心的容器框架,...

    MySql连接数据库(方法、代码、用到的所有组件)

    - **ORM框架**:如Hibernate,将对象模型映射到关系数据库,简化数据操作。 6. **安全注意事项**: - **避免SQL注入**:使用参数化查询或预编译语句。 - **加密传输**:使用SSL连接,确保数据在传输过程中不被...

Global site tag (gtag.js) - Google Analytics