请大家帮个忙
语言:Java 数据库:mysql
我想知道 ibatis 如何直接执行sql语句,它在XML中如何配置,返回的结果是什么。返回结果后,只取其中的某两列的值该如何做。用JDBC写,类似于这样 rs.getLong( "Data_length" );麻烦大家了,最好发齐相关的代码及其配置。O(∩_∩)O谢谢了哈

解决方案 »

  1.   

    参考:
    http://www.javaeye.com/topic/149753
      

  2.   

    呵呵……不好意思,刚没看到zou_wei_forever 的回复,我去看看,谢了哈
      

  3.   

    ----->XML中如何配置<bean id="collector" parent="validationIBatisDbChunkCollector">
    <property name="sql">
    <value>SQL_GET_001</value>
    </property>
    </bean>2.用一个resultClass接到返回的值,然后作处理
      

  4.   

     ouyangxiaokang6 
    可以说清楚点吗parent="validationIBatisDbChunkCollector" 这个东东是这么啊 为什么属性值是这个 <value>SQL_GET_001</value>
      

  5.   

    <select id="selectCount" resultClass="int" >
    select count(*) from table
    </select>
    resultClass就是结果类型
      

  6.   

    我想用 ibatis 执行类似于这样的语句 
    SHOW TABLE STATUS FROM dub_31120000
    所以楼上那个不对
      

  7.   


    <select id="SQL_GET_001"
    parameterClass="aaa.vo"
    resultClass = "bbb.vo">
    select a AS "kk",
           b AS "kk2"
    from table
    where
    </select>
    List <vo> resutlList = queryDAO.executeForObjectList(SQL_GET_001, aaa.vo);
      

  8.   

    你看一下IBatis的文档就知道了
      

  9.   

    [Quote=引用 12 楼 ouyangxiaokang6 的回复:]
    XML code
    <select id="SQL_GET_001"
            parameterClass="aaa.vo"
            resultClass = "bbb.vo">
    select a AS "kk",
           b AS "kk2"
    from table
    where
    </select>
    我想用 ibatis 执行类似于这样的语句 
    SHOW TABLE STATUS FROM dub_31120000 
    所以不可以用 select 标签
      

  10.   

    呵呵……终于弄出来了,不过好像绕了一个大圈,同事跟我说,ibatis 配置文件中 select 标签,不可以执行Mysql中的show 语句(SHOW TABLE STATUS FROM 数据库名),结果找的时候,压根没想到 select 标签可以执行 show 语句。下面贴下完整的代码
    DbSize.xml<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="DbSize">
    <typeAlias alias="dbSize" type="com.telin.domain.DbSize" />
    <resultMap id="dbSizeResult" class="dbSize">
    <result property="rows" column="Rows" />
    <result property="dateLength" column="Data_length" />
    <result property="indexLength" column="Index_length" />
    </resultMap>

    <select id="getDbSize" resultMap="dbSizeResult" parameterClass="string">   
       <![CDATA[   $sql$   ]]>
       </select></sqlMap>对ibatis学艺不精,不知道虚拟表也可以这样进行字段映射,只要列名对应Bean中的属性即可
    这里特别要注意  $sql$ 这句DAO层中的方法public float getDbSize( Properties properties, String companyId ) throws Exception{
    float dbsize = 0;

    String sql = "SHOW TABLE STATUS FROM dbu_" + companyId.trim() + " " +
    "WHERE Name like 'bbs_%' " +
    "or Name like 'dbu_%' " +
    "or Name like 'phpbbs_%'"; //获取数据库连接
    this.getSqlMapClientbyProperty(properties); 
    List<DbSize> list = null;
    list = sqlMapClient.queryForList( "getDbSize", sql );

    float tempsize = 0;
    //获取数据库容量大小
    Iterator it = list.iterator();
    while( it.hasNext() ){
    DbSize sizeBean = ( DbSize )it.next();
    tempsize = tempsize + sizeBean.getDateLength();
    tempsize = tempsize + sizeBean.getIndexLength();
    }
    dbsize = tempsize / 1048576; //1048576 = 1024*1024

    return dbsize;
    }谢谢大家了,明天结贴
      

  11.   

    最近查到一个JAVA及JAVAEE导航网址,感觉还不错,所以提供给大家分享 
    导航网站网址是:http://www.javaee123.cn/ 
    感觉还是一个很全面的JAVA入门学习网址导航 请问大家谁还有其他相关的JAVA导航网站,可否贴出来分享,谢谢。