标签:style http io ar color os sp java strong
/** 
 * 通过Hibernate配置获取数据库表的具体信息 
 * @author 晚风工作室 www.soservers.com 
 * 
 */
标签: Hibernate
| 
 
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;    }     } | 
标签:style http io ar color os sp java strong
原文地址:http://blog.csdn.net/u014311042/article/details/41850853