2007年2月2日星期五

头一回听说之iBATIS

今天和同学聊天他提到了iBATIS这个东西,我还是头一回听说。问他是什么东西他让我到网上搜一搜。

下面是从其官方网站摘录的相关介绍:

The iBATIS Data Mapper framework makes it easier to use a database with Java and .NET applications. iBATIS couples objects with stored procedures or SQL statements using a XML descriptor. Simplicity is the biggest advantage of the iBATIS Data Mapper over object relational mapping tools.

To use the iBATIS Data Mapper, you rely on your own objects, XML, and SQL. There is little to learn that you don't already know. With the iBATIS Data Mapper, you have the full power of both SQL and stored procedures at your fingertips.

Are you interested but want to know what others have said? Well, first see the various articles and books that have covered iBATIS and read some of our user feedback. Then, learn how to simple it is to use the iBATIS Data Mapper by reading our Java Tutorial or .NET Quick Start Guide!

我又在博客园的一个叫做Code,Program,Software的BLog上找到了一些中文的介绍:

提到iBatis,大家可能会与ORM技术联系起来。是的,没错,它与ORM技术有一定程度上的联系,但是更确切地讲,它并不是一种很正统的ORM解决方案。因为它不像NHibernate那样,具备全自动的数据操作,包括查询,插入,更新,删除;也没有像它那样,与数据库的约束关系有紧密的联系(对NHibernate的了解不多,如果有不妥之处,希望能留下你们的臭鸡蛋,等着下回用)。iBatis为我们提供了一种更为灵活的方便的可控的方式去实现类ORM的解决方案。我们需要自己来控制SQL语句,这样做有好处在于,我们可以更灵活地根据我们的需求,编写更加具备性能,功能优势的SQL语句,但它的缺点同样明显,我们还是需要管理和编写SQL语句。但是值得感到高兴的是,我们只需要提供这些SQL语句,和为它提供它所需的参数外,接下来的事情就无需我们参与了。这也是iBatis最核心的功能,也是它为我们所做最多的工作了。根据配置好的SQL语句和参数条件,它会动态生成一条可执行的SQL语句,然后根据具体传进来的参数值,为这些SQL参数提供不同的具体值。然后根据配置好的数据访问驱动,自动为DbCommand添加DbParameter,自动执行SQL语句,使用IDataReader返回出数据集,生成并返回一个或多个强类型数据类对象(数据集用IList集合对象表示)。我曾经在Community Server中也见过类似的返回强类型数据对象的实现,但是需要很多的代码,与直接返回DataTable相比,重复代码会更多。所有的这些在iBatis中,只需要提供一个配置文件,调用它提供的SqlMapper实例对象中的方法就可以很简单容易地实现了。当然你也许会说,那这样如果系统比较大的话,可能就需要很多的配置文件了。是的,又陷了另一个极端了。怎么办呢?没办法,鱼和熊掌不能兼得啊。这里还不得不重点强调一下,如果你是经常在存储过程中拼接SQL语句的话,那我就更加推荐你马上就开始使用iBatis吧。

如果有时间我会详细了解它的。

0 comments: