DbDoris.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package jnpf.database.source.impl;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import jnpf.database.constant.DbConst;
  4. import jnpf.database.enums.DbAliasEnum;
  5. import jnpf.database.model.dbfield.DbFieldModel;
  6. import jnpf.database.source.DbBase;
  7. import jnpf.database.sql.model.DbStruct;
  8. import java.sql.ResultSet;
  9. /**
  10. * 类功能
  11. *
  12. * @author JNPF开发平台组 YanYu
  13. * @version v3.4.5
  14. * @copyrignt 引迈信息技术有限公司
  15. * @date 2022-12-08
  16. */
  17. public class DbDoris extends DbBase {
  18. @Override
  19. protected void init() {
  20. setInstance(
  21. DORIS,
  22. DbType.MYSQL,
  23. com.alibaba.druid.DbType.mysql,
  24. "9030",
  25. "root",
  26. "mysql",
  27. "com.mysql.cj.jdbc.Driver",
  28. "jdbc:mysql://{host}:{port}/{dbname}?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=GMT%2B8&useSSL=false"
  29. //connUrl = "jdbc:mysql://{host}:{port}/{dbname}?useUnicode=true&autoReconnect=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8";
  30. );
  31. }
  32. @Override
  33. public String getConnUrl(String prepareUrl, String host, Integer port, DbStruct struct) {
  34. prepareUrl = super.getConnUrl(prepareUrl, host, port, null);
  35. return prepareUrl.replace(DbConst.DB_NAME, struct.getMysqlDbName());
  36. }
  37. @Override
  38. public void setPartFieldModel(DbFieldModel model, ResultSet result) throws Exception {
  39. long charLength = result.getLong(DbAliasEnum.CHAR_LENGTH.getAlias(this.getJnpfDbEncode()));
  40. // Doris 长文本格式为String,但Jdbc查出的数据类型为:varchar & charLength = 2147483643
  41. if(model.getDataType().equalsIgnoreCase("varchar") && charLength == 2147483643){
  42. model.setDataType("text");
  43. }
  44. super.setPartFieldModel(model, result);
  45. }
  46. }