当我创建JDBC应用程序时,通常要做的是将“ sql语句”硬编码到java程序中。举个例子
ResultSet rs = st.execute("select * from Users")
但是,我听说这种方法不是好的软件工程概念。有人说所有这些sql语句都应作为“存储过程”保留在数据库中,而JDBC应该访问它们。从这两种方法中,可以将其归类为良好的软件工程概念吗?请帮忙!
最佳答案
我预测您不会对此达成共识。
存储的proc对于封装复杂的数据库逻辑和查询非常有用,同时避免将数据从数据库中移出以进行排序/过滤/查询等。
不利之处在于,您经常会发现业务逻辑爬到存储过程中,而它很可能应保留在应用程序本身中。
因此,在开发人员/ dbas等人之间经常就此逻辑应驻留在何处以及如何使用存储的过程进行拔河比赛。我建议务实。本地化SQL查询,以便在更改SQL(表名等)时不必在整个代码库中进行任何更改。在执行代码复杂但对数据库而言微不足道的事情时,请使用存储的proc来提高性能。