之前做过一次大作业用了 ORM (Object Relational Mapper), 还有一次接活设计 sql 语句使用了 CET (Common Table Expressions) 规范编写, 从个人体验上来说, 我还是更喜欢直接写语句。
最近搜了一下两者的优缺点, 做一下辨析。
ORM
优点
- 原生防 sql 注入。
- 灵活拼接查询键值,易扩展。
- 面向对象思维, 减少代码耦合, 增加可读性。
- 跨数据库兼容。
缺点
- 复杂查询难以实现, 使用函数嵌套完全没有 sql 语句简洁, 有些库甚至没有提供完整的接口。
- 产生额外的性能开销。
直接使用 SQL 语句
优点
- 灵活性高
- 性能强
- 易使用数据库高级功能
缺点
- 安全问题。
- 与业务逻辑代码紧密耦合。