关于数据库连接关闭资源 的 条件的问题 hibernate

吴风斌 2016-03-19 05:29:44
Java初学者
不理解数据库的关闭条件
if(s != null)


public User findUserById(int id) {
org.hibernate.Session s = null;
try {
s= HibernateUtil.getSession();
User user = (User) s.get(User.class,id);
return user;
}finally{
if(s!=null)
s.close();
}

}
...全文
135 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2016-03-22
  • 打赏
  • 举报
回复
try 部分 s= HibernateUtil.getSession(); User user = (User) s.get(User.class,id); 这两行都可以出现异常,如果第一行就出错,s 肯定不会打,即为 null ,如果第二行出错,s 不为 null ; 你要在 finally 部分将 s 关闭,当然了如果没有打开 (即 为 null) 就不会关闭了。
LongRui888 2016-03-21
  • 打赏
  • 举报
回复
也就是s不等于null,说明连接打开着,那么就关闭。
客服看到给我删掉,我只是想收藏这篇文章,这是复制别人的,怕侵权。第一次用这东西不懂。 jdbc,mybatis,hibernate各自优缺点及区别 先比较下jdbc编程和hibernate编程各自的优缺点。 JDBC: 我们平时使用jdbc进行编程,大致需要下面几个步骤: 1,使用jdbc编程需要连接数据库,注册驱动和数据库信息 2,操作Connection,打开Statement对象 3,通过Statement对象执行SQL,返回结果到ResultSet对象 4,使用ResultSet读取数据,然后通过代码转化为具体的POJO对象 5,关闭数据库相关的资源 jdbc的缺点: 一:工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。 二:我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源 由于JDBC存在的缺陷,在实际工作中我们很少直接使用jdbc进行编程,用的更多的是ORM对象关系模型来操作数据库,Hibernate就是一个ORM模型 HibernateHibernate是建立在若干POJO通过xml映射文件(或注解)提供的规则映射到数据库表上的。我们可以通过POJO直接操作数据库的数据,他提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要写SQL,只要使用HQL语言就可以了。 使用Hibernate进行编程有以下好处:

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧