我在JSF项目中需要有关CRUD操作的一些设计原则的建议。
一个非常简单的例子:
我有一个基本屏幕,其中包含一个提交的表单。在我的bean中,我在我的方法中声明了一个数据库连接,并在我的脚本中填充了一个字符串对象。我修改字符串以获取表单中提交的数据。这就是我被教导的方式,但我怀疑它不是基于坚实的原则。
所以我决定开始使用预备语句。看起来好一点,但在我看来仍然不完美。
我的问题是:不是为每个CRUD方法编写一个新脚本,而是创建存储过程更好,在我看来,它看起来更简洁,可能具有更好的可读性。
还是有完全不同的做事方式?我唯一担心的是一个非常脆弱的OLTP数据库。
答案 0 :(得分:2)
您的JSF应始终重定向到调用服务方法的servlet,您可以在其中编写所有业务逻辑并调用数据访问对象来执行所需的SQL查询。 U永远不应该使用您的bean进行数据库连接...您应该使用DataSource进行数据库连接。是的,一个简单的preparedStatement就足够了。你应该只转换你的servlet中的所有字符串,然后在你的bean的帮助下将它传递给下一层,你的所有表单字段都有你的setter和getter。你的DAo包含所有的CRUD操作。
答案 1 :(得分:2)
我不喜欢使用存储过程的想法,因为它们很难移植,通常也难以调试。
我已经用这样的事情工作多年了
如今,使用轻量级JavaEE堆栈(如apache TomEE)比使用预准备语句更容易。