想将下面的代码用表驱动的方法实现,应该怎么创建这个“表”呢
if(key.equals("所属国家 :")) {
tblwine.setCountry(value);
}
else if(key.equals("葡萄酒类型 :")) {
tblwine.setType(value);
}
else if(key.equals("规格 :")) {
tblwine.setSize(value);
}
else if(key.equals("酒精度 :")) {
tblwine.setPercent(value);
}
else if(key.equals("葡萄品种 :")) {
tblwine.setPtype(value);
}
else if(key.equals("生产年份 :")) {
tblwine.setYear(value);
}
如果需要使用表来维护的数据,都是很少有变动,并且很重要的数据。因为查表的速度肯定不如直接执行代码来得快。如果用代码解决,你可以使用:
1.if...else
2.switch...
3.enum..枚举值来匹配
4.?: 三目运算符来解决
或者用表驱动法
#运行SQL:
NAME = #{传入参数}
这种情况如果需要用表驱动来解决的话,可能比较麻烦,而且感觉得不偿失.
如果有疑问,欢迎指正
提供一种使用表实现的思路,表定义如下:
代码如下:
当然如果key是比较固定的, 建议 findMethodByKey 方法用HashMap实现, 没有必要用数据库。
也许题主是希望能动态改变对应关系,那么使用数据库存储也未尝不可。 不过为了提高执行的效率,最好可以将数据库表的信息缓存到HashMap中, 当数据库发生变更时,再更新HashMap。