关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 13645|回复: 3

[代码生成器] 在线表单开发的数据库导入表单-生成表单报错-找不到表

[复制链接]
发表于 2018-8-10 17:20:01 | 显示全部楼层 |阅读模式
本帖最后由 andyyuan 于 2018-8-10 17:21 编辑

jeecg 3.7.8版本的 在线表单开发的数据库导入表单-生成表单报错-找不到表。 我看框架里面做了大写转换,但是mysql的数据字典里面的 表名称,是小写, 所以找不到表,,, 可能是MySQL版本的差异引起的,框架可以把字段和变量都做下转换。
MySQL server 版本:5.7.23
框架代码段:JeecgReadTable.java
  public List<Columnt> readOriginalTableColumn(String tableName)
    throws Exception
  {
    List columntList = new ArrayList();
    try {
      Class.forName(CodeResourceUtil.DIVER_NAME);
      this.b = DriverManager.getConnection(CodeResourceUtil.URL, CodeResourceUtil.USERNAME, CodeResourceUtil.PASSWORD);
      this.c = this.b.createStatement(1005, 1007);

      if (CodeResourceUtil.DATABASE_TYPE.equals("mysql")) {
        this.sql = MessageFormat.format("select column_name,data_type,column_comment,numeric_precision,numeric_scale,character_maximum_length,is_nullable nullable from information_schema.columns where table_name = {0} and table_schema = {1}", new Object[] { a.f(tableName.toUpperCase()), a.f(CodeResourceUtil.DATABASE_NAME) });
      }



异常信息:[2018-08-10 16:23:14] [INFO] [org.jeecgframework.web.cgform.controller.trans.CgformTransController:134] [本地] [online数据库导入表]   --表名:equipment_repair_doc
[2018-08-10 16:23:14] [ERROR] [org.jeecgframework.core.common.exception.GlobalExceptionResolver:86] 全局处理异常捕获:
java.lang.Exception: 该表不存在或者表中没有字段
        at org.jeecgframework.codegenerate.database.JeecgReadTable.readOriginalTableColumn(JeecgReadTable.java:333)
        at org.jeecgframework.web.cgform.controller.trans.CgformTransController.transEditor(CgformTransController.java:135)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
发表于 2018-8-10 17:21:58 | 显示全部楼层
把数据库改成不区分大小写
 楼主| 发表于 2018-8-10 17:27:50 | 显示全部楼层
admin 发表于 2018-8-10 17:21
把数据库改成不区分大小写

可以通过修改数据库配置达到,不过从程序的健壮性的角度考虑,建议基于框架层考虑大小写问题。
发表于 2018-8-10 17:29:51 | 显示全部楼层
我们是兼容多数据库,特别是oracle,所以默认是大写。其他数据库请放开大小写限制。
有个性化的需求可以自行改造
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表