package com.jiesuan.common.hibernate3;
import java.util.Iterator;
import org.hibernate.cfg.Configuration;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import com.jiesuan.core.entity.User;
/**
*
* @ClassName: HibernateConfigurationHelper
* @Description: TODO(通过类字段拿到表字段)
* @author Administrator
* @date 2011-12-8 下午12:00:24
*
*/
public class HibernateConfigurationHelper {
private static Configuration hibernateConf;
@SuppressWarnings("unused")
private static Configuration getHibernateConf() {
if (hibernateConf == null) {
return new Configuration();
}
return hibernateConf;
}
@SuppressWarnings("unchecked")
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 表名
*/
@SuppressWarnings("unchecked")
public static String getTableName(Class clazz) {
return getPersistentClass(clazz).getTable().getName();
}
/**
* 功能描述:获取实体对应表的主键字段名称
*
* @param clazz
* 实体类
* @return 主键字段名称
*/
@SuppressWarnings("unchecked")
public static String getPkColumnName(Class clazz) {
return getPersistentClass(clazz).getTable().getPrimaryKey()
.getColumn(0).getName();
}
/**
* 功能描述:通过实体类和属性,获取实体类属性对应的表字段名称
*
* @param clazz
* 实体类
* @param propertyName
* 属性名称
* @return 字段名称
*/
@SuppressWarnings("unchecked")
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 args
*/
public static void main(String[] args) {
// System.out.println(getTableName(IntelligenceNetVPNAndSCP.class));
System.out.println(getColumnName(User.class,
"id"));
}
}
分享到:
相关推荐
Hibernate_query查询数据表中的一个字段.
Hibernate更新某些字段
关于hibernate自动增长字段的说明和介绍
Hibernate读取blob字段
Hibernate中对表某个字段排序,直接在配置里面实现排序功能。
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
hibernate实体映射文件字段设置默认值
javabean中有100个属性字段,想要在前端页面获取这100个字段和字段对应的中文名称,如用户名称(username),密码(password),可以动态的获取到中文名称和属性字段,并返回前端页面,本例只实现动态解析功能
有关jdbc+hibernate存取blob字段的知识
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或引用方式都行...
是我自己验证过的 用的是oracle10数据库 文件里面有具体的配置。
介绍了利用Hibernate将一个长字符串转换为流存储至Clob字段中,然后再从Clob字段中读出来,转换为字符串输出的方式
NULL 博文链接:https://jadeluo.iteye.com/blog/1188608
hibernate使用中与各种数据库字段类型对应类型训练,最主要的是看工程里的各种类型以及图片字段类型和存放方式!
涉及到动态生成表结构,动态生成模型实体类动态查询表字段等等,经过调研发现hibernate在这方面是很方便的,调用内置API就能完成系列操作,下面贴出核心代码: /** * @author cjbi */ public class DynamicDdlTest...
Hibernate 实体类 注解及功能说明。
hibernate对Blob类型字段进行数据添加.txt
这里面包含了大部分hibernate大部分常用的工具类和判断是否为空的工具类还有是否分页和hiberntae的hql通用分页
博文链接:https://yefeishan.iteye.com/blog/237456
搭建Hibernate需要的东西都在这里,包括jar包,持久化类的配置,核心文件的配置,dtd文件,以及一些hibernate的资料