开发者社区> 问答> 正文

建表语句的注释无法解析出

使用druid 版本1.0.29

比如我有建表语句

-- table-name-bean-name:some -- CREATE TABLE some_table ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键' }

我想通过druid的SQLUtils获取 table-name-bean-name:some 注释 目的为了做代码生成(表名对应java bean名称),但是无法获取该表注释,不知道什么方式可以获取

原提问者GitHub用户wyzssw

展开
收起
山海行 2023-07-05 20:59:12 122 0
4 条回答
写回答
取消 提交回答
  • 如果您在使用Druid的SQLUtils时无法解析出建表语句中的注释,可能是因为您使用的Druid版本较旧。Druid在旧版本中可能存在一些问题或限制,导致无法正确解析注释。

    建议您尝试更新到最新版本的Druid,例如1.1.14版本。您可以通过访问Druid的GitHub页面(https://github.com/alibaba/druid/releases)查找最新的发布版本,并下载相应的jar包进行更新。

    在使用新版本的Druid时,您可以尝试以下方法来获取建表语句中的注释:

    1. 使用SQLUtils.parseStatements方法解析建表语句,并遍历返回的List<SQLStatement>列表。 2. 对于每个SQLStatement对象,您可以使用SQLStatement.getComment()方法获取其注释信息。例如:

       java    List<SQLStatement> stmtList = SQLUtils.parseStatements(createTableSql, dbType);    for (SQLStatement stmt : stmtList) {        String comment = stmt.getComment();        // 处理注释信息    }    

    请注意,以上代码示例中的createTableSql是您的建表语句字符串,dbType是数据库类型(如MySQL、Oracle等),您需要根据实际情况做相应的调整。

    2023-07-30 14:38:33
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    果您在使用建表语句时,注释无法解析出来,可能是因为您使用的数据库版本不支持注释或者您的建表语句中注释的语法不正确。以下是一些可能的解决方案:

    确认数据库版本支持注释。不同的数据库版本对注释的支持程度不同。如果您使用的数据库版本不支持注释,可能会导致注释无法解析出来。请确保您使用的数据库版本支持注释。

    检查注释的语法。建表语句中的注释应该使用正确的语法。不同的数据库使用的注释语法可能会有所不同。例如,MySQL数据库中的注释语法是"--",而Oracle数据库中的注释语法是"/ /"。请检查您的建表语句中注释的语法是否正确。

    尝试使用其他的注释方式。如果您的建表语句中的注释无法解析出来,可以尝试使用其他的注释方式,例如在建表语句中添加表格注释或者列注释。这些注释方式可以在大多数数据库中被解析出来。

    2023-07-30 13:06:10
    赞同 展开评论 打赏
  • 如果你使用的是Druid连接池的其他版本,可能需要使用不同的参数来获取SQL语句中的注释信息。因此,建议你在使用Druid连接池之前,先仔细阅读Druid连接池的文档

    2023-07-11 10:30:29
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 11:47:40
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像