9/10 星期一
已办事项:
SQL执行按钮点击事件:ajax异步请求
1. 异步请求URL:/dataquery/list/connectInfo/sql
2. 请求返回结果为json格式数据,Controller层方法添加@ResponseBody注解
3. BSTable动态表头的构造,根据ajax返回的List数据列表,对Object.keys(json[0])的key进行遍历,创建动态表头,针对表头列进行value填充。
4. 存在的问题:
4.1 列标题生成问题,由于请求后的表头title为原始数据(json),展示上可读性较差,需要在返回的数据List上进行字段包装。
4.2 用户键入的SQL语句(textarea框中存储) -- 对应请求参数:sql(String)
对参数的解析重点:表名部分,由于数据表对应实体对象,数据表和entity对象之间存在ORM映射关系,而针对每个数据表都会有对应的mapper映射文件,
所以,在Controller层中拿到sql参数之后,需要从参数中的表名部分解析出对应的实体类以及mapper,并进行依赖注入。这个地方还存在不规范的键入sql语句问题。
4.3 数据库连接信息:对应请求参数:connectInfo(String)
用户从下拉框中选择后,点击SQL执行按钮的时候会作为参数进行传递
具体表现为数据库驱动和数据库差异,即:MySQL、SqlServer和guns2、dip、dip2等。
数据库驱动及数据库信息均在application.yml中进行配置,当前存在的配置为MySQL.guns2和SqlServer.dip
如果出现SqlServer、MySQL中另外一个数据库,这里需要进行配置 -- yml配置文件
由于数据库不确定,多数据源注解@DataSource注解无法对业务方法进行添加 -- @DataSource注解
此时,当前请求的controller无法执行业务逻辑
5. 上述中4.1、4.2都需要一个类似字典的过渡产物进行关系映射,4.3牵扯到了配置文件以及数据源的配置。
待办事项:
- 针对上述问题,采取可行的解决方案。
- 尝试将异步ajax生辰动态BSTable表头的代码进行封装。
9/11 星期二
已办事项:
- 针对昨日问题
- 4.2 设计针对用户的原生SQL语句对应的查询方法:commonQuery。
- 4.3 数据库连接方面,将数据库连接的选择在业务层进行选择执行,请求先走默认query方法,到达service层后进行connectInfo判断分类执行。
- bootstraptable中含有tableExport插件,可以实现多种格式的表格数据导出,现已开始使用该插件。
- bootstraptable的客户端分页问题。
待办事项:
- tableExport插件遇到的问题:Uncaught TypeError: that.$el.tableExport is not a function ,无法正常使用。
设计针对昨日问题4.1的字典映射集。
9/12 星期三
已办事项:
- bootstraptable的tableExport插件的使用,支持JSON、XML、CSV、TXT、SQL等格式的文件导出,并设置了数据导出范围,功能已实现。
- 添加第三个数据源WIND,并可根据用户选择的数据源连接信息进行SQL语句的数据查询。
- 解决的生成文件中多余"on"列的问题。
待办事项:
- 根据ProductInfo数据表中的数据,按照productID进行查询后存储在静态集合中,采用工具类方便后续操作的调用。
- 针对用户常用的SQL语句建立字典查询的CURD。
- 新添加模块:期货手动交易表FuturesManualTradingRecord的功能实现。
9/13 星期四
已办事项:
- 整理数据提供商SQL查询功能所遇到的问题。
-
根据变更的产品名数据映射,进行更改
查询数据 -- ProductNameMappingTable视图
增加、修改、删除 -- ProductNameData表
字段上:
更改 AccountID -> AccountLink
增加 MappingType, 默认值是0, 1表示这个映射名为账号 - 添加启动预处理类:PreExecution.java,预处理产品信息字典列表。
- QuantDIP版本更新,更新至trunk。
待办事项:
- 数学建模国赛。
- 常用SQL查询字典界面的CURD。
- 需求文档:期货手动交易表FuturesManualTradingRecord的功能实现。
9/14 星期五
在办事项:
- 数学建模国赛