`
woniu1983
  • 浏览: 167809 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【随谈】喜欢上iBatis

阅读更多
  接触Ibatis是一个偶然。

  早在今年3月份(2010.03)的时候,因为Java项目涉及到数据库(SQL Server2005)的缘故,开始调查JDBC和ORM工具.

JDBC如果仅仅使用的话,上手还是很快的。

Statement stmt = null;
ResultSet rs = null;
try {
			// 加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

			// 从.properties中获取相关的DB url, username, password信息
			final String url = PropertiesHandle.getUrl();
			final String username = PropertiesHandle.getUserName();
			final String password = PropertiesHandle.getPassWord();

			// 获取数据库连接
			final Connection conn = DriverManager.getConnection(url, username, password);
          final String sql = "SELECT * FROM TABLE";
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			rs.close();
			stmt.close();
		} catch (final Exception e) {
			logger.error("<error>Error Occurred while connecting to SQL Server:" + e.getMessage());
		} 


   但是如果复杂的查询、多次操作数据库,那么JDBC就很不方便了, 不停地Try/Catch,容易'疲劳', 另外resultset的操作也没有对象的操作来的灵活,所以开始寻找一个合适的ORM(Object Relational Mapping)工具。
-----------------------------------------------------------------------------
   最先考虑的当然是Hibernate。 虽然没有学习过Hibernate,但毫无疑问它是一个功能强大的ORM工具,不过学习周期稍微长一些,而项目时间比较紧,于是退而求其次,选择了Ibatis。说句实在话,在这之前我没整过数据库,而且对Ibatis一无所知(我都不知道有这个东西,自嘲...)。

   Ibatis吸引我的地方有3个:
   1. 学习周期短,容易上手;
   2. Java代码与SQL 语句分离, SQL 语句写在Mapper xml文件中;
   3. 有Eclipse插件可以帮助生成POJO(plain old java Object)和Mapper xml文件(可惜是针对Ibatis2.*版本的,当前的Ibatis3.*不适用,不过生成的POJO还是能用的);
  
   除此之外, Ibatis功能亦是非常实用而且强大的,完全可以实现企业级运用。

   -----------------------------------------------------------------------------
   以下是Ibatis举例:
  Mapper Xml: 定义查询语句 ‘selectUser’
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="cn.test.ibatis.UserDataMapper" >
  <resultMap id="UserDataResultMap" type="cn.test.ibatis.UserData" >
    <result column="userID" property="userID" jdbcType="NVARCHAR" />
    <result column="userName" property="userName" jdbcType="NVARCHAR" />
  </resultMap>  
    
  <select id="selectUser" parameterType="String" resultType="cn.test.ibatis.UserData" >
   SELECT    userID,   userName
   FROM UserData
   WHERE  userID = #{userID}
  </select> 
  
</mapper>


  Mapper Class :根据上述xml中的namespace创建Interface:cn.test.ibatis.UserDataMapper,并根据xml定义method : selectUser(java调用该方法时即是执行xml中的SQL 语句)
 
 public interface UserDataMapper {

	/**
	 * 查找用户
	 * selectUser
	 * @return UserData
	 */
	UserData selectUser(final String id);
}

  
  POJO: 其实就是javabean
 
public class UserData {
    
    private String userID;

    private String userName;
   
    
    public final String getUserID() {
        return userID;
    }

    public final void setUserID(final String userID) {
        this.userID = userID == null ? null : userID.trim();
    }
    
    public final String getUserName() {
        return userName;
    }
    
    public final void setUserName(final String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

}


Main Class :调用selectUser方法

SqlSession session = null;
		try {
			session = IbatisUtil.getSessionFactory().openSession();
			final UserDataMapper map = session.getMapper(UserDataMapper.class);
								
			// 查找UserData表中用户:222
			final UserData list = map.selectUser("222");
} catch ( ...) {
}
0
1
分享到:
评论

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    《深入解析iBatis源码》 iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,...

    Ibatis入门例子,Ibatis教程

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...

    ibatis教程,ibatis帮助文档

    iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...

    Ibatis3手册 Ibatis3参考手册

    每个 `SqlSession` 都是在事务的基础上工作的,可以进行增删改查等操作。一个 `SqlSession` 应该在一个服务调用中只被使用一次,即遵循开闭原则。 #### 3. **Mapper** Mapper 是 Ibatis3 中定义SQL映射的核心组件...

    ibatis2指南及ibatis包

    ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南

    Ibatis

    尽管 Ibatis 在后期演进成了 MyBatis,两者在本质上是一脉相承的。MyBatis 引入了更多的高级特性,如注解支持、自动结果映射、缓存机制、事务管理等,使得 SQL 映射更加便捷和强大。 **5. Ibatis 实战应用** 5.1 ...

    ibatis

    Ibatis 的设计目标是简化开发工作,减少JDBC代码量,提高开发效率,并且在数据库操作上保持灵活度,使得业务逻辑和数据访问层之间的接口清晰明了。 Ibatis 的核心组件包括SqlMapConfig.xml配置文件、Mapper XML ...

    Spring与iBATIS的集成

    但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比,iBATIS独辟蹊径“iBATIS不是试图从根本上掩盖SQL,实际上,它是在拥抱SQL。” &lt;br&gt;但别犯愁:SQL本身具备...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    首先,iBATIS DAO的核心概念是SQL Maps,它们定义了数据库操作的SQL语句,并将其映射到Java方法上。这些SQL Maps通常以XML文件的形式存在,允许开发者直接在代码中调用预定义的SQL操作,如查询、插入、更新和删除。...

    iBATIS实战.pdf

    《iBATIS实战》是讲述iBATIS框架的权威著作。书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。《iBATIS实战》的最后给出了一个...

    iBatis开发指南和一个iBatis实例

    iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...

    ibatis api 帮助文档+IBATIS 开发文档

    **IBATIS API 帮助文档与IBATIS开发文档详解** IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java...

    ibatis应对批量update

    ### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...

    ibatis2.rar

    iBATIS是一个优秀的Java持久层框架,它提供了一个SQL映射框架,使开发者能够将SQL语句直接写在配置文件中,与Java代码分离,从而实现了数据访问逻辑和业务逻辑的解耦。"ibatis2.rar"这个压缩包文件包含了关于iBATIS ...

    Ibatis 入门经典 实例

    1. Mybatis-Plus:在 Ibatis 基础上提供了更多的扩展功能,如 CRUD 操作、条件构造器等。 2. Mybatis Generator:自动化代码生成工具,自动生成 Entity、Mapper 和 XML 文件,提高开发效率。 通过以上内容,你将对 ...

    ibatis plugin用户指南

    《iBatis Plugin用户指南》 iBatis Plugin是一款专为IntelliJ IDEA设计的插件,旨在简化iBatis框架的开发流程,提供包括SQLMap XML编辑、代码提示在内的多种便捷功能。与Eclipse中的Abator不同,iBatis Plugin不仅...

    ibatis2.3.4.rar

    Ibatis 是一款优秀的Java持久层框架,它与Hibernate和JPA等ORM框架不同,Ibatis 提供了更为灵活的SQL映射机制,允许开发者直接编写SQL语句,从而更好地控制查询过程,提高性能。在本资源"ibatis2.3.4.rar"中,包含了...

Global site tag (gtag.js) - Google Analytics