日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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中查询表名、字段名以及字段类型等信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。