DLOG4J 项目的表名命名策略
来源:互联网 发布:通达信软件公式函数 编辑:程序博客网 时间:2024/04/30 15:43
这个 NamingStrategy 扩展类是 DLOG4J 项目用来自动配置 Hibernate 的 Bean 与表名之间映射关系。
例如 Bean 名为 User,那么对应的表名是 dlog_user ,另外也包含对一些字段名进行映射。
标签:Hibernate NamingStrategy DLOG4J
[1].[代码] DlogNamingStrategy.java 跳至 [1] [2]
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
/**
* DlogNamingStrategy.java of DLOG4J_E40
* 作者: Winter Lau
* 时间: 2008-1-4
* 项目主页: <a href="http://www.dlog4j.com/">http://www.dlog4j.com</a>
*/
package
com.dlog4j.dbaccess;
import
java.util.HashMap;
import
org.apache.commons.lang.StringUtils;
import
org.hibernate.cfg.ImprovedNamingStrategy;
/**
* DLOG4J项目的表名命名策略
*/
class
DlogNamingStrategy
extends
ImprovedNamingStrategy {
private
final
static
String PREFIX =
"dlog_"
;
private
final
static
String PACKAGE =
"com.dlog4j.beans."
;
private
final
static
String POSTFIX =
"Bean"
;
@Override
public
String classToTableName(String className) {
if
(className.startsWith(PACKAGE))
className = className.substring(PACKAGE.length());
return
PREFIX +
super
.classToTableName(StringUtils.substringBeforeLast(className, POSTFIX));
}
@Override
public
String propertyToColumnName(String propertyName) {
int
idx = propertyName.lastIndexOf(
'.'
);
if
(idx >=
0
)
propertyName = propertyName.substring(idx+
1
);
String cn = properties.get(propertyName);
if
(cn !=
null
)
return
cn;
return
super
.propertyToColumnName(propertyName);
}
/**
* 默认的字段名映射方式
*/
protected
final
static
HashMap<String, String> properties =
new
HashMap<String, String>(){{
put(
"user"
,
"username"
);
put(
"site"
,
"site_name"
);
put(
"parent"
,
"parent_id"
);
}};
}
[2].[代码] 使用方法 跳至 [1] [2]
1
cfg =
new
Configuration().setNamingStrategy(
new
DlogNamingStrategy()).configure(cfg_path);
0 0
- DLOG4J 项目的表名命名策略
- Hibernate命名策略自动改变表名或字段名的问题
- 标题: DLOG4J在使用MySQL的注意事项
- Hibernate之注解表的命名策略
- hibernate 表 命名策略
- hibernate 表命名策略
- 函数名的命名小结
- 变量名的命名规则
- 规范包名的命名
- 变量名的命名规则
- 类名的命名规则:
- 变量名的命名方法
- Oracle 大小写组合命名的表名、trigger名、存储过程名、函数名等删除方法
- ORACLE表名命名规则
- Android项目包名命名规范及常见项目架构
- oracle表名、字段名等对象的命名长度限制
- Javaweb或javaEE完整项目名及包名、资源名命名规则
- Javaweb或javaEE完整项目名及包名、资源名命名规则
- Android dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent Detailed
- Transformer入门教程(五)由Transformer发布的数据包想到的
- usb vendor id 查询网址
- flash中变量的声明,注释以及输出到output
- mybatis log4j 打印SQL log4j.properties配置
- DLOG4J 项目的表名命名策略
- GMM:高斯混合模型讲义(台湾)
- 递归-汉诺塔
- 算法与数据结构面试题(3)-求子数组的最大和
- C++输出缓冲区刷新
- Android SDK Manager国内下载缓慢的问题
- mactex+sublime text3+skim环境搭建
- win8 PL2303驱动的问题
- IOS基础笔记(一)