龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

iBATIS step by step 2[组图]

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
这一节里,使用了一个实际的例子来说明dynamic-mapped-statement和insert的简单使用. !-- frame contents -- !-- /frame contents -- 系统发布后一段时间,对系统留下的一些log,非凡是所执行的sql语句进

  这一节里,使用了一个实际的例子来说明dynamic-mapped-statement 和 insert 的简单使用.

<!-- frame contents -->
<!-- /frame contents -->

  系统发布后一段时间,对系统留下的一些log,非凡是所执行的sql语句进行分析,来获取用户使用习惯的第一手数据,以便以后我们的改进。
      
  今天就做了这样一次简单的分析,由于系统中几乎所有的查询都使用我的一个统一的借口来进行查询,所以SQL的log有统一的标志,收集起来相对轻易。
      
  下面一步一步的描述一下整个过程:
      
  一、搜集log
       1. 从服务器上获取log文件,无需多说
       2. 用程序分析log,并将sql解析出来,做一些处理,保存到数据库中。
          要保存一条数据到数据库里,需要配置一个保存的SQL:
          


        <parameter-map name="insert-params">
          <property name="exeTime" />
          <property name="sql"/>
          <property name="parsedSql"/>
          <property name="sqlvalues"/>
        </parameter-map>
        <mapped-statement name="insertSql" parameter-map="insert-params" >
          insert into SQL_STMT (
            ID,
            EXE_TIME,
            SQL,
            PARSED_SQL,
            SQL_valueS)
           values (
           <!--注重这里,可以使用数据库本身的功能,不受限制-->
            seq_sql_stmt.nextval, ?, ?, ?,?  
          )
        </mapped-statement>
         进入讨论组讨论。

  程序里只需要提供一个简单的bean,这个bean只需要带有"insert-params"配置的那几个field就可以了,在程序里我们只需要:
         
         SqlLog log = parseSqlLog(sqlString);//set 相关字段
         SqlMapConfig.getSqlMap().executeUpdate("insertSql", log);
  
  
精彩图集

赞助商链接