首页 > 代码库 > 通过Hibernate配置获取数据库表的具体信息
通过Hibernate配置获取数据库表的具体信息
/**
* 通过Hibernate配置获取数据库表的具体信息
* @author 晚风工作室 www.soservers.com
*
*/
标签:Hibernate
[1].[代码] [Java]代码 跳至 [1]
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | 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配置获取数据库表的具体信息 * @author 晚风工作室 www.soservers.com * */ 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配置获取数据库表的具体信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。