使用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提供的强大的增删改查执行方法来执行的。
分享到:
相关推荐
- **定义**:Abator是一款针对iBATIS框架的专业代码生成工具,它能够显著减少开发人员在使用iBATIS时需要手动编写的代码量,尤其是针对数据访问对象(DAO)、数据传输对象(DTO)以及SQL映射文件等的生成。...
本篇文章将详细介绍如何使用Abator工具搭建基于Ibatis的DAO框架。 Abator是一款自动化工具,它可以自动生成Java代码和SQL映射文件,大大简化了开发过程。下面我们将分步骤解析如何利用Abator来创建Ibatis DAO框架。...
Abator就是这样一个工具,它是一个自动化代码生成器,能够自动生成iBatis所需的SQL映射文件、DAO接口、实体类等,大大减轻了开发工作量。本教程将介绍如何在Eclipse中配置并使用无注释版的Abator插件。 首先,我们...
虽然原生的iBATIS已经很强大,但MyBatis-Plus提供了更多便利的CRUD操作,如自动填充创建时间和修改时间,自动生成主键,一键生成Mapper、Service和DAO等,让开发更加高效。 6. **最佳实践** - 将SQL语句与业务...
在源码中,`com.ibatis.dao`包下包含了许多关键类,例如`SqlMapClient`是整个框架的入口,负责管理所有的SQL Maps;`SqlMapExecutor`是执行SQL的接口,提供了各种数据库操作的方法;而`SqlMapSession`则封装了事务...
这个"ibatis SQL映射文件、DAO、model自动生成工具"的源码,旨在简化开发过程,通过自动化生成基本的Ibatis相关代码,提高开发效率。 首先,SQL映射文件(Mapper XML)是Ibatis的核心部分,它定义了数据库操作的SQL...
### IBatis-Abator插件自动生成代码和配置的方法 #### 概述 在软件开发过程中,为了提高开发效率和减少重复性工作,自动化工具变得越来越重要。其中,代码生成工具是开发人员不可或缺的好帮手之一。本文将详细介绍...
Abator 插件是针对 iBatis 框架的一个自动化工具,它的主要功能是帮助开发者自动生成与 iBatis 相关的各种代码,从而提高开发效率,减少手动编写重复代码的工作量。iBatis 是一个优秀的 Java 数据库访问框架,它提供...
本篇文章将围绕"IBatis.DataMapper.1.6.2.bin.zip"和"IBatis.DataMapper.1.9"这两个开发包,深入探讨其核心概念、功能特性以及版本间的差异,帮助开发者更好地理解和应用这一框架。 1. **IBatis DataMapper简介** ...
映射器是Ibatis的主要组件,它定义了数据库操作与Java方法之间的对应关系。SQL映射文件则包含了具体的SQL语句和结果映射,这些文件通常以XML格式存在,也可以用注解方式来实现。SqlSession则负责与数据库进行交互,...
本篇将深入探讨IBatis.Net的核心组件——IBatis.DataAccess.1.9.2和IBatis.DataMapper.1.6.2,以及它们在数据访问中的关键作用。 **一、IBatis.DataAccess** IBatis.DataAccess是IBatis.net框架的一部分,主要负责...
总的来说,生成Ibatis Dao的过程是Java开发中的重要一环,它通过工具自动化的方式提高了开发效率,同时保持了代码的整洁和规范。对于大型项目,这样的工具更是必不可少,因为它能够帮助开发者快速地构建出与数据库...
《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...
`Abator`是`Ibatis`项目的一部分,是一个代码生成工具,能自动生成基于`Ibatis`的数据访问层(DAO)和模型(Model)代码,大大提高了开发效率。 在`Ibatis`中,数据库操作通过SQL映射文件实现,这些文件包含了SQL...
ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战.part07ibatis实战....
ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战.part09ibatis实战....
ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战.part08ibatis实战....
而Abator是IBATIS提供的一种自动化工具,能够自动生成SQL映射文件、DAO接口和实现类等,大大提高了开发效率。 **描述解析:** 描述中提到的“博文链接:https://lanmh.iteye.com/blog/208198”表明这个资源可能是一...
3. **结果映射**:iBATIS能够自动将数据库查询的结果映射到Java对象,减少了手动处理结果集的麻烦。它也支持嵌套结果映射,对于复杂的一对多或多对多关系,可以轻松处理。 4. **事务管理**:iBATIS提供了简单的事务...
标题和描述中提到的"IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2"是针对一个名为IBatisNet的框架的不同组件的版本号。IBatisNet是一个在.NET平台上实现的开源持久层框架,它源于Java...