首页 > 学院 > 开发设计 > 正文

iBATIS step by step 2

2019-11-17 06:12:18
字体:
来源:转载
供稿:网友

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

  系统发布后一段时间,对系统留下的一些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);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表