java代码规范不允许使用魔法值,那么对于mysql查询中的字段名怎么处理

发布于 2022-09-12 03:06:42 字数 362 浏览 18 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

若沐 2022-09-19 03:06:42

不明白,为何使用map获取查询结果就会出现魔法值?你的意思是,数据库有某些字段的值是0表示什么,1表示什么之类的吗?这种字段可以认为其值为枚举类型。

你可以在java中定义各种枚举类型,然后用枚举类型和map中的数据进行比较,就可以避免魔法值。

烟柳画桥 2022-09-19 03:06:42

没明白你的意思,是说没用 ORM 的情况下吗?

女尤 2022-09-19 03:06:42
    System.out.println("Hello"); // 这是魔法值
    String msg = "Hello;
    System.out.println(msg); // 这不是

数据库查询通常都是要对应到pojo的,比如一表一类,一模型一类
除非有其他更符合场景的方式

無處可尋 2022-09-19 03:06:42

是的,一般ORM框架都会映射成实体类。

所以会造成实体类过多的情况。

用Map的话非常不友好,因为你不知道map里面有什么。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文