java代码规范不允许使用魔法值,那么对于mysql查询中的字段名怎么处理
java编程规范中不允许使用魔法值,那么对于mysql,es查询,是对每个查询条件,查询结果都定义一个po对象吗,还是怎么处理。
如果每个查询结果都定义一个对象,会不会造成对象非常多。
如果不定义po对象,使用map获取返回结果,在取得时候又会在代码里留下魔法值。
例如:select sum(money) as sum_money,count(id) as order_num from orders
例如上面的sql查询,我如果返回map
的话,我只能使用map.get("sum_money")
取出结果,这里sum_money
就是硬编码的魔法值了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不明白,为何使用map获取查询结果就会出现魔法值?你的意思是,数据库有某些字段的值是0表示什么,1表示什么之类的吗?这种字段可以认为其值为枚举类型。
你可以在java中定义各种枚举类型,然后用枚举类型和map中的数据进行比较,就可以避免魔法值。
没明白你的意思,是说没用 ORM 的情况下吗?
数据库查询通常都是要对应到pojo的,比如一表一类,一模型一类
除非有其他更符合场景的方式
是的,一般ORM框架都会映射成实体类。
所以会造成实体类过多的情况。
用Map的话非常不友好,因为你不知道map里面有什么。