关于MySQL Java Driver 的useOldAliasMetadataBehavior参数
来源:互联网 发布:mac系统支持steam吗 编辑:程序博客网 时间:2024/06/15 19:25
之前做的个人征信报送项目,需要从上游抽取数据。只是其他银行都用oracle或者DB2数据库,而这个银行用的mysql数据库,导致数据源获取不到。
以下是配置文件:
<executeUnit name="ImportPayPlan" describe="导入还款计划" allowManualExecute="true" executeClass="com.amarsoft.app.pbc.icr.dataimport.ICRImportUnit"><property name="unit.recordSet" value="datasource:ndb:icr_data:select * from ICR_PAYPLAN:etc/icr_are.xml:," /><property name="com.amarsoft.are.dpx.recordset.UpdateDBHandler.table" value="ICR_PAYPLAN" /><property name="com.amarsoft.are.dpx.recordset.UpdateDBHandler.keyColumns" value="AccountNo,PayDate" /><property name="com.amarsoft.are.dpx.recordset.UpdateDBHandler.checkDBRecord" value="true" /><property name="com.amarsoft.are.dpx.recordset.UpdateDBHandler.startSql" value="delete from ICR_PAYPLAN" /><property name="com.amarsoft.app.pbc.icr.dataimport.ICRDataSourceProvider.dataSource"value="datasource:db:icr139:select CP.PAY_LOAN_NUM as AccountNo{#贷款业务号}, CD.CURRENT_END_DATE as PayDate{#应还款日期},'' as PeriodpayDate{#宽限期最后一天},CD.CURRENT_PRINCIPAL as PayCorp{#应还本金},CD.CURRENT_INTEREST as PayInte{#应还利息},CD.pri_penalty_int as PayCorpFine{#应还本金罚息},CD.int_penalty_int as PayInteFine{#应还利息罚息},RL.REPAYING_DATE as ActualPayDate{#实际还款日期},CD.repayed_principal as ActualCorp{#实还本金},CD.repayed_interest as ActualInte{#实还利息},CD.repayed_pri_penalty_int as ActualCorpFine{#实还本金罚息},CD.repayed_int_penalty_int as ActualInteFine{#实还利息罚息},CD.STATUS as PayOffStatus{#本期结清标志}from CREDIT_REPAYING_PLAN_DETAIL CDinner join CREDIT_REPAYING_PLAN CP on CP.REPAYING_PLAN_ID = CD.REPAYING_PLAN_IDinner join CREDIT_REPAYING_DETAIL RD on RD.REPAYING_PLAN_DETAIL_ID = CD.REPAYING_PLAN_DETAIL_IDinner join REPAY_LOAN RL on RL.REPAY_LOAN_ID = RD.REPAY_LOAN_IDwhere (CD.STATUS <> '2' and CD.CURRENT_END_DATE < '{$ARE.startDate}') or (CD.CURRENT_END_DATE >= '{$ARE.startDate}' and CD.CURRENT_END_DATE <= '{$ARE.endDate}')" /></executeUnit>
后来发现,只有当前面的字段名改成固定值,比如
select '35462346732' as AccountNo{#贷款业务号}才能获取到数据。
进一步发现,数据源获取的不是别名,而是前面的字段名,无法匹配我们的表结构,导致数据源为空。
问题反馈给公司支持中心,发来邮件,可使用useOldAliasMetadataBehavior参数,数据库配置文件如下:
<resource type="jdbc" encrypt="false" name="icr139"><driver>com.mysql.jdbc.Driver</driver><url>jdbc:mysql://115.159.0.139:4001/db_icr?useOldAliasMetadataBehavior=true</url><!-- url="jdbc:mysql://10.0.100.19:4001/db_tafa" 115.159.0.139/> --><user>ht_release</user><password>gFY44zRyXc</password><logWriter>system.err</logWriter><loginTimeout>0</loginTimeout><maxActive>20</maxActive><maxIdle>20</maxIdle><maxWait>3000</maxWait></resource>
问题完美解决!
注意事项:
1、对于5.1.6版本,亲测useOldAliasMetadataBehavior这个参数不起作用,对于5.1.32版本,working,所以先检查驱动版本。
2、useOldAliasMetadataBehavior这个参数的意思是,使用别名作为返回的key的名称,如select id as 'ID' from dual,使用ID而不是id。
3、如此MyBatis才会working的更好
4、如果你用apache DbUtils,最好设置上这个对数,对于spring JdbcTemplate没测过。
0 0
- 关于MySQL Java Driver 的useOldAliasMetadataBehavior参数
- 关于MySQL Java Driver 的 useOldAliasMetadataBehavior
- useOldAliasMetadataBehavior
- 关于java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的解决办法
- 关于java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的解决方案
- 关于tomcat的一点人生经验:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- 关于eclipse中ClassNotFoundException:com.mysql.jdbc.Driver的解决办法
- 关于mysql的useCursorFetch参数
- 关于No suitable driver found for com.mysql.jdbc.Driver问题的解决办法
- 关于在windows环境下启动java工程提示类找不到,即com.mysql.jdbc.Driver的解决办法
- 关于MyEclipse自带Tomcat 6.0使用数据连接池报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的解决办法
- java mysql JDBC Driver详解
- 关于java.sql.SQLException: No suitable driver问题的解决
- java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver的解决方法
- (Java项目)无法找到com.mysql.jdbc.Driver的解决方案
- java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 的解决办法
- 关于mysql-connector-java×××.jar(这是mysql连接jdbc驱动的一个包)缺失造成Unable to load driver.
- 关于Cannot load driver class: com.mysql.jdbc.Driver
- 【案例】简单判断— 分支结构的应用
- Android 开发 Tip 11 -- TabLayout 设置文字大小一致
- 开发遇到的问题
- IE兼容模式问题
- 海康威视(Hikvision)基于设备SDK中链接错误error LNK2019和error LNK2001
- 关于MySQL Java Driver 的useOldAliasMetadataBehavior参数
- Linux设备模型(4)_sysfs
- ngDialog的套用
- 初探vue-router
- NSMutableAttributedString 结合 UILabel显示 Html
- 每个Xcode开发者应该知道的七个使用技巧
- SRAM_IS62WV51216驱动总结
- QQ收藏自动提取正文分析
- count(distinct ...) over (partition by...) 替换成mysql