- 连接db
- 连接池
- db方言
- 自动生成数据表
1,连接db
hibernate连接db来支持我们的应用,我们可以通过不同的方法来连接到db,主要方法如下:
连接方式 | 简介 |
独立内置的连接池 | 不建议使用到生产环境 |
javax.sql.Datasource | tomcat等web服务器上配置的连接池 |
第三方连接池 | c3p0,proxool,用的最多 |
应用提供的连接 | 不推荐使用,除非历史遗留问题 |
原理:
通过接口org.hibernate.service.jdbc.connections.spi.ConnectionProvider来获得连接,如果应用需要自己提供到hibernate的连接,实现这个接口,并通过属性
hibernate.connection.provider_class来指定自定义的连接池;
配置连接主要有三种方式:
配置方式 | 简介 |
属性文件 | |
xml文件 | |
程序配置 |
三种配置方式都可以,最常用的是使用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连接池的配置:
如果加入了上面的配置,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;
通过属性hibernate.dialect来指定应用连接的db的方言(种类),属性值为上表中的类名;
设想下如果连接池安装好了,hibernate将自动决定使用的方言
基于java.sql.DatabaseMetaData(从
java.sql.Connection
中得到),这是通过已经安装好的方言解决器来实现解析的
org.hibernate.service.jdbc.dialect.spi.DialectResolve,如果你指定了方言,会优先选择指定的方言解析器。
4,自动生成数据表
通过SchemaExport工具可以生成数据表,它是hibernate内置的工具,可以通过映射文件生成ddl,生成的概要文件包括完整的参考条件,主键和外键,实体和表的集合映射,它也可以创建表格和通过指定的生成器生成序列;在使用之前,必须先指定方言和映射文件;
制作映射配置文件:
通过提供的一些元素和属性来制作映射配置文件,稍后提供一个实例来介绍简单的配置文件的编写;
生成数据表:
Configuration cfg = ....; new SchemaExport(cfg).create(false, true);
通过以上代码,可以加载默认的配置文件,生成对应的数据表;
相关推荐
- 数据库设计与表创建是学习Hibernate与Struts实例的基础,需要掌握SQL语言和数据库基本操作。 - 在Java Web工程中配置数据源,了解不同数据库的配置方法和差异。 - Hibernate配置文件的编写,包括SessionFactory的...
- 使用`SessionFactory`作为连接数据库的核心对象,通常会在`HibernateUtil`类中通过配置文件`hibernate.cfg.xml`来初始化`SessionFactory`。 - 在Hibernate 3中,可以通过`SessionFactory.getCurrentSession()`...
对于更复杂的应用,如批量数据处理、事务管理、连接池等,可以使用高级框架,如Hibernate、MyBatis等,它们提供了更高层次的抽象,简化了数据库操作。然而,理解基本的JDBC连接原理仍然是至关重要的。 总之,Java...
通过本文的学习,初学者可以快速掌握Hibernate的基本使用方法,为进一步深入学习Hibernate打下坚实的基础。在实际开发中,Hibernate作为一种流行的ORM框架,能够极大地简化数据库操作,提高开发效率。
### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 ...通过上述知识点的学习,初学者可以更好地理解Hibernate的核心概念和技术优势,并逐步掌握其基本用法,为进一步深入学习打下坚实的基础。
本篇文章将详细介绍如何使用MyEclipse Enterprise Workbench进行Hibernate开发的基础特征、概念和技术。通过构建一个简单的Java Hibernate应用来逐步展示整个开发过程。 #### 二、需求 为了能够顺利地进行此教程的...
7. **配置 Hibernate 配置文件**:编辑 `hibernate.cfg.xml` 文件,指定数据库连接信息及其他的全局配置。 8. **编写业务逻辑**:实现增删改查等基本操作。 9. **测试验证**:运行测试用例确保功能正确。 #### 示例...
- 使用命令行工具:`java -jar hibernate-tools-X.Y.Z.jar hbm2ddl -db hsqldb -dialect org.hibernate.dialect.HSQLDialect -input hibernate-mapping.hbm.xml` - 通过编程方式调用。 #### 四、事务和并发控制 ...
“hibernate”是一个流行的Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库,但本案例主要关注的是基础的JDBC操作;“java”明确了编程语言;“jdbc”是Java Database Connectivity,即Java...
如corejava(核心Java)、db_xml(数据库与XML)、jdbc(Java数据库连接)、servlet(服务器端小程序)、jsp(Java服务器页面)、ajax(异步JavaScript和XML)、jquery(一个流行的JavaScript库)以及ssh(Spring、...
本篇文章将基于给定文件中的信息进行深入解析,重点在于介绍 Hibernate 的基础知识及其在 Java 开发领域的重要作用。文件提供的信息虽然较为简略,但已经涵盖了 Hibernate 的概述、演示大纲、关于演讲者 Steve ...
Struts和Hibernate是Java开发中两个非常重要的框架,它们分别专注于Web层和持久化层的管理。本项目是一个使用Struts作为...同时,这个例子也是学习和实践Java Web开发的绝佳起点,能够帮助你构建起Web应用的基础架构。
1. **进入Hibernate数据库**:在DB Browser配置界面中找到并进入`HibernateWizard`数据库。 2. **选择表进行反向工程**:右键点击表`C4_Notebook`,选择“Hibernate Reverse Engineering”。 3. **指定Java包名**:...
1. Hibernate的基础知识 Hibernate的核心功能在于将Java对象与数据库表之间的映射关系自动化,使得数据操作变得简单。在本教程中,首先会介绍如何创建一个基于命令行的简单应用程序,使用HSQL DB作为驻留内存数据库...
通过这个项目,学习者不仅可以掌握Spring、Hibernate和JSP的基本使用,还能了解到如何将它们结合到一起,形成一个完整的Web应用。同时,此项目也为添加其他框架如Struts提供了基础,进一步扩展系统的功能和架构。
在本篇中,我们将深入探讨如何使用SSH...在实际开发过程中,还需不断学习和掌握新技术,以适应不断变化的业务需求。在遇到问题时,可以参考相关文档,或在社区如iteye等寻求帮助,不断积累经验,提升自己的专业技能。
2. **配置文件**:Hibernate的配置文件(通常是hibernate.cfg.xml)用于定义数据库连接、事务管理等基础设置,是启动和配置Hibernate的第一步。 3. **实体类(Entity)**:在Hibernate中,实体类代表数据库中的表,...