JFinal

登录 注册

如何根据表名获取表中所有字段的信息?

需要每一个字段的名字、类型、注释。

评论

  • 12-05 09:14
    每个数据库写法不一样 建议你百度一下
  • 12-05 09:52
    有个TableMapping不过是根据Model.class拿的
  • 12-06 11:04
    @nbjgl 类似
    SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '你的表名';
    SELECT COLUMN_NAME,COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '你的表名';
  • 12-06 13:49
    DruidPlugin druidPlugin = new DruidPlugin( jdbcUrl, userName, passWord);

    druidPlugin.start();
    DruidDataSource dataSource = (DruidDataSource)druidPlugin.getDataSource();
    Properties properties = new Properties();
    properties.setProperty("remarks", "true");
    properties.setProperty("useInformationSchema", "true");
    dataSource.setConnectProperties(properties);

    DataSource dataSource = getDataSource();

    MetaBuilder metaBuilder = new MetaBuilder(dataSource);
    // 没有主键的 表可以排除
    metaBuilder.addExcludedTable("courseplan_back");
    // 默认是Mysql, 如果是其他的, 就换
    //metaBuilder.setDialect(new MysqlDialect());
    // 表的 集合
    List< TableMeta> build = metaBuilder.build();

    // List 转 Map 然后 静态存起来, 供其他地方使用, 例:
    Map< String, TableMeta> tableMetas = new HashMap< String, TableMeta>();
    for (TableMeta tableMeta : build) {
    tableMetas.put(tableMeta.name, tableMeta);
    }
    // 使用
    TableMeta tableMeta = tableMetas.get("test");
    可以看下Jfinal源码中字典等生成器
  • 12-06 18:04
    Thanks
  • 发送