通过Hibernate配置获取数据库表的具体信息
来源:互联网 发布:衣服打版软件 编辑:程序博客网 时间:2024/05/18 04:48
/**
* 通过Hibernate配置获取数据库表的具体信息
*
*
*/
* 通过Hibernate配置获取数据库表的具体信息
*
*
*/
- 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配置获取数据库表的具体信息
- *
- *
- */
- public class HibernatePluginsUtilextends 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;
- }
- }
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配置获取数据库表的具体信息 * * */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配置获取数据库表的具体信息
- 通过Hibernate配置获取数据库表的具体信息
- 通过StackTraceElement获取方法调用者的具体信息
- 通过StackTraceElement获取方法调用者的具体信息
- JDBC中通过MetaData来获取具体的表的相关信息
- Hibernate的具体配置
- hibernate的具体配置
- Spring+Hibernate 数据库配置信息的加密
- 如何从代码中获取hibernate中配置的数据库方言信息
- Hibernate获取表配置信息包括Common注解信息
- 获取元素的具体样式信息getcss
- 通过SQL获取MSSQL的数据库相关信息
- android 通过经纬度获取具体的地理信息
- hibernate 获取表信息
- Android通过SystemProperties获取build.prop中配置的信息
- Hibernate获取配置元信息的方法合集
- Hibernate的配置信息
- 通过系统表获取SQL,Access,Oracle数据库的元数据信息
- 查看mongo数据库的慢查询
- iPKG包制作(ipkg-build)
- private(私有)方法单元测试无法覆盖?那就用反射调用来测试private(私有)方法
- #云端对话——云的那些事#《云计算:大数据时代的系统工程》作者在中关村图书大厦和你面对面
- 用shell命令分割大日志文件
- 通过Hibernate配置获取数据库表的具体信息
- jetty启动运行调试工具类
- Android开发视频教学第一季(17-34集)视频源码下载
- 一些鲜为人知的但却很有趣的Unix/Linux命令(三)
- java 发送邮件功能
- 短URL生成转换
- 统一建模语言UML
- Oracle SQL性能优化
- 从free命令看内存使用