# screw-driver
**Repository Path**: mirren/screw-driver
## Basic Information
- **Project Name**: screw-driver
- **Description**: ScrewDriver是一个用于生成代码、创建或读取数据库表信息的工具包,该工具想达到的目的是藉着IDE的代码块,通过快捷键快速生成代码,或成为其他生成工具的基础库!
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://mirren.gitee.io/screw-driver-docs/
- **GVP Project**: No
## Statistics
- **Stars**: 11
- **Forks**: 10
- **Created**: 2019-10-26
- **Last Updated**: 2024-10-08
## Categories & Tags
**Categories**: code-generator
**Tags**: None
## README
# 起步
ScrewDriver是一个用于生成代码、创建或读取数据库表信息的工具包,该工具想达到的目的是藉着IDE的代码块,通过快捷键快速生成代码,或成为其他生成工具的基础工具!
## 使用帮助
使用文档: [http://mirren.gitee.io/screw-driver-docs](http://mirren.gitee.io/screw-driver-docs/)
```
运行环境要求: java >= 1.6
```
QQ交流群:519714660
[在B站中查看基本使用教程视频](https://www.bilibili.com/video/av76507691/)
## 添加依赖
``` XML
org.mirrentools
screw-driver
[1.0.0,2.0.0)
```
## 读取数据库表信息并生成代码示例
1. 初始化[ScrewDriver](http://mirren.gitee.io/screw-driver-docs/start/core-class-intro.html#screwdriver-%E5%B7%A5%E5%85%B7)
2. 读取表信息并执行创建
``` java
public static void main(String[] args) throws Exception {
// 初始化执行工具
ScrewDriver screwDriver = ScrewDriver.instance(new ScrewDriverOptions(databaseOptions));
// 读取表信息
SdClassContent content = screwDriver.readTable("root");
// 创建代码
screwDriver.createCode(content,templates);
}
```
## 仅创建代码示例
1. 定义 [SdBean](http://mirren.gitee.io/screw-driver-docs/start/core-class-intro.html#sdbean-%E5%AE%9E%E4%BD%93%E6%8F%8F%E8%BF%B0)
2. 初始化[ScrewDriver](http://mirren.gitee.io/screw-driver-docs/start/core-class-intro.html#screwdriver-%E5%B7%A5%E5%85%B7)并执行
``` java
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("用户的的密码"));
// 初始化执行工具
ScrewDriver screwDriver = ScrewDriver.instance(new ScrewDriverOptions());
// 创建代码
screwDriver.createCode(bean,templates);
}
```
## 创建代码与生成表示例
1. 定义 [SdBean](http://mirren.gitee.io/screw-driver-docs/start/core-class-intro.html#sdbean-%E5%AE%9E%E4%BD%93%E6%8F%8F%E8%BF%B0)
4. 初始化 [ScrewDriver](http://mirren.gitee.io/screw-driver-docs/start/core-class-intro.html#screwdriver-%E5%B7%A5%E5%85%B7) 并执行创建
``` java
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("用户的的密码"));
// 初始化执行工具
ScrewDriver screwDriver = ScrewDriver.instance(new ScrewDriverOptions(databaseOptions));
// 创建代码
screwDriver.createCode(bean,templates);
// 生成表
screwDriver.createTable(bean);
}
```
## templates与databaseOptions示例
```
// 设置实体生成模板
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");
```