Screw-Driver - 代码与数据库生成器


MIT
跨平台
Java

软件简介

ScrewDriver是一个用于生成代码、创建或读取数据库表信息的工具包,可用于IDE编程式生成代码(包括数据库表的读取与创建)或作为其他工具的支持包!

使用帮助

帮助文档

运行环境要求: java >= 1.6

添加依赖

<dependency>
    <groupId>org.mirrentools</groupId>
    <artifactId>screw-driver</artifactId>
    <version>1.1.0</version>
</dependency>

创建代码与生成数据库表示例

  1. 定义 SdBean
  2. 添加生成模板 SdTemplate
  3. 设置数据库连接信息 SdDatabaseOptions
  4. 初始化 ScrewDriver 并执行创建

    public static void main(String[] args) throws Exception {
    // 创建一个实体描述
    SdBean bean = new SdBean();
    bean.setName(“user”).setRemark(“用户”);
    bean.addColumn(new SdColumn().setName(“id”).setType(SdType.LONG).setPrimary(true).setRemark(“用户的id”));
    bean.addColumn(new SdColumn().setName(“name”).setType(SdType.STRING).setLength(30).setRemark(“用户的名字”));
    bean.addColumn(new SdColumn().setName(“pwd”).setType(SdType.STRING).setLength(60).setRemark(“用户的的密码”));

    // 设置实体生成模板
    Map<String, SdTemplate> templates = new HashMap<String, SdTemplate>();
    templates.put("entity", new SdTemplate().setFile("JavaEntity.ftl").setPackageName("entity").setClassName("User"));
    templates.put("dao", new SdTemplate().setFile("Dao.ftl").setPackageName("dao").setClassName("Dao"));
    templates.put("service", new SdTemplate().setFile("Service.ftl").setPackageName("service").setClassName("Service"));
    templates.put("controller", new SdTemplate().setFile("Controller.ftl").setPackageName("controller").setClassName("Controller"));
    
    // 初始化数据库连接信息
    SdDatabaseOptions databaseOptions = new SdDatabaseOptions(MySQL.MYSQL_8_DERVER, "jdbc:mysql://localhost:3306/root?useUnicode=true&useSSL=false&serverTimezone=UTC");
    databaseOptions.setUser("root");
    databaseOptions.setPassword("root");
    
    // 初始化执行工具
    ScrewDriver screwDriver = ScrewDriver.instance(new ScrewDriverOptions(templates, databaseOptions));
    // 创建代码
    screwDriver.createCode(bean);
    // 生成表
    screwDriver.createTable(bean);
    

    }

读取数据库表信息并生成代码示例

  1. 添加生成模板 SdTemplate
  2. 设置数据库连接信息 SdDatabaseOptions
  3. 初始化 ScrewDriver
  4. 读取表信息并执行创建

    public static void main(String[] args) throws Exception {
    // 设置实体生成模板
    Map templates = new HashMap();
    templates.put(“entity”, new SdTemplate().setFile(“JavaEntity.ftl”).setPackageName(“entity”).setClassName(“User”));
    templates.put(“dao”, new SdTemplate().setFile(“Dao.ftl”).setPackageName(“dao”).setClassName(“Dao”));
    templates.put(“service”, new SdTemplate().setFile(“Service.ftl”).setPackageName(“service”).setClassName(“Service”));
    templates.put(“controller”, new SdTemplate().setFile(“Controller.ftl”).setPackageName(“controller”).setClassName(“Controller”));

    // 初始化数据库连接信息
    SdDatabaseOptions databaseOptions = new SdDatabaseOptions(MySQL.MYSQL_8_DERVER, "jdbc:mysql://localhost:3306/root?useUnicode=true&useSSL=false&serverTimezone=UTC");
    databaseOptions.setUser("root");
    databaseOptions.setPassword("root");
    
    // 初始化执行工具
    ScrewDriver screwDriver = ScrewDriver.instance(new ScrewDriverOptions(templates, databaseOptions));
    // 读取表信息
    SdClassContent content = screwDriver.readTable("root");
    // 创建代码
    screwDriver.createCode(content);
    

    }