zoukankan      html  css  js  c++  java
  • 半成品 -- 代码生成器

    代码生成器

      本以为今年时间会比去年多,结果来了又是和去年一样,无限加班。原来的一些计划也是被无限搁置。代码生成器现在也只写了个大概。

    工程信息

    1. springboot
    2. mybatis
    3. freemarker
    4. jdk8
    5. idea

    [ ] 数据库表到前面页面的展示。
    [ ] 根据表生成实体类。
    [X] 数据库动态切换。
    [X] mapper.xml文件生成不完整(目前只生成了结果集、查询列表、查询语句)。
    [X] controller层、service层、dao接口(这三层其实生成出来就是一个空类,因为每层都会有一个对通用方法抽取出来的父类,生成的类也只需要继承这个父类就可以了)。

    总结

      虽然没有写完,但是在这个过程中的思考以及遇到的一些的问题,我觉得都是有意义的。

    最大的一个问题:

    • 怎么查询出当前数据库中所有的表信息。

      1. 使用数据库元数据DatabaseMetaData来获取。
       Connection connection = dataSource.getConnection();
       // 获取数据库元数据
       DatabaseMetaData databaseMetaData = connection.getMetaData();
       ResultSet rs = databaseMetaData.getTables(String catalog, String schemaPattern,
                                           String tableNamePattern, String types[])
      
      1. 使用sql查询
       SELECT TABLE_NAME, CREATE_TIME, UPDATE_TIME, TABLE_COMMENT
       FROM INFORMATION_SCHEMA.TABLES
       WHERE TABLE_SCHEMA = #{databasename}
      

    解决

      第一种方法来获取表信息只需要DataSource获取数据库连接再拿到数据库元数据就可以,在这里DataSource可以用spring注入。但是如何分页是一个问题。因此我没有使用这种方法来查询表信息。
      第二种方法通过sql语句来查询分页很好处理,使用limit也行,PageHelper也行,我用的PageHelper。不过这种方法也有一个问题,那就是databasename,也就是我当前连的是哪个数据库,需要作为参数来做查询。我的做法是在application.yml文件中进行配置,然后在程序中注入。

    application.yml文件:
        databasename: 连接的数据库名称
    
    Controller:
        @Value("${databasename}")
        private String databasename;
    

    git地址

      git@github.com:Feng9509/zc-generator.git

  • 相关阅读:
    ASP.NET AJAX Sys未定义的解决方法
    网页简繁体转换
    asp.net2.0中TreeView不刷新获得节点值
    异常详细信息: System.Runtime.InteropServices.COMException: 无效的类别字符串
    HDOJ1233 还是畅通工程[Prim算法||Kruskal算法]
    Kruskal/Prim/Dijkstra模板
    HDOJ3790 最短路径问题[Dijkstra算法||SPFA]
    HDOJ1285 确定比赛名次[拓扑排序]
    HDOJ1162 Eddy's picture[求最短路prim||kruskal算法]
    HDOJ1213 How Many Tables[并查集入门]
  • 原文地址:https://www.cnblogs.com/zc-programer/p/10499785.html
Copyright © 2011-2022 走看看