【Hibernate】Hibernate中查询表名、字段名以及字段类型等信息
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中查询表名、字段名以及字段类型等信息相关推荐
- 如何获取mysql数据库中字段的注释和类型长度
因为某种需求,想要获取到mysql中所有字段的注释和类型等信息,可通过以下sql查询. 查询sql SELECT COLUMN_NAME as '列名',COLUMN_COMMENT as '字段注释 ...
- oracle查询表的字段类型有哪些,oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)...
通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助: 1.查询出所有的用户表 select ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名...
查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...
- oracle 查询表字段6,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...
--创建用户 create user "用户名" identitied by "密码": --给自己修改密码 查询所有表名: select t.table_na ...
- mysql中SQL语句查询表字段名、注释、字段类型
查询dababase当前库下所有表名及表注释 select column_name,column_comment,data_type from information_schema.columns w ...
- oracle查询所有表的中文名,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...
查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...
- MYSQL在众多表中查询表名和字段名
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句: SELECT table_name, column_name from information_schema.columns WHERE ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名
查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...
- mysql查询库中所有的表名,mysql查询指定表中的所有字段名及其相关信息
SHOW TABLES FROM jzee; 可以在hibernate中作为sql语句查询出结果. 从jzee库中查出所有表名. 查询结果: select COLUMN_NAME,COLUMN_COM ...
最新文章
- python+opencv Canny边缘检测
- viewer.js插件的应用
- Lasso回归的坐标下降法推导
- flash 遮罩层全解
- 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
- GB2312,GBK,UTF-8的关系
- linux --开机自动挂载硬盘【转】
- mysql php pdo例_PHP的PDO操作实例
- Python操作excel(.xlsx)封装类MyPyExcel V2.0
- WinForm中配置数据库连接字符串
- python函数式编程 pdf-Python函数式编程指南(二):从函数开始
- kafka 小案例【二】 --kafka 设置多个消费着集群
- 【C++】运行MSDEV.EXE错误0xc0000142
- 计算机系统时间无法更改,Win7电脑无法修改系统时间如何解决?
- 三年磨一剑:蚂蚁金服的研发效能洞察实践
- 【成为架构师课程系列】架构师的核心能力地图
- 阿里云人工智能pai云计算平台使用方法
- 烽火算法针对的是什么,烽火算法对网站优化有什么好处
- c语言综合设计作业医院管理系统,C语言之医院管理系统
- 【快直播】libLebConnectionSDK