iBATIS step by step 2
2008-01-05 20:09:19 来源:WEB开发网核心提示:这一节里,使用了一个实际的例子来说明dynamic-mapped-statement 和 insert 的简单使用. 系统发布后一段时间,
这一节里,使用了一个实际的例子来说明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);
更多精彩
赞助商链接