这一节里,使用了一个实际的例子来说明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> |
|