读书人

关于hibernate 、ibatis、jdbctemplat

发布时间: 2012-06-20 20:37:21 作者: rapoo

关于hibernate 、ibatis、jdbctemplate对Bbasedao的封装已经使用方式


/********************************************************/

/*************Hibernate封装BaseDao(原生态)*************/

/********************************************************/

概要说明:

Hibernate封装BaseDao主要是通过调用HibernateUtil(这个类也是封装的)来实现基本的CURD操作;在HibernateUtil中,通过Configuration实例构建SessionFactory,SessionFactory用来创建Session实例,Configuration实例根据当前的配置信息,构造SessionFactory实例并返回。一旦SessionFactory构造完毕,即被赋予特定的配置信息。Session是持久层操作的基础,相当于JDBC的Connection。通过SessionFactory实例构建。Session实例提供的saveOrUpdate、delete和createQuery方法分别实现了数据库的插入更新、删除和查询操作,简化了数据库的基本操作

代码实例:

* HibernateUtil:Hibernate工具类,Hibernate映射操作公用类 负责初始化、打开连接、获取连接、关闭连接等操作;



/********************************************************/

/*****************jdbctemplate封装BaseDao****************/

/********************************************************/

第一:概要说明:

1,Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。)

指定数据库连接参数

打开数据库连接

声明SQL语句

预编译并执行SQL语句

遍历查询结果(如果需要的话)

处理每一次遍历操作

处理抛出的任何异常

处理事务

关闭数据库连接

Spring将替我们完成所有单调乏味的JDBC底层细节处理工作

2,Spring JDBC包结构

Spring JDBC抽象框架由四个包构成:core、 dataSource、object以及support。

org.springframework.jdbc.core包由JdbcTemplate类以及相关的回调接口(callback interface)和类组成。

org.springframework.jdbc.datasource包由一些用来简化DataSource访问的工具类,以及各种DataSource接口的简单实现(主要用于单元测试以及在J2EE容器之外使用JDBC)组成。工具类提供了一些静态方法,诸如通过JNDI获取数据连接以及在必要的情况下关闭这些连接。它支持绑定线程的连接,比如被用于DataSourceTransactionManager的连接。

接下来,org.springframework.jdbc.object包由封装了查询、更新以及存储过程的类组成,这些类的对象都是线程安全并且可重复使用的。它们类似于JDO,与JDO的不同之处在于查询结果与数据库是“断开连接”的。它们是在org.springframework.jdbc.core包的基础上对JDBC更高层次的抽象。

最后,org.springframework.jdbc.support包提供了一些SQLException的转换类以及相关的工具类。

在JDBC处理过程中抛出的异常将被转换成org.springframework.dao包中定义的异常。因此使用Spring JDBC进行开发将不需要处理JDBC或者特定的RDBMS才会抛出的异常。所有的异常都是unchecked exception,这样我们就可以对传递到调用者的异常进行有选择的捕获。

3,JDBC核心类实现JDBC的基本操作和错误处理

可参考:JDBC核心类实现JDBC的基本操作和错误处理

4,注意事项:

1) jdbcTemplate有很多的ORM化回调操作将返回结果转为对象列表,但很多时候还是需要返回ResultSet,Spring有提供一个类似ResultSet的 Spring SqlRowSet对象。

2) 注意jdbcTemplate尽量只执行查询操作,莫要进行更新,否则很容易破坏Hibernate的二级缓存体系。


读书人网 >其他数据库

热点推荐