hibernate的get()方法的使用

hibernate的get()方法的使用,第1张

首先你必须已经正确实现了持久化类User(假定名)和映射文件。。。

get方法是session类的静态方法,有三个重载版本,最常用的还是

public Object get(Class clazz,Serializable id),get方法并不是用来查询的,它一般被用来加载某个持久化对象。如果进行功能强大的查询,还是用HQL吧

get的使用很简单,以楼主的情况为例。假设你的User表中有一条记录,主键值为“username”那么用下面语句即可获得这条记录对应的持久化对象:

User user=new User()

user=(User)session.get(User.class,"username")

唯一要注意的是参数id指的User类的持久化标识符,在映射文件中一般是和数据库表主键相对应的,所以实际情况下也就是字段的主键值。

楼上的说的我没听懂哦,这与sql语句有什么关联?况且我也不用考虑缓存上限和替换策略不知是我没说清楚还是怎样,我打个比方:比如我有一个dict{k,v}表,里面有几千条记录,因要频繁做依据k字段查v字段的 *** 作所以考虑缓存方案一相当于在tomcat启动时执行sql='select * from dict',然后把全部记录转化成一个hashmap,从此再也不查表。优点:一共仅需查库一次;缺点:即使从未使用过的记录,也占用了内存。方案二相当于我查找k=123的值时,先在hashmap中找有没有,如果有则直接返回,如果没有则执行sql='select * from dict where k=123',将结果放入缓存然后返回。优点:仅缓存用过的记录;缺点:每次仅取一条记录,查库次数太多。 查看原帖>>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6828202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存