`

hibernate基础学习1 连接db

阅读更多
  1. 连接db
  2. 连接池
  3. db方言
  4. 自动生成数据表

1,连接db

hibernate连接db来支持我们的应用,我们可以通过不同的方法来连接到db,主要方法如下:

连接方式 简介
独立内置的连接池 不建议使用到生产环境
javax.sql.Datasource tomcat等web服务器上配置的连接池
第三方连接池 c3p0,proxool,用的最多
应用提供的连接 不推荐使用,除非历史遗留问题

原理:

 

通过接口org.hibernate.service.jdbc.connections.spi.ConnectionProvider来获得连接,如果应用需要自己提供到hibernate的连接,实现这个接口,并通过属性hibernate.connection.provider_class来指定自定义的连接池;

配置连接主要有三种方式:

配置方式 简介
属性文件 image
xml文件 image
程序配置 image

三种配置方式都可以,最常用的是使用xml文件来配置到db的连接;

使用SessionFactory的openSession()方法获得连接,配置常量在接口org.hibernate.cfg.AvailableSettings中定义.

 

2,连接池

hibernate内置的连接池算法不成熟,只是出于开发和测试的目的设计的,使用第三方的连接池稳定,性能优越,为了使用第三方的连接池,必须使用第三方的配置替换掉hibernate.connection.pool_size属性,以此来禁用hibernate内置的连接池。

c3p0连接池的配置:

 

  • hibernate.c3p0.min_size

  • hibernate.c3p0.max_size

  • hibernate.c3p0.timeout

  • hibernate.c3p0.max_statements

如果加入以上的配置,hibernate将会使用

 

org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider

来作为连接池,引用的jar包放在源码包中的lib下;

 

proxool连接池的配置:

image

如果加入了上面的配置,hibernate将会使用org.hibernate.service.jdbc.connections.internal.ProxoolConnectionProvider来作为连接池,引用包同样放在源码包的lib下面;

 

从应用服务器获取连接,使用JNDI:

 

  • hibernate.connection.datasource (required)

  • hibernate.jndi.url

  • hibernate.jndi.class

  • hibernate.connection.username

  • hibernate.connection.password

使用应用服务器的容器管理事物;

其它的配置属性可参考文档结合源码来配置

 

3,方言

尽管sql语句相对来说是标准的,但是每个数据库提供商有一套自己的符号,这可以看作是不同地方的方言,hibernate通过类

 

org.hibernate.dialect.Dialect和它的子类来处理方言以支持不同的database;

image

通过属性hibernate.dialect来指定应用连接的db的方言(种类),属性值为上表中的类名;

设想下如果连接池安装好了,hibernate将自动决定使用的方言

基于java.sql.DatabaseMetaData(从java.sql.Connection中得到),这是通过已经安装好的方言解决器来实现解析的org.hibernate.service.jdbc.dialect.spi.DialectResolve,如果你指定了方言,会优先选择指定的方言解析器。

 

4,自动生成数据表

通过SchemaExport工具可以生成数据表,它是hibernate内置的工具,可以通过映射文件生成ddl,生成的概要文件包括完整的参考条件,主键和外键,实体和表的集合映射,它也可以创建表格和通过指定的生成器生成序列;在使用之前,必须先指定方言和映射文件;

制作映射配置文件:

image

通过提供的一些元素和属性来制作映射配置文件,稍后提供一个实例来介绍简单的配置文件的编写;

生成数据表:

Configuration cfg = ....;
new SchemaExport(cfg).create(false, true);

通过以上代码,可以加载默认的配置文件,生成对应的数据表;

0
0
分享到:
评论

相关推荐

    Hibernate+struts实例学习

    - 数据库设计与表创建是学习Hibernate与Struts实例的基础,需要掌握SQL语言和数据库基本操作。 - 在Java Web工程中配置数据源,了解不同数据库的配置方法和差异。 - Hibernate配置文件的编写,包括SessionFactory的...

    Hibernate实践 DB操作

    - 使用`SessionFactory`作为连接数据库的核心对象,通常会在`HibernateUtil`类中通过配置文件`hibernate.cfg.xml`来初始化`SessionFactory`。 - 在Hibernate 3中,可以通过`SessionFactory.getCurrentSession()`...

    Java连接DB2

    对于更复杂的应用,如批量数据处理、事务管理、连接池等,可以使用高级框架,如Hibernate、MyBatis等,它们提供了更高层次的抽象,简化了数据库操作。然而,理解基本的JDBC连接原理仍然是至关重要的。 总之,Java...

    Hibernate入门学习

    通过本文的学习,初学者可以快速掌握Hibernate的基本使用方法,为进一步深入学习Hibernate打下坚实的基础。在实际开发中,Hibernate作为一种流行的ORM框架,能够极大地简化数据库操作,提高开发效率。

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 ...通过上述知识点的学习,初学者可以更好地理解Hibernate的核心概念和技术优势,并逐步掌握其基本用法,为进一步深入学习打下坚实的基础。

    MyEclipse_Hibernate_Quickstart

    本篇文章将详细介绍如何使用MyEclipse Enterprise Workbench进行Hibernate开发的基础特征、概念和技术。通过构建一个简单的Java Hibernate应用来逐步展示整个开发过程。 #### 二、需求 为了能够顺利地进行此教程的...

    hibernate学习文档

    7. **配置 Hibernate 配置文件**:编辑 `hibernate.cfg.xml` 文件,指定数据库连接信息及其他的全局配置。 8. **编写业务逻辑**:实现增删改查等基本操作。 9. **测试验证**:运行测试用例确保功能正确。 #### 示例...

    Hibernate Developer Guide

    - 使用命令行工具:`java -jar hibernate-tools-X.Y.Z.jar hbm2ddl -db hsqldb -dialect org.hibernate.dialect.HSQLDialect -input hibernate-mapping.hbm.xml` - 通过编程方式调用。 #### 四、事务和并发控制 ...

    自己写的jdbc对DB2的操作(含jar包在里面)

    “hibernate”是一个流行的Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库,但本案例主要关注的是基础的JDBC操作;“java”明确了编程语言;“jdbc”是Java Database Connectivity,即Java...

    达内教学课件Hibernate

    如corejava(核心Java)、db_xml(数据库与XML)、jdbc(Java数据库连接)、servlet(服务器端小程序)、jsp(Java服务器页面)、ajax(异步JavaScript和XML)、jquery(一个流行的JavaScript库)以及ssh(Spring、...

    Intro to Hibernate TCJUG

    本篇文章将基于给定文件中的信息进行深入解析,重点在于介绍 Hibernate 的基础知识及其在 Java 开发领域的重要作用。文件提供的信息虽然较为简略,但已经涵盖了 Hibernate 的概述、演示大纲、关于演讲者 Steve ...

    struts + hibernate程序

    Struts和Hibernate是Java开发中两个非常重要的框架,它们分别专注于Web层和持久化层的管理。本项目是一个使用Struts作为...同时,这个例子也是学习和实践Java Web开发的绝佳起点,能够帮助你构建起Web应用的基础架构。

    Hibernate开发环境搭配

    1. **进入Hibernate数据库**:在DB Browser配置界面中找到并进入`HibernateWizard`数据库。 2. **选择表进行反向工程**:右键点击表`C4_Notebook`,选择“Hibernate Reverse Engineering”。 3. **指定Java包名**:...

    Hibernate文档

    1. Hibernate的基础知识 Hibernate的核心功能在于将Java对象与数据库表之间的映射关系自动化,使得数据操作变得简单。在本教程中,首先会介绍如何创建一个基于命令行的简单应用程序,使用HSQL DB作为驻留内存数据库...

    Spring整合Hibernate操作商品库存表

    通过这个项目,学习者不仅可以掌握Spring、Hibernate和JSP的基本使用,还能了解到如何将它们结合到一起,形成一个完整的Web应用。同时,此项目也为添加其他框架如Struts提供了基础,进一步扩展系统的功能和架构。

    SSH+DB2搭建开发环境(下)

    在本篇中,我们将深入探讨如何使用SSH...在实际开发过程中,还需不断学习和掌握新技术,以适应不断变化的业务需求。在遇到问题时,可以参考相关文档,或在社区如iteye等寻求帮助,不断积累经验,提升自己的专业技能。

    MyEclipse_Hibernate_快速入门_中文版.

    通过以上知识点的学习,读者可以系统地掌握在MyEclipse集成开发环境中使用Hibernate进行开发的基础知识。无论是初学者还是有一定经验的开发者,都能从中受益,快速提升自己的技能水平。希望本指南能成为大家学习...

    hibernate3.5中文参考

    2. **配置文件**:Hibernate的配置文件(通常是hibernate.cfg.xml)用于定义数据库连接、事务管理等基础设置,是启动和配置Hibernate的第一步。 3. **实体类(Entity)**:在Hibernate中,实体类代表数据库中的表,...

Global site tag (gtag.js) - Google Analytics