`

使用Abator自动生成ibatis的DAO.Model方法使用说明

阅读更多

使用Abator的ibatis自动生成器很方便的可以自动生成xx-sqlmap.xml、DAO、Model(包括example)文件。

关于abator的下载和配置这里暂且不予以说明,因为网上资源多多,详细多多,有木有!!

 

主要说明的是DAO文件中自动生成的各种方法是何含义,因为主页君开始使用的时候也闹不明白是神马意思,后来仔细研究过后才搞明白,所以贴在这里希望对大家有帮助。

 

DAO文件(Model以CAR为说明):

 

public class CarDAOImpl extends SqlMapClientDaoSupport implements CarDAO {

    说明 :这个是构造函数,在这里就不多说明了

    public CarDAOImpl() {
        super();
    }

  
    说明 : 这里是insert插入方法
    参数为实体对象CAR (举例:CAR record = new Car(); record.setId("1");record.setCarName("奥  迪"))
    public void insert(Car record) {
        getSqlMapClientTemplate().insert("car.abatorgenerated_insert", record);
    }

   

   
     说明 : 根据主键修改表(可修改多个字段
     参数为实体对象CAR (举例: CAR record = new Car(); record.setId("1");record.setCarName("奥迪") ; record.setCarModel(" sedan ")

相当于 update car set carname="奥迪"),carmodel("sedan") where id="1";    
    public int updateByPrimaryKey(Car record) {
        int rows =   getSqlMapClientTemplate().update("car.abatorgenerated_updateByPrimaryKeyWithBLOBs", record);
        return rows;
    }

   
     说明 : 根据主键修改 (只修改单个字段)
     参数为实体对象CAR (会自动将其中的ID取出来作为where条件) (举例: CAR record = new Car(); record.setId("1");record.setCarName("奥迪") 相当于 update car set carname="奥迪"where id="1";   
    public int updateByPrimaryKeySelective(Car record) {
        int rows = getSqlMapClientTemplate().update("car.abatorgenerated_updateByPrimaryKeySelective", record);
        return rows;
    }

  
     说明 : 根据条件查询(不包括BLOB字段的)
     参数为CarExample的实例,通过example将where条件传入
     (举例:CarExample example = new CarExample();Criteria  criteria = example .createCriteria();

 criteriaAddCarNameEqualto("奥迪").相当于select * from car where carname="奥迪")
     public List selectByExampleWithoutBLOBs(CarExample example) {
        List list = getSqlMapClientTemplate().queryForList("car.abatorgenerated_selectByExample", example);
        return list;
    }

   
     说明 : 根据条件查询包括BLOB字段的
     参数为CarExample的实例,通过example将where条件传入 (使用方法同上)
    
    public List selectByExampleWithBLOBs(CarExample example) {
        List list = getSqlMapClientTemplate().queryForList("car.abatorgenerated_selectByExampleWithBLOBs", example);
        return list;
    }

  
    说明 : 根据ID查询
     参数为ID字符串
    
    public Car selectByPrimaryKey(String id) {
        Car key = new Car();
        key.setId(id);
        Car record = (Car) getSqlMapClientTemplate().queryForObject("car.abatorgenerated_selectByPrimaryKey", key);
        return record;
    }
   

  
     说明 : 根据条件删除
      参数为example (使用方法同上)
    
      public int deleteByExample(CarExample example) {
        int rows = getSqlMapClientTemplate().delete("car.abatorgenerated_deleteByExample", example);
        return rows;
    }

   
     说明 : 根据主键删除
      参数为ID字符串

    
    public int deleteByPrimaryKey(String id) {
        Car key = new Car();
        key.setId(id);
        int rows = getSqlMapClientTemplate().delete("car.abatorgenerated_deleteByPrimaryKey", key);
        return rows;
    }

  
      说明 : 根据条件计数
     参数为example
(举例: CarExample example = new CarExample();Criteria  criteria = example .createCriteria();

 criteriaAddCarNameEqualto("奥迪").相当于select count(*) from car where carname="奥迪"


   
    public int countByExample(CarExample example) {
        Integer count = (Integer)  getSqlMapClientTemplate().queryForObject("car.abatorgenerated_countByExample", example);
        return count.intValue();
    }

   
    说明 : 根据条件选择性更新
     参数record为set后面的参数;example为where条件;只能更新一个字段(
举例: CAR record = new Car(); record.setId("1");record.setCarName("宝马") ;

相当于 update car set carname="奥迪"),carmodel("sedan") where id="1"; CarExample example = new CarExample();Criteria  criteria = example .createCriteria();

 criteriaAddCarNameEqualto("奥迪").相当于update car set carname="宝马" where carname="奥迪"

 


   
    public int updateByExampleSelective(Car record, CarExample example) {
        UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
        int rows = getSqlMapClientTemplate().update("car.abatorgenerated_updateByExampleSelective", parms);
        return rows;
    }

 
     说明 : 按条件更新无BLOBS类型的字段
      参数record为set后面的参数;example为where条件;(使用方法同上,不同的是,record中设置set的条件可以是多个)

    
    public int updateByExampleWithBLOBs(Car record, CarExample example) {
        UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
        int rows = getSqlMapClientTemplate().update("car.abatorgenerated_updateByExampleWithBLOBs", parms);
        return rows;
    }

  
     说明 : 按条件更新更新无blob类型的字段
    
     参数record为set后面的参数;example为where条件;(使用方法同上)

    
    public int updateByExampleWithoutBLOBs(Car record, CarExample example) {
        UpdateByExampleParms parms = new UpdateByExampleParms(record, example);
        int rows = getSqlMapClientTemplate().update("car.abatorgenerated_updateByExample", parms);
        return rows;
    }

   
        说明 : 按条件更新 (使用方法我米研究,有懂的同事们帮忙说明一下,谢谢!)
        private static class UpdateByExampleParms extends CarExample {
        private Object record;

        public UpdateByExampleParms(Object record, CarExample example) {
            super(example);
            this.record = record;
        }

        public Object getRecord() {
            return record;
        }
    }
}

 

 

PS: 总的来说,用abator自动生成的DAOImpl方法中的方法只是最基础的增删改查,结合自己的项目中的数据库操作我们往往需要更复杂的SQL操作,这就要求自己有能力在xml文件中配置SQL语句,并在DAOImpl中增设自定义方法了,当然,无论多复杂的SQL,都有sqlclient提供的强大的增删改查执行方法来执行的。

0
0
分享到:
评论
1 楼 chao_1990 2013-03-29  
二次封转是不是因为update()方法所需要的最多是两个参数,其中一个是指定配置文件的id,另一个是要传递的参数,封装以后可以将要更新的属性值,和where条件的参数通过一个参数传递过去,完成更新的操作。

相关推荐

    Abator自动生成ibatis代码

    - **定义**:Abator是一款针对iBATIS框架的专业代码生成工具,它能够显著减少开发人员在使用iBATIS时需要手动编写的代码量,尤其是针对数据访问对象(DAO)、数据传输对象(DTO)以及SQL映射文件等的生成。...

    使用abator搭建ibatis dao框架

    本篇文章将详细介绍如何使用Abator工具搭建基于Ibatis的DAO框架。 Abator是一款自动化工具,它可以自动生成Java代码和SQL映射文件,大大简化了开发过程。下面我们将分步骤解析如何利用Abator来创建Ibatis DAO框架。...

    eclipse中开发ibatis的插件abator(无注释版)

    Abator就是这样一个工具,它是一个自动化代码生成器,能够自动生成iBatis所需的SQL映射文件、DAO接口、实体类等,大大减轻了开发工作量。本教程将介绍如何在Eclipse中配置并使用无注释版的Abator插件。 首先,我们...

    ibatisDao.rar

    虽然原生的iBATIS已经很强大,但MyBatis-Plus提供了更多便利的CRUD操作,如自动填充创建时间和修改时间,自动生成主键,一键生成Mapper、Service和DAO等,让开发更加高效。 6. **最佳实践** - 将SQL语句与业务...

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

    在源码中,`com.ibatis.dao`包下包含了许多关键类,例如`SqlMapClient`是整个框架的入口,负责管理所有的SQL Maps;`SqlMapExecutor`是执行SQL的接口,提供了各种数据库操作的方法;而`SqlMapSession`则封装了事务...

    ibatis SQL映射文件、DAO、model自动生成工具源码

    这个"ibatis SQL映射文件、DAO、model自动生成工具"的源码,旨在简化开发过程,通过自动化生成基本的Ibatis相关代码,提高开发效率。 首先,SQL映射文件(Mapper XML)是Ibatis的核心部分,它定义了数据库操作的SQL...

    IBatis-Abator插件自动生成代码和配置的方法

    ### IBatis-Abator插件自动生成代码和配置的方法 #### 概述 在软件开发过程中,为了提高开发效率和减少重复性工作,自动化工具变得越来越重要。其中,代码生成工具是开发人员不可或缺的好帮手之一。本文将详细介绍...

    abator插件,ibatis插件

    Abator 插件是针对 iBatis 框架的一个自动化工具,它的主要功能是帮助开发者自动生成与 iBatis 相关的各种代码,从而提高开发效率,减少手动编写重复代码的工作量。iBatis 是一个优秀的 Java 数据库访问框架,它提供...

    IBatis.DataMapper.1.6.2.bin.zip

    本篇文章将围绕"IBatis.DataMapper.1.6.2.bin.zip"和"IBatis.DataMapper.1.9"这两个开发包,深入探讨其核心概念、功能特性以及版本间的差异,帮助开发者更好地理解和应用这一框架。 1. **IBatis DataMapper简介** ...

    ibatis2.3.4.8.jar 和 ibatis-2.3.4.726.jar两个版本的下载

    映射器是Ibatis的主要组件,它定义了数据库操作与Java方法之间的对应关系。SQL映射文件则包含了具体的SQL语句和结果映射,这些文件通常以XML格式存在,也可以用注解方式来实现。SqlSession则负责与数据库进行交互,...

    IBatis.net-IBatis.DataAccess.1.9.2/IBatis.DataMapper.1.6.2

    本篇将深入探讨IBatis.Net的核心组件——IBatis.DataAccess.1.9.2和IBatis.DataMapper.1.6.2,以及它们在数据访问中的关键作用。 **一、IBatis.DataAccess** IBatis.DataAccess是IBatis.net框架的一部分,主要负责...

    生成ibatis Dao

    总的来说,生成Ibatis Dao的过程是Java开发中的重要一环,它通过工具自动化的方式提高了开发效率,同时保持了代码的整洁和规范。对于大型项目,这样的工具更是必不可少,因为它能够帮助开发者快速地构建出与数据库...

    Ibatis代码自动生成工具—Abator应用

    《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...

    abator Ibatis

    `Abator`是`Ibatis`项目的一部分,是一个代码生成工具,能自动生成基于`Ibatis`的数据访问层(DAO)和模型(Model)代码,大大提高了开发效率。 在`Ibatis`中,数据库操作通过SQL映射文件实现,这些文件包含了SQL...

    ibatis实战.part07

    ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战....

    ibatis实战.part09

    ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战....

    ibatis实战.part08

    ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战....

    IBATIS视频入门 abator代码生成器

    而Abator是IBATIS提供的一种自动化工具,能够自动生成SQL映射文件、DAO接口和实现类等,大大提高了开发效率。 **描述解析:** 描述中提到的“博文链接:https://lanmh.iteye.com/blog/208198”表明这个资源可能是一...

    ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载

    3. **结果映射**:iBATIS能够自动将数据库查询的结果映射到Java对象,减少了手动处理结果集的麻烦。它也支持嵌套结果映射,对于复杂的一对多或多对多关系,可以轻松处理。 4. **事务管理**:iBATIS提供了简单的事务...

    IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2

    标题和描述中提到的"IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2"是针对一个名为IBatisNet的框架的不同组件的版本号。IBatisNet是一个在.NET平台上实现的开源持久层框架,它源于Java...

Global site tag (gtag.js) - Google Analytics