用JFinalDemoGenerator生成model问题

李永china 发布于 2016/08/10 15:13
阅读 1K+
收藏 0

@JFinal 请问一下 

我的数据库是Oracle  下面是我的url配置

C3p0Plugin c3p0Plugin = new C3p0Plugin("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))", "hdxyuser", "hdxypass","oracle.jdbc.driver.OracleDriver");


但是系统报错:错误信息如下

Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: ORA-00911: invalid character

    at com.jfinal.plugin.activerecord.generator.MetaBuilder.build(MetaBuilder.java:102)
    at com.jfinal.plugin.activerecord.generator.Generator.generate(Generator.java:210)
    at cn.gdpe.domain._JFinalDemoGenerator.main(_JFinalDemoGenerator.java:43)
Caused by: java.sql.SQLException: ORA-00911: invalid character

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
    at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:790)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
    at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1272)
    at com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:327)
    at com.jfinal.plugin.activerecord.generator.MetaBuilder.buildColumnMetas(MetaBuilder.java:216)
    at com.jfinal.plugin.activerecord.generator.MetaBuilder.build(MetaBuilder.java:97)
    ... 2 more

加载中
0
JFinal
JFinal
   尝试改一下 jdbcUrl 配置,删掉里面的空格,将全角字符改成半角字符等等。先确保数据库可以连上
李永china
李永china
回复 @JFinal : 谢谢 我还有一个问题 我当前页面的 url是 localhost:8888/JFinalWest/page/list.jsp 我用插件来上传图片 我ajax的url写的是 /JFinalWest/DeleteFile 但是后台报错 说找不到 /page/DeleteFile 为什么ajax会自动添加了page
JFinal
JFinal
回复 @李永china : 填入能访问到该 action 的 url 即可,规则就是 jfinal 路由规则,jfinal 手册中有说明,在此下载 http://www.jfinal.com
李永china
李永china
回复 @JFinal : 谢谢 那里面的路径 怎么写呢 forwardAction
JFinal
JFinal
回复 @李永china : 同一个 Controller 中的 action 互相跳转,如果是后端解决,直接用 forwardAction(...) 就可以,这样可以触发其拦截器,也可以直接调用 method(),但这样不会触发该 action 上的拦截器
李永china
李永china
回复 @JFinal : 你好 同一个action 的跳转 需要怎么写呢 /项目名/action名/方法名 这样写么
下一页
0
走位风骚闪着腰
走位风骚闪着腰
把_JFinalDemoGenerator代码贴出来
0
李永china
李永china

引用来自“走位风骚闪着腰”的评论

把_JFinalDemoGenerator代码贴出来
public static DataSource getDataSource() {
        DruidPlugin c3p0Plugin = new DruidPlugin("jdbc:oracle:thin:@192.168.0.21:1521:orcl", "hdxyuser", "hdxypass","oracle.jdbc.driver.OracleDriver");
        c3p0Plugin.start();
        return c3p0Plugin.getDataSource();
    }
    
    public static void main(String[] args) {
        // base model 所使用的包名
        String baseModelPackageName = "cn.gdpe.domain.base";
        // base model 文件保存路径
        String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/cn/gdpe/domain/base";
        
        // model 所使用的包名 (MappingKit 默认使用的包名)
        String modelPackageName = "cn.gdpe.domain";
        // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)
        String modelOutputDir = baseModelOutputDir + "/..";
        
        // 创建生成器
        Generator gernerator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);
        // 添加不需要生成的表名
//        gernerator.addExcludedTable("adv");
        // 设置是否在 Model 中生成 dao 对象
        gernerator.setGenerateDaoInModel(false);
        // 设置是否生成字典文件
        gernerator.setGenerateDataDictionary(false);
        // 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser
//        gernerator.setRemovedTableNamePrefixes("WEST_");
        // 生成
        gernerator.generate();
    }
李永china
李永china
回复 @走位风骚闪着腰 : 也不行 只能手工配置了 谢谢了
走位风骚闪着腰
走位风骚闪着腰
gernerator.setDialect(new OracleDialect()); 生成前,加上这句
返回顶部
顶部