zoukankan      html  css  js  c++  java
  • iBatis中的重要接口SqlMapClient

    SqlMapClient,是iBatis中的重要接口,这个接口涉及到对SQL映射的执行和批处理。

    现在,就先了解它的对query开头方法的定义。

    首先是 queryForList 方法:

    Java代码 复制代码 收藏代码
    1. //指定SQL的ID,执行的结果返回List   
    2. queryForList(java.lang.String id) ;   
    3.   
    4. //指定SQL的ID,并指定返回的行数   
    5. queryForList(java.lang.String id, int skip, int max) ;   
    6.   
    7. //指定SQL的ID,并指定传入参数   
    8. queryForList(java.lang.String id, java.lang.Object parameterObject) ;   
    9.   
    10. //指定SQL的ID,并指定传入参数,再指定返回的行数   
    11. queryForList(java.lang.String id, java.lang.Object parameterObject, int skip, int max) ;  
    //指定SQL的ID,执行的结果返回List
    queryForList(java.lang.String id) ;
    
    //指定SQL的ID,并指定返回的行数
    queryForList(java.lang.String id, int skip, int max) ;
    
    //指定SQL的ID,并指定传入参数
    queryForList(java.lang.String id, java.lang.Object parameterObject) ;
    
    //指定SQL的ID,并指定传入参数,再指定返回的行数
    queryForList(java.lang.String id, java.lang.Object parameterObject, int skip, int max) ;

    接着是 queryForMap 方法:

    Java代码 复制代码 收藏代码
    1. //执行SQL的ID,并把结果中的某一字段作为map的key   
    2. queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp) ;   
    3.   
    4. //同上,并且map中的value是指定的字段,而不是整个返回对象   
    5. queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp, java.lang.String valueProp) ;  
    //执行SQL的ID,并把结果中的某一字段作为map的key
    queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp) ;
    
    //同上,并且map中的value是指定的字段,而不是整个返回对象
    queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp, java.lang.String valueProp) ;

    再是queryForObject 方法:

    Java代码 复制代码 收藏代码
    1. //执行指定的SQL ID,并返回一个对象,如果查询出的函数过多,会有异常SQLException抛出   
    2. queryForObject(java.lang.String id) ;   
    3.   
    4. //同上,并加上了传递的参数   
    5. queryForObject(java.lang.String id, java.lang.Object parameterObject) ;   
    6.   
    7. //同上,并执行的返回对象的引用   
    8. queryForObject(java.lang.String id, java.lang.Object parameterObject, java.lang.Object resultObject) ;  
    //执行指定的SQL ID,并返回一个对象,如果查询出的函数过多,会有异常SQLException抛出
    queryForObject(java.lang.String id) ;
    
    //同上,并加上了传递的参数
    queryForObject(java.lang.String id, java.lang.Object parameterObject) ;
    
    //同上,并执行的返回对象的引用
    queryForObject(java.lang.String id, java.lang.Object parameterObject, java.lang.Object resultObject) ;

    最后,是 queryForPaginatedList 方法,也就是针对分页的方法: 但是这个方法已经Deprecated 也就是不赞成使用这个方法了

    Java代码 复制代码 收藏代码
    1. //这两个方法返回的是 PaginatedList 接口。   
    2.   
    3. //指定查询的SQL ID,并且规定了每页的数量    
    4. queryForPaginatedList(java.lang.String id, int pageSize) ;   
    5.   
    6. //同上,并且加上了指定的传参   
    7. queryForPaginatedList(java.lang.String id, java.lang.Object parameterObject, int pageSize) ;  
    //这两个方法返回的是 PaginatedList 接口。
    
    //指定查询的SQL ID,并且规定了每页的数量 
    queryForPaginatedList(java.lang.String id, int pageSize) ;
    
    //同上,并且加上了指定的传参
    queryForPaginatedList(java.lang.String id, java.lang.Object parameterObject, int pageSize) ;

    最后一个,那就是 queryWithRowHandler,对查询的每一个结果进行处理:

    Java代码 复制代码 收藏代码
    1. //指定SQL id ,指定传参,并指定处理器   
    2. queryWithRowHandler(java.lang.String id, java.lang.Object parameterObject, RowHandler rowHandler) ;   
    3.   
    4. //指定SQL id,指定处理器   
    5. queryWithRowHandler(java.lang.String id, RowHandler rowHandler) ;  
    //指定SQL id ,指定传参,并指定处理器
    queryWithRowHandler(java.lang.String id, java.lang.Object parameterObject, RowHandler rowHandler) ;
    
    //指定SQL id,指定处理器
    queryWithRowHandler(java.lang.String id, RowHandler rowHandler) ;

    现在了解一下这个 RowHandler 这个接口。

    此接口只有一个定义方法:handlerRow(java.lang.Object valueObject)

    所以,通常我们都实现这个接口,因为对每一个处理都是我们自己的需求。

    其中的传入属性就是每一行的对象。

    上次我学了iBatis的重要接口 SqlMapClient 的查询函数 ,刚刚学习了一下非查询的方法,现在总结一下。

    首先,是插入数据:insert

    Java代码 复制代码 收藏代码
    1. //执行指定的SQL ID   
    2. insert(java.lang.String id) ;   
    3.   
    4. //执行指定的SQL ID,并且指定传参   
    5. insert(java.lang.String id, java.lang.Object parameterObject) ;  
    //执行指定的SQL ID
    insert(java.lang.String id) ;
    
    //执行指定的SQL ID,并且指定传参
    insert(java.lang.String id, java.lang.Object parameterObject) ;

    接着是更新书序:update

    Java代码 复制代码 收藏代码
    1. //执行指定的 SQL ID   
    2. update(java.lang.String id) ;   
    3.   
    4. //执行指定的 SQL ID,并且指定传参   
    5. update(java.lang.String id, java.lang.Object parameterObject) ;  
    //执行指定的 SQL ID
    update(java.lang.String id) ;
    
    //执行指定的 SQL ID,并且指定传参
    update(java.lang.String id, java.lang.Object parameterObject) ;

    再是删除数据: delete

    Java代码 复制代码 收藏代码
    1. // 执行指定的SQL ID   
    2. delete(java.lang.String id) ;   
    3.   
    4. //执行指定的 SQL ID,并且指定传参   
    5. delete(java.lang.String id, java.lang.Object parameterObject) ;  
    // 执行指定的SQL ID
    delete(java.lang.String id) ;
    
    //执行指定的 SQL ID,并且指定传参
    delete(java.lang.String id, java.lang.Object parameterObject) ;

    这样,执行 SQL 的函数就差不多了,接下来去具体的学习 SQL MAP 配置文件中具体各个属性。

  • 相关阅读:
    C语言中的排序算法--冒泡排序,选择排序,希尔排序
    常见算法:C语言求最小公倍数和最大公约数三种算法
    提高软件测试效率的方法探讨
    面试官询问的刁钻问题——以及如何巧妙地应付它们
    软件测试面试--如何测试网页的登录页面
    如何衡量测试效率,如何提高测试效率!
    利用交叉测试提升软件测试效率
    交叉测试的必要性和遇到的问题
    敏捷测试
    HttpWatch工具简介及使用技巧
  • 原文地址:https://www.cnblogs.com/a1280055207/p/2767643.html
Copyright © 2011-2022 走看看