package msw;
import org.hibernate.cfg.ImprovedNamingStrategy;
/*
* 文件名: PropertyName.java
* 包路径:
* 创建描述
* 创建人:马素文
* 创建日期:2011-7-13 上午10:49:05
* 内容描述:
* 修改描述
* 修改人:马素文
* 修改日期:2011-7-13 上午10:49:05
* 修改内容:
* 版本: V1.0
*/
/**
* 类: <code> PropertyName </code>
* 功能描述: 实现Hibernate生成表命名规则策略
* 创建人: 马素文
* 创建日期: 2011-7-13 上午10:49:05
* 开发环境: JDK6.0
*/
public class PropertyName extends ImprovedNamingStrategy
{
private String tablePrefix = "nademo_";
private String columnPrefix = "";
private boolean toUpperCase = false;
/* (non-Javadoc)
* @see org.hibernate.cfg.ImprovedNamingStrategy#propertyToColumnName(java.lang.String)
* @param propertyName
* @return
*
*/
@Override
public String propertyToColumnName(String propertyName)
{
// TODO Auto-generated method stub
//return super.propertyToColumnName(propertyName);
if (toUpperCase)
{
return (this.columnPrefix + super.propertyToColumnName(propertyName)).toUpperCase();
}
else
{
return (this.columnPrefix + super.propertyToColumnName(propertyName));
}
}
/* (non-Javadoc)
* @see org.hibernate.cfg.ImprovedNamingStrategy#classToTableName(java.lang.String)
* @param className
* @return
*
*/
@Override
public String classToTableName(String className)
{
// TODO Auto-generated method stub
//return super.classToTableName(className);
if (toUpperCase)
{System.out.println("toUpperCase");
return (this.tablePrefix + super.classToTableName(className)).toUpperCase();
}
else
{
return (this.tablePrefix + super.classToTableName(className));
}
}
}//子类重写父类中的方法即可
package msw;
import org.junit.Test;
import tpcframework.core.test.base.SpringTestCase;
/*
* 文件名: PropertyNameTest.java
* 包路径:
* 创建描述
* 创建人:马素文
* 创建日期:2011-7-13 上午10:43:06
* 内容描述:
* 修改描述
* 修改人:马素文
* 修改日期:2011-7-13 上午10:43:06
* 修改内容:
* 版本: V1.0
*/
/**
* 类: <code> PropertyNameTest </code>
* 功能描述:
* 创建人: 马素文
* 创建日期: 2011-7-13 上午10:43:06
* 开发环境: JDK6.0
*/
public class PropertyNameTest extends SpringTestCase
{
@Test
public void p_name()
{
PropertyName propertyName = new PropertyName();
String p_nam =propertyName.propertyToColumnName("loginName");
System.out.println("property_name is:"+p_nam);
}
@Test
public void c_name()
{
PropertyName propertyName = new PropertyName();
String p_nam =propertyName.classToTableName("Person");
System.out.println("column_name is:"+p_nam);
}
}
ImprovedNamingStrategy使用方法
最新推荐文章于 2020-12-29 18:14:02 发布