【发布时间】:2017-02-03 07:34:21
【问题描述】:
我怀疑Hibernate 对于 Web 应用程序(JSP、Servlet、Hibernate、MySQL)是否安全,因为它会“同时”获得“不同用户”的数千次访问。
我担心的原因如下。
假设我有一个针对学校学生的 Web 应用程序。他们有自己的个人资料,并将维护自己的学生课程、分数等。现在,肯定会有超过 1 个用户始终在线,拥有自己的个人资料。这意味着如果用户 A 对他的数学分数进行了编辑,它将在用户 As 个人资料中完成。它永远不会在同时在线的所有用户A、B 和'C 的个人资料中被替换。
Servlets 是多线程的以提供上述支持。它与纯 JDBC 的预期效果一样好。 Hibernate 怎么样?
我还上传了我的HibernateUtil 供您参考。就我而言,我将其称为SessionFactoryBuilder
public class SessionFactoryBuilder
{
private static SessionFactoryBuilder instance;
private static SessionFactory sessionFactory;
private SessionFactoryBuilder()
{
buildConfig();
System.out.println("hehehehe");
}
private static void buildConfig()
{
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
sessionFactory = configuration.buildSessionFactory(builder.build());
}
public static SessionFactoryBuilder getInstance()
{
if(instance == null)
{
instance = new SessionFactoryBuilder();
}
return instance;
}
public SessionFactory getSessionFactory()
{
return sessionFactory;
}
}
【问题讨论】:
-
是的,hibernate 可以安全使用。它只是为您提供 ORM 关系......其余的一切都与 JDBC 中的完全相同
-
@Naruto:即使在我给定的示例中,多个用户将同时在线并且没有数据重叠?
-
@Drew: errr....我很困惑??
-
这是个玩笑
-
@Drew:好的,所以安全吗?
标签: java mysql multithreading hibernate servlets