Hibernate中查询表名、字段名以及字段类型等信息的工具类

package com.lmb.ui.util;import org.hibernate.cfg.Configuration;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;import java.util.Iterator;/*** 功能描述:根据实体类得到对应的表名、主键名、字段名工具类*/
public class HibernateConfigurationHelper {private static Configuration hibernateConf;private static Configuration getHibernateConf() {if (hibernateConf == null) {return new Configuration();}return hibernateConf;}private static PersistentClass getPersistentClass(Class clazz) {synchronized (HibernateConfigurationHelper.class) {PersistentClass pc = getHibernateConf().getClassMapping(clazz.getName());if (pc == null) {hibernateConf = getHibernateConf().addClass(clazz);pc = getHibernateConf().getClassMapping(clazz.getName());}return pc;}}/*** 功能描述:获取实体对应的表名** @param clazz 实体类* @return 表名*/public static String getTableName(Class clazz) {return getPersistentClass(clazz).getTable().getName();}/*** 功能描述:获取实体对应表的主键字段名称** @param clazz 实体类* @return 主键字段名称*/public static String getPkColumnName(Class clazz) {return getPersistentClass(clazz).getTable().getPrimaryKey().getColumn(0).getName();}/*** 功能描述:通过实体类和属性,获取实体类属性对应的表字段名称** @param clazz        实体类* @param propertyName 属性名称* @return 字段名称*/public static String getColumnName(Class clazz, String propertyName) {PersistentClass persistentClass = getPersistentClass(clazz);Property property = persistentClass.getProperty(propertyName);Iterator it = property.getColumnIterator();if (it.hasNext()) {Column column = (Column) it.next();return column.getName();}return null;}/*** 功能描述:通过实体类和属性,获取实体类属性对应的表字段类型** @param clazz        实体类* @param propertyName 属性名称* @return 字段名称*/public static String getColumnType(Class clazz, String propertyName) {PersistentClass persistentClass = getPersistentClass(clazz);Property property = persistentClass.getProperty(propertyName);String type = property.getType().getName();if (type.equals("timestamp")) {return "java.sql." + type.substring(0, 1).toUpperCase() + type.substring(1);} else {return "java.lang." + type.substring(0, 1).toUpperCase() + type.substring(1);}}/*** 获得实体类的主键属性名称,如果没有返回null** @param clazz 实体类的class对象* @return 实体类主键属性名称*/public static String getPrimaryKeyName(Class clazz) {PersistentClass persistentClass = getPersistentClass(clazz);Property property = persistentClass.getIdentifierProperty();if (property != null) {return property.getName();}return null;}
}

【Hibernate】Hibernate中查询表名、字段名以及字段类型等信息相关推荐

  1. 如何获取mysql数据库中字段的注释和类型长度

    因为某种需求,想要获取到mysql中所有字段的注释和类型等信息,可通过以下sql查询. 查询sql SELECT COLUMN_NAME as '列名',COLUMN_COMMENT as '字段注释 ...

  2. oracle查询表的字段类型有哪些,oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)...

    通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助: 1.查询出所有的用户表 select ...

  3. Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名...

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

  4. oracle 查询表字段6,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...

    --创建用户 create user "用户名" identitied by "密码": --给自己修改密码 查询所有表名: select t.table_na ...

  5. mysql中SQL语句查询表字段名、注释、字段类型

    查询dababase当前库下所有表名及表注释 select column_name,column_comment,data_type from information_schema.columns w ...

  6. oracle查询所有表的中文名,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

  7. MYSQL在众多表中查询表名和字段名

    在Mysql 众多表中查找一个表名或者字段名的 SQL 语句: SELECT table_name, column_name from information_schema.columns WHERE ...

  8. Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

  9. mysql查询库中所有的表名,mysql查询指定表中的所有字段名及其相关信息

    SHOW TABLES FROM jzee; 可以在hibernate中作为sql语句查询出结果. 从jzee库中查出所有表名. 查询结果: select COLUMN_NAME,COLUMN_COM ...

最新文章

  1. python+opencv Canny边缘检测
  2. viewer.js插件的应用
  3. Lasso回归的坐标下降法推导
  4. flash 遮罩层全解
  5. 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
  6. GB2312,GBK,UTF-8的关系
  7. linux --开机自动挂载硬盘【转】
  8. mysql php pdo例_PHP的PDO操作实例
  9. Python操作excel(.xlsx)封装类MyPyExcel V2.0
  10. WinForm中配置数据库连接字符串
  11. python函数式编程 pdf-Python函数式编程指南(二):从函数开始
  12. kafka 小案例【二】 --kafka 设置多个消费着集群
  13. 【C++】运行MSDEV.EXE错误0xc0000142
  14. 计算机系统时间无法更改,Win7电脑无法修改系统时间如何解决?
  15. 三年磨一剑:蚂蚁金服的研发效能洞察实践
  16. 【成为架构师课程系列】架构师的核心能力地图
  17. 阿里云人工智能pai云计算平台使用方法
  18. 烽火算法针对的是什么,烽火算法对网站优化有什么好处
  19. c语言综合设计作业医院管理系统,C语言之医院管理系统
  20. 【快直播】libLebConnectionSDK

热门文章

  1. HADOOP2.5.0_64安装日志
  2. java传入一个字符串 将它分割成大写字符为首的字符串数组
  3. Eclipse使用Android2.3和3.0的SDK
  4. 什么是webpack?
  5. Java数据结构—基本数据类型
  6. Android魔术——手把手教你实现水晶球波浪进度条
  7. 使用TCP来进行数据通信
  8. Effective Modern C++:06lambda表达式
  9. Surf特征提取分析
  10. C++连接mysql的两种方式(ADO连接和mysql api连接)