问题描述
ibatis简介ibatis是一个O/RMapping解决方案,ibatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,ibatis是能满足你的要求又足够灵活的最简单的解决方案。ibatis以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。ibatis底层采用纯JDBC操作,要求操作人员直接编写sql进行操作,光从这点看,ibatis本身就大大地提高数据层操作的透明度。扩展/修正说明1、sqlmap中新增执行节点statementssqlmap中新增执行节点statements,其中可以包含多个子节点(insert、update、delete、statement均可),可一次性保护多个sql节点,便于程序sqlmap管理2、ClassKey生成使用classKey获取主键即为,执行某个class中的方法后生成主键序列的方式参考格式定义如下:<classKeykeyProperty="userId"//生成key存放如parameterClass的属性名称,必填resultClass="String"//返回key结果类型,必填type="pre"//insert执行前、后执行当前生成主键方式,必填className="test.util.GenerateSerial"//当前执行类全路径,必填methodName="getUUID"//当前执行方法,必填args="1,2"//参数值,多个以逗号隔开,选填paramTypes="java.lang.String,int"//参数类型,多个以逗号隔开,选填></classKey>
在sqlmap解析器中新增classkey节点的检查校验3、insert中多SQL同步保存实现多个sql公用某个参数类时,可在insert、update、delete、statement等节点中包含多个sql语句,并自定义分割符。有了它,我们再也不用为事物愁了^_^。这这里统一可以使用selectKey、classKey产生主键;利于保证主子表同步保存时,关联外键的级联同时保存。(Hibernate的精髓,很好,很强大)4、批处理优化修改了sql执行器com.ibatis.sqlmap.engine.execution.SqlExecutor,添加了sql执行保存器,用于存储已经添加过在批处理桶列中的sql识别集合map。5、Debug模式下打印完整的SQL语句即使用ibatis时需要在控制台或日志文件中打印其当前执行的完整sql,而不是常见的参数问号?语句。6、insert中多SQL同步保存在sqlmap中扩展insert节点,可确保一次性提交同步执行多条sql,各sql之间以逗号;隔开,这有利于保证主子表同步保存时,关联外键的相同性。7、真正意义上的分页支持数据库物理分页选取;继续使用接口PaginatedList及实现类PaginatedDataList;支持不同数据库自定义方言支持8、多数据库兼容可定义当前数据库类型,并依据它选择不同的sqlmap程序脚本支持(DBProductName(mysql|sqlserver|oracle|db2|sybase)