/**
* 通过Hibernate配置获取数据库表的具体信息
*
*
*/
* 通过Hibernate配置获取数据库表的具体信息
*
*
*/
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.hibernate.cfg.Configuration; import org.hibernate.mapping.Column; import org.hibernate.mapping.PersistentClass; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** * 通过Hibernate配置获取数据库表的具体信息 * * */ public class HibernatePluginsUtil extends HibernateDaoSupport { // public static String getTablenameByObject(Class c){ // SingleTableEntityPersister // entityPersister=(SingleTableEntityPersister).getSessionFactory().getClassMetadata(POJO.class). // // //获得pojo对应表名: // String tableName = entityPersister.getTableName(); // //entityPersister中还包含pojo的属性、属性值、以及属性对应的数据库表字段等配置信息。 // // } private static Configuration hibernateConf = new Configuration(); /** * 获得Hibernate持久化类 * @param clazz * @return PersistentClass */ @SuppressWarnings("unchecked") private static PersistentClass getPersistentClass(Class clazz) { synchronized (HibernatePluginsUtil.class) { PersistentClass pc = hibernateConf.getClassMapping(clazz.getName()); if (pc == null) { hibernateConf = hibernateConf.addClass(clazz); pc = hibernateConf.getClassMapping(clazz.getName()); } return pc; } } /** * 获得表名 * * @param clazz 映射到数据库的po类 * @return String */ @SuppressWarnings("unchecked") public static String getTableName(Class clazz) { return getPersistentClass(clazz).getTable().getName(); } /** * 获得列名 * * @param clazz 映射到数据库的po类 * @param icol 第几列 * @return String */ @SuppressWarnings("unchecked") public static String getColumnName(Class clazz, int icol) { // return getPersistentClass( clazz // ).getTable().getPrimaryKey().getColumn( 0 ).getName(); //獲取主鍵名 return getPersistentClass(clazz).getTable().getColumn(icol).getName(); } /** * 获得所有列名 * * @param clazz 映射到数据库的po类 * @return List<String> 列名 */ @SuppressWarnings("unchecked") public static List<String> getColumnNames(Class clazz) { Iterator<Column> itr = getPersistentClass(clazz).getTable().getColumnIterator(); List<String> columns = new ArrayList<String>(); while (itr.hasNext()) { Column tmp = itr.next(); columns.add(tmp.getName()); } return columns; } }
相关推荐
在 Hibernate 配置文件中,我们可以使用 DynamicDataSource 来配置多数据库连接信息,例如: ```xml <hibernate-configuration> <property name="connection.datasource">dataSource <!-- 其他 Hibernate 配置...
首先,我们需要了解Hibernate的配置文件`hibernate.cfg.xml`,这个文件包含了数据库连接信息、数据源设置、实体类映射等关键配置。在代码中,我们创建了一个`Configuration`实例,并通过`configure("hibernate.cfg....
在反向工程过程中,Hibernate首先获取数据库的元数据,包括表名、字段名、数据类型、约束条件等。这些元数据是生成Java代码的基础,确保了Java类与数据库表结构的一致性。 4. Java持久化接口: Hibernate逆向工程...
连接池通过预先创建并维护一定数量的数据库连接,当程序需要连接数据库时,可以从池中获取一个已存在的连接,而不是每次都创建新的。使用完毕后,连接不会被关闭,而是返回到连接池中供其他线程复用。这样,连接的...
3. **配置文件(Configuration Files)**:如hibernate.cfg.xml,用于配置数据库连接信息、Hibernate会话工厂设置等。 4. **SessionFactory和Session接口**:SessionFactory是创建Session对象的工厂,Session是与...
本文介绍了如何利用反射机制来修改Hibernate配置文件中的数据库连接信息,并通过自定义`ConnectionProvider`实现了对敏感信息的加密处理。这种做法不仅增强了应用程序的安全性,还提高了配置信息的管理效率。开发者...
Hibernate的配置文件(hibernate.cfg.xml)包含了数据库连接信息,而映射文件(.hbm.xml)定义了每个实体类与数据库表的映射。在程序启动时,通过SessionFactoryBuilder创建SessionFactory实例,之后就可以进行...
- **使用DataSource**:如果使用Java的JNDI数据源,可以将多个数据库的连接信息配置在应用服务器中,然后在Hibernate配置文件中引用这些数据源。 6. **性能优化** - **连接池管理**:为了提高性能,建议为每个...
总结起来,使用Hibernate进行数据库操作主要包括配置、实体定义、映射、操作数据库、事务管理、缓存和优化等方面。通过理解并熟练掌握这些步骤,开发者可以更高效地在Java应用中实现数据库操作。
这些工具可以解析实体类,利用反射获取字段信息,然后根据配置生成对应的DDL(Data Definition Language)语句,比如`CREATE TABLE`,进而创建数据库表。在执行这些DDL语句后,数据库中就会出现与实体类匹配的表。 ...
这样,Hibernate只会从数据库中获取第11到第20条记录,而不是所有的数据。 在使用这些方法之前,我们需要创建一个HQL(Hibernate Query Language)查询,或者使用Criteria API来定义我们的查询条件。HQL是Hibernate...
本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识点。 **一、Hibernate概述** Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,...
1. 从用户的会话中获取数据库名称。 2. 如果没有指定数据库,则使用默认值。 3. 使用`ThreadLocal`将数据库名称绑定到当前线程。 4. 在请求结束时移除线程局部变量。 #### 七、数据源配置 在Spring配置文件中,我们...
在实际开发中,我们首先需要在hibernate.cfg.xml中配置数据库连接信息,然后创建实体类,并通过注解@Entity、@Table等定义与数据库表的映射关系。接着,编写DAO层,利用SessionFactory和Session进行数据库操作,例如...
Hibernate是一个开源的ORM框架,它可以将Java类与数据库表进行映射,通过对象的方式来操作数据库,从而避免了繁琐的SQL语句编写。Hibernate提供了Session接口,它是与数据库交互的主要接口,支持CRUD(创建、读取、...
2. Hibernate配置:在项目中,首先需要配置Hibernate的`hibernate.cfg.xml`文件,包括数据库连接信息(如URL、用户名、密码)、JDBC驱动、方言等。 3. 实体类:实体类代表数据库中的表,每个属性对应表的一列。例如...
通过上述步骤,开发者可以在Java应用中高效地使用Hibernate与Oracle数据库进行数据操作。实践过程中,应不断优化和调整,以适应不同场景的需求。在实际项目中,还需要关注性能监控、异常处理、安全防护等方面,确保...
在Java的持久层框架Hibernate中,数据库连接管理是至关重要的。`Proxool`是一个开源的连接池实现,它能够帮助我们...在`hibernate配置自动连接数据库.docx`文档中,可能会有更详细的配置示例和使用说明,建议参考学习。
本篇文章主要关注的是如何在Hibernate 3.0版本中,通过它提供的工具自动生成POJO(Plain Old Java Object)类,这些类可以直接映射到数据库表,实现数据的存取。 1. **什么是POJO类**: POJO类是Java中简单、无...