通常在用JAVA开发软件的过程中,我们常常会遇到需要把一些系统的配置参数保存到数据库中以防止丢失,传统的方法是将每个配置参数作为对象来建立数据库模型,相当于把模型中的对象绑定到数据表的每个字段上,但这样做的话灵活度太低,当需要添加配置参数时先得往数据表添加字段,再修改数据库模型和相关的映射文件。能否让操作简单一点呢?这种情况下JAVA的反射机制就派上大用场了,其实当我们实例化一个JAVA对象时,我们便可以知道它内部公开的对象名称,类型,值等信息了,而有了这些信息不就可以构造出“字段名-值”这样的映射关系了嘛。接着我们只需要将所有的“字段名-值”拼接成一个“字段名-值|字段名-值|字段名-值”这种格式的配置字符串就可以在一个数据表字段里存放任意多的配置参数了。而读取时只需先根据配置字符串中的字段名找到JAVA模型中的对象,再根据JAVA对象的类型做相应的格式转换就可以还原对象保存时的状态了。嗯,整个过程和将JAVA对象转换成JSON再从JSON转换回JAVA对象是差不多的,只不过生成的格式比JSON更适合程序员阅读罢了。
下面提供主要实现源码:
/**
* 保存自定义对象到数据库中
*
* @param <T>
* @param entity
*/
public static <T extends BaseConfig> void saveConfig(T entity) {
String configString = "";
for (Method method : entity.getClass().getMethods()) {
String methodName = method.getName();
O