最近公司项目的要求,把数据库表名转化为对应的pojo类。于是我自己手写了一个工具类,进行互相转化,结果被要求修改。翻来覆去,终于找到了一个开源的工具类啦。
首先它是Google开发的。架包如下:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
我们可以进行这样的一些转化:
import org.junit.Test;
import com.google.common.base.CaseFormat;
public class GuavaTester {
@Test
public void test() {
System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"));//testData
System.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"));//testData
System.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"));//TestData
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testdata"));//testdata
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData"));//test_data
System.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData"));//test-data
String orderColumn = "orderColumn";
//输入是LOWER_CAMEL,输出是LOWER_UNDERSCORE
orderColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, orderColumn);
System.out.println(orderColumn);//order_column
orderColumn = "orderColumn";
//输入是LOWER_CAMEL,输出是UPPER_CAMEL
orderColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL,orderColumn);
System.out.println(orderColumn);//OrderColumn
orderColumn = "order_column";
//输入是LOWER_UNDERSCORE,输出是LOWER_CAMEL
orderColumn = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL,orderColumn);
System.out.println(orderColumn);//orderColumn
}
}
如此就解决了我们手写的问题啦。