当前位置:首页>开发>正文

hibernate的load能否直接查询数据库,而不是缓存 Hibernate有哪几种查询数据的方式

2023-07-04 08:53:11 互联网 未知 开发

 hibernate的load能否直接查询数据库,而不是缓存 Hibernate有哪几种查询数据的方式

hibernate的load能否直接查询数据库,而不是缓存?

程序的操作时这样的:
1.先从数据库load一个id为固定值的记录;
2.修改这个记录
3.update到数据库
4.从数据库里再load相同id的记录,来判断是否已经更新到数据库。
上面会出现:第4步判断已经更新到数据库,当数据库繁忙的时候,实际并没有实际update到数据库,而再次load的时候是获取到缓存中的记录,导致判断已经更新到数据库中,而实际在后来查询数据库发现这笔记录并没有更新

Hibernate有哪几种查询数据的方式

3种
1)session对象的load和get方法,只能按主键查询

2)hql:语法与sql类似,但查询的是对象,支持所有的sql查询方式,可以直接返回对象集合,可以完成修改删除

3)Criteria:只能进行查询,可以不用写查询语句,通过java代码完成

如何用hibernate直接进行SQL语句查询

如何用hibernate直接进行SQL语句查询
public int getLogin(String username,String password)
{ String sql="select * from user_table where username=? and password=?"
SQLQuery query=getSession().createSQLQuery(sql).addEntity(UserTable.class)
query.setString(0,username)
query.setString(1,password)
return Integer.parseInt(query.uniqueResult().toString())

}
public static void main(String[] args) {
new UserTableDAO().getLogin("zhang","yuan")
}

最新文章