`

Hibernate判断数据库表是否存在

阅读更多
@SuppressWarnings("deprecation")
	public String isNotExistsTable(TableStruct table) throws SQLException{
    	Connection conn = getHibernateTemplate().getSessionFactory().getCurrentSession().connection();
    	DatabaseMetaData metaData = conn.getMetaData();    	
    	ResultSet rs = metaData.getTables(null, "sa", "Article", new String[]{"TABLE"});
    	if(rs.next()){
    		logger.info("表存在...");
    		return "exists";
    	}
    	else{
    		logger.info("表不存在...");
    		return "notExists";
    	}   	 
    }

 

注意,这里的参数很重要,如何写不对会导致结果不正确。

如果schema参数为null的话,那么它会查询整个数据库中的表有可能会冲突的:

getTables(String catalog,String schemaPattern,String tableNamePattern,String[] types)

参数: catalog:目录名称,一般都为空.

参数:schema:数据库名,对于sqlserver2005+和oracle来说就用户名

参数:tablename:表名称

参数:type :表的类型(TABLE | VIEW)

注意:在使用过程中,参数名称必须使用大写的。

 

如果tablename为空则显示该数据库中所有表

 

 rs = metaData.getTables(null,null,null,new String[]{"TABLE"});
      while(rs.next()){
        String tableName = rs.getString("TABLE_NAME");
        System.out.println("tablename:"+tableName);     //循环处所有表名   
      }
分享到:
评论

相关推荐

    hibernate 的saveOrUpdate

    在Hibernate中,实体类(Entity Class)代表数据库中的表,实体对象(Entity Object)则是这些类的实例,它们对应着表中的行。当创建一个新实体对象并调用`saveOrUpdate`时,Hibernate会尝试将其保存到数据库中。...

    oracle判断表名是否存在

    在Oracle数据库中,判断表名是否存在是常见的数据库管理任务,这通常涉及到SQL查询或使用数据库的系统视图。以下是一些关于如何在Oracle中检查表是否存在的方法。 首先,你可以使用`ALL_TABLES`或`USER_TABLES`系统...

    Hibernate电子书(全)

    为了确保Hibernate能够正确地识别和处理Java对象,开发者需要重写`equals()`和`hashCode()`方法,以便Hibernate能够根据对象的业务逻辑判断对象是否相等。 #### 多对一与一对多实体映射 在关系数据库中,多对一和一...

    用Hibernate映射继承关系

    本主题聚焦于“用Hibernate映射继承关系”,我们将深入探讨Hibernate如何处理对象的继承层次结构,并将其映射到数据库中的表。 Hibernate支持多种继承策略,包括单一表继承(Single Table Inheritance)、联合表...

    hibernate难点重点笔记

    如果数据库中不存在记录,load()在使用数据时会抛出ObjectNotFoundException,而get()则在获取时就判断并返回null。 再者,我们要了解Hibernate的二级缓存使用技巧。在处理列表数据时,可以选择iterator()和list()...

    常用Hibernate主键生成策略

    - **缺点**:在执行新增操作时,需查询数据库判断生成的主键是否已经存在,增加了系统的复杂度和开销。 2. **Increment** - **定义**:表示新增数据操作时由Hibernate自动生成主键值。其生成的值为:先查询该主键...

    往数据库插入数据,相同的不插入

    但在实际操作过程中,为了避免重复数据的插入,我们需要实现一种机制来判断待插入的数据是否已存在于数据库中。这不仅可以提高数据的准确性,还能有效避免因数据冗余而引发的一系列问题。 #### 核心需求解读 根据...

    Ajax请求验证用户名问题

    1. 使用Hibernate的Session接口查询Oracle数据库,检查用户名是否存在。这可能涉及到一个User实体类,其ID或username字段作为查询条件。 2. 如果查询结果表明用户名已存在,Action抛出异常或者返回特定的错误代码或...

    hibernate caching

    此外,如果数据库被更新或修改,应用程序可能需要定期清空(无效化)缓存,因为它无法判断缓存中的数据是否是最新的。 #### 二、Hibernate 缓存概述 Hibernate 提供了两种不同的缓存机制用于缓存对象:一级缓存和二...

    Hibernate方法总结

    在Java持久化框架Hibernate中,HibernateTemplate是一个便捷的工具类,它封装了常见的数据库操作,使得开发者能够更方便地与数据库交互。以下是对标题和描述中提到的HibernateTemplate方法的详细总结: A. `get` 和...

    hibernate常用方法集合

    例如,`save()`方法用来持久化新对象,`saveOrUpdate()`判断对象是否已存在,如果不存在则保存,否则更新,`update()`更新已存在的对象,`delete()`则是删除对象。 6. **查询操作** Hibernate提供了两种主要的查询...

    Hibernate merge、update与saveOrUpdate方法的区别

    - 使用`merge`方法,Hibernate会先查询数据库中是否存在相同的ID,如果不存在则插入一条新记录。 - 使用`update`方法,由于数据库中没有对应的记录,所以此方法将不起作用。 - 使用`saveOrUpdate`方法,如果ID不...

    Hibernate入门

    ORM框架如Hibernate,将Java对象与数据库表之间的映射关系定义在配置文件或注解中,从而避免了直接使用SQL和JDBC进行数据操作的繁琐过程。 1.1 **持久层实现选择** - **SQL/JDBC 手工编码**:开发人员直接使用SQL...

    Hibernate Synchronizer 插件重大缺陷改正

    Hibernate Synchronizer插件通常用于同步数据库操作,例如在分布式环境中确保数据的一致性。然而,在实际应用中,用户遇到了一个严重的bug,该bug导致了程序无法正常启动,具体表现为log4j警告信息的输出和Hibernate...

    Hibernate对象状态以及各种保存方法的区别

    Hibernate 是一个流行的 Java 开发框架,用于简化数据库操作。它提供了对象关系映射(ORM)功能,使得开发者可以用面向对象的方式来处理数据库。在 Hibernate 中,对象的状态管理是至关重要的,因为它直接影响到对象...

    简单的struts2和hibernate框架注册逻辑 SimpleStruts2Hibernate.rar

    整合struts2和hibernate框架,实现简单的注册逻辑,会判断新注册用户的账户是否存在,存在不允许注册。 二、注意事项 1、开发环境为Visual Studio 2010,数据库为SqlServer2008R2,使用.net 4.5开发。 2、.数据库...

    hibernate的生命周期

    若再次打开Session并调用merge(),Hibernate会根据对象状态判断是否需要执行更新操作。 **二、生命周期方法** 1. **save()**:将对象标记为持久态,但不立即执行SQL插入操作,通常在事务提交时才执行。 2. **...

    Hibernate笔记

    - `validate`:验证映射文件中的实体与数据库表是否匹配,不匹配则抛出错误,但不执行任何更新。 2. Hibernate 事务管理: Hibernate默认关闭了JDBC的自动事务提交,因此需要开发者显式地开启和提交事务。例如,...

    Hibernate中对象的三种状态

    值得注意的是,`saveOrUpdate()`方法会根据对象是否有ID来判断是插入还是更新操作。 5. Session的作用: Session是Hibernate的核心组件,它扮演了对象和数据库之间的中介角色。Session提供了事务管理和缓存功能,...

    struts2+Hibernate3写的注册登录的页面

    2. **Hibernate3 ORM**:Hibernate3负责将Java对象与数据库表进行映射,使得开发者无需编写SQL语句即可操作数据库。在这个项目中,可能有User实体类,它代表数据库中的用户表。使用Hibernate的Session接口,我们可以...

Global site tag (gtag.js) - Google Analytics