Java 使用本地过程或函数将数据插入数据库与最近使用的spring或entityframework等框架有什么区别吗?

Java 使用本地过程或函数将数据插入数据库与最近使用的spring或entityframework等框架有什么区别吗?,java,c#,.net,oracle,plsql,Java,C#,.net,Oracle,Plsql,我想将我的数据插入数据库。我认为有两种解决方案可以完成我的工作。 第一种方法是在数据库中创建过程或函数,并使用.Net或Java编程语言传递给它们的参数调用它们。 另一种方法是使用实体框架或其他技术将数据插入数据库。 优势和劣势是什么? 实际上,我想知道哪种解决方案具有更好的性能和完整性。这是一个非常广泛的问题,但基本上可以归结为:除非你谈论的是非常小的项目,生命周期非常有限或“纯教育目的”,否则你应该依赖于一个框架 问题是:从数据库获取数据是非常困难的 比你想象的要难,而且 基本上是一个“已

我想将我的数据插入数据库。我认为有两种解决方案可以完成我的工作。 第一种方法是在数据库中创建过程或函数,并使用.Net或Java编程语言传递给它们的参数调用它们。 另一种方法是使用实体框架或其他技术将数据插入数据库。 优势和劣势是什么?
实际上,我想知道哪种解决方案具有更好的性能和完整性。

这是一个非常广泛的问题,但基本上可以归结为:除非你谈论的是非常小的项目,生命周期非常有限或“纯教育目的”,否则你应该依赖于一个框架

问题是:从数据库获取数据是非常困难的

  • 比你想象的要难,而且
  • 基本上是一个“已解决”的问题
当你开始重新发明轮子时,你会重复成千上万人在你之前犯过的错误。在某些攻击者使用SQL注入、破坏或窃取数据之前,您可能甚至不会注意到自己犯了错误。假设您的项目吸引了用户,并且随着时间的推移而增长,那么您的需求也会增长。您将不断地向“自己的框架”添加功能,使其变得越来越复杂

使用一个“好”的框架可以避免所有(好吧,大部分)的问题

所以,即使今天春天对你来说“太大”,它也会随着时间的推移和你一起“成长”


除此之外:当性能成为一个问题时,因为应用程序的总体设计是错误的

这是一个非常广泛的问题,但基本上可以归结为:除非你谈论的是非常小的项目,生命周期非常有限或“纯粹的教育目的”,否则你应该依赖于一个框架

问题是:从数据库获取数据是非常困难的

  • 比你想象的要难,而且
  • 基本上是一个“已解决”的问题
当你开始重新发明轮子时,你会重复成千上万人在你之前犯过的错误。在某些攻击者使用SQL注入、破坏或窃取数据之前,您可能甚至不会注意到自己犯了错误。假设您的项目吸引了用户,并且随着时间的推移而增长,那么您的需求也会增长。您将不断地向“自己的框架”添加功能,使其变得越来越复杂

使用一个“好”的框架可以避免所有(好吧,大部分)的问题

所以,即使今天春天对你来说“太大”,它也会随着时间的推移和你一起“成长”


除此之外:当性能成为一个问题时,因为应用程序的总体设计是错误的

有很多不同之处。 存储过程可以使用缓存的执行计划,所以有机会获得更好的性能。是的,这种方法可能会出现一些问题(参数嗅探、SQL注入…)。但一般来说,我认为存储过程比从应用程序范围(EF、NHibernate,…)执行的代码性能更好

从ORM(例如实体框架)插入更容易,您可以从类型检查中获益,所以编译器将帮助您避免在属性名称中输入错误等


因此,对于性能不是最重要的项目,我会选择ORM,而对于其他项目,我会选择它们的组合:编写存储过程并使用ORM调用它。

有很多不同之处。 存储过程可以使用缓存的执行计划,所以有机会获得更好的性能。是的,这种方法可能会出现一些问题(参数嗅探、SQL注入…)。但一般来说,我认为存储过程比从应用程序范围(EF、NHibernate,…)执行的代码性能更好

从ORM(例如实体框架)插入更容易,您可以从类型检查中获益,所以编译器将帮助您避免在属性名称中输入错误等

所以对于性能不是最重要的项目,我会选择ORM,对于其他项目,我会选择它们的混合:编写存储过程并使用ORM调用它