通过hibernatesession取表名、字段等

 1  protected String getTableNameByClass(Class<?> T){
 2         AbstractEntityPersister cm = (AbstractEntityPersister)
 3                 super.getHibernateSession().getSessionFactory().getClassMetadata(T);
 4         if(null!=cm){
 5             return cm.getTableName().toLowerCase();
 6         }
 7         return null;
 8     }
 9     protected Map<String,String> getColumnNameMap(Class<?> T){
10         AbstractEntityPersister cm = (AbstractEntityPersister)
11                 super.getHibernateSession().getSessionFactory().getClassMetadata(T);
12         Map<String,String> map = new HashMap();
13         if(null!=cm){
14             String[] propertyNames = cm.getPropertyNames();
15             for(int i = 0; i<propertyNames.length; i++){
16                 String[] columnNames = cm.getPropertyColumnNames(propertyNames[i]);
17                 if(null!=columnNames && columnNames.length>0){
18                     map.put(propertyNames[i],columnNames[0]);
19                 }
20             }
21         }
22         return map;
23     }
时间: 2024-10-18 06:39:53

通过hibernatesession取表名、字段等的相关文章

sql server 查询数据库所有的表名+字段

原文:sql server 查询数据库所有的表名+字段 SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空       a.colorder as 字段序号,       a.name as 字段名,       (case when COLUMNPROPER

数据库的表名字段名大小写问题

今天发现它真的是一个问题. 拿我最喜欢的Oracle来说吧.一般情况下,建表不管大小写,建完表名.字段名总是大写的,这样你不得不在单词之间加下划线,从而增加了字段名长度,有时就超长了.在select的结果中显示也不美观.Oracle也支持以双引号括起来的字段名,不过,你可要注意啦,用"Ok"建的字段名用"OK"."ok"和Ok都是查不到的,必须用"Ok".我只想说一句,Oracle在这点上你就搞不懂用户的需求了吧.也许Orac

关于mysql的表名/字段名/字段值是否区分大小写的问题

http://www.2cto.com/database/201202/121253.html 1.mysql默认情况下是否区分大小写,使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分. 2.mysql对于类型为varchar数据默认不区分大小写,但如果该字段以“*_bin”编码的话会使mysql对其区分大小写. 3.mysql对于字段名的策略与varchar类型数据相同.即:默认不区分大小写,

显示数据库的所有表名,字段名,库名

1.显示所有的表名: show tables from xxx 显示表的详细信息: desc xxx表名 2.显示所有的字段名,并用,号分割: select GROUP_CONCAT(column_name) from information_schema.columns where table_name= 'xxx表名'; 3.显示所有的数据库名: show databases

SQL 查找表名 字段名

转载:http://www.accessoft.com/article-show.asp?id=6135 经常碰到一些忘记表名称的情况,此时只记得个大概,此时可通过查询系统表Sysobjects找到所要的表名,如要查找包含用户的表名,可通过以下SQL语句实现, Select * From sysobjects Where name like '%user%' 如果知道列名,想查找包含有该列的表名,可加上系统表syscolumns来实现,如想查找列名中包含有user的所有表名,可通过以下SQL语句

—查询数据库中所有的表名字段名说明 详细信息

——直接放在需要查询的库中执行即可. SELECT (case when a.colorder=1 then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识, (case when (SELECT count(*) FROM sysobjects WHERE (name in (S

DM7表名/字段名等对象的命名长度限制

一 问题   业务升级过程中,涉及到数据库结构的更改,对于某些表的字段进行了重命名,在修改表的字段名的过程中,遇到了"标志符长度非法"的问题,如下图所示:  这里先说明一下,对于DM7数据库,表名.字段名等对象命名字节个数限制在了128个字节,是无法更改的!具体参见<DM7_SQL语言使用手册>中的3.6.1 基表定义语句中的说明,摘录如下: 表名的要求:<表名> 指明被创建的基表名,基表名最大长度 128 字节:如果是分区表,主表名和分区名遵循"主表

mybatis动态接收表名,字段名,字段值

由于没分清mybatis中的$和#的区别,在处理数据上折腾了许久. 案例如下: 我要通过在实体MisWorkflowCommon中取值,在mybatis对应的映射文件的SQL中获取到对应的值,从而进行update处理,修改后的部分mybatis文件如下: <update id="updateServiceStatus" parameterType="com.jiayou.cps.pojo.workflowCommon.MisWorkflowCommon">

SQL语句修改表名和字段名

今天有个临时任务,修改生产环境的数据库表名和字段名.以前要修改表名字段名都是在开发环境,直接打开 SQL Server找到对应的表或字段重命名就OK啦,可是这是线上数据库,再想直接F2修改是不可能的啦.怎么办?乖 乖写脚本呗.上网了解了一些相关资料,结合我自己操作过程中出现的一些实际问题简单作个总结,再次加深下印 象. SQL自带了一系列的系统存储过程.其中sp_rename就具有修改表名和列名的功能.对于sp_rename是这样定 义的:更改当前数据库中用户创建对象(如表.列或用户定义数据类型