hibernate中获取数据库中总条数

我这样写有什么不对吗?publicintgetTotalCount(){intcount=0;Sessionsession=sessionFactory.openSess... 我这样写有什么不对吗?
public int getTotalCount(){
int count=0;
Session session = sessionFactory.openSession();
Transaction tc = session.beginTransaction();
try {
Statement st = session.connection().createStatement();
String sql="select count(*) from student";
rs=st.executeQuery(sql);
if(rs.next()){
count=rs.getInt(1);
};
} catch (Exception e) {

}
tc.commit();
return count;
}
展开
 我来答
箫声客032
2012-03-13 · 超过21用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:60万
展开全部
有几个问题:
1、你if(rs.next()){count = rs.getInt(1)}; 这里打个分号 编译会出错。
2、看你的hibernate是什么版本的?好像3.2之后的版本是用long型来接收count返回值的,用int 可能会报错。
3、你的session打开之后没有关闭。
更多追问追答
追问
session打开的时候有问题,在打开session之后打印不出东西,以后就没再执行,之前都是这样打开的
追答
你这样打开需要你自己手动关闭的。如果你不关闭 ,你的服务器运行一段时间将获取不到数据库连接。你看看是不是你的数据库连接用完了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunhao920117
2012-03-13
知道答主
回答量:3
采纳率:0%
帮助的人:3.2万
展开全部
select * from student 即可,还有hibernate是封装jdbc的。用session.getConnection()是不可取的,可以用 List list = session.createSqlQuery("... ").addEntity(xxx.class).list();得到
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵武义
2012-03-14
知道答主
回答量:4
采纳率:0%
帮助的人:6217
展开全部
session没有关闭,为什么不用Query接口执行本地SQL查询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dfttezn
2012-03-13 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:120万
展开全部
你的tc没有commit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bihaixingyun
2012-03-13 · TA获得超过251个赞
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:91.8万
展开全部
if改成while试试
追问
换了不好使,是打开session那错了,但是不知道是怎么错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式