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;
} 展开
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;
} 展开
展开全部
有几个问题:
1、你if(rs.next()){count = rs.getInt(1)}; 这里打个分号 编译会出错。
2、看你的hibernate是什么版本的?好像3.2之后的版本是用long型来接收count返回值的,用int 可能会报错。
3、你的session打开之后没有关闭。
1、你if(rs.next()){count = rs.getInt(1)}; 这里打个分号 编译会出错。
2、看你的hibernate是什么版本的?好像3.2之后的版本是用long型来接收count返回值的,用int 可能会报错。
3、你的session打开之后没有关闭。
更多追问追答
追问
session打开的时候有问题,在打开session之后打印不出东西,以后就没再执行,之前都是这样打开的
追答
你这样打开需要你自己手动关闭的。如果你不关闭 ,你的服务器运行一段时间将获取不到数据库连接。你看看是不是你的数据库连接用完了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from student 即可,还有hibernate是封装jdbc的。用session.getConnection()是不可取的,可以用 List list = session.createSqlQuery("... ").addEntity(xxx.class).list();得到
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
session没有关闭,为什么不用Query接口执行本地SQL查询。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的tc没有commit
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if改成while试试
追问
换了不好使,是打开session那错了,但是不知道是怎么错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询