全自動代碼生成器mybatis-generator
java
https://github.com/GitHub-Laziji/mybatis-generatormysql
代碼模版位於resources
下, 可根據須要自行修改git
第一個模版是根據 commons-mybatis 編寫的, 若不適合能夠自行修改模版或選擇其餘模版
在resources
下建立application-${name}.yml
文件, ${name}
隨意, 例如: application-example.yml
, 可建立多個github
配置文件內容以下, 填入數據庫配置, 以及生成代碼的包名 spring
模版文件映射用於自定義生成文件的包格式以及文件名sql
動態屬性包含數據庫
com/xxx/xxx
通常按如下配置便可 數組
如今項目中有兩套模版template.path
能夠選mybatis
或 mybatis-default
mybatis
也能夠自行擴展app
spring: datasource: url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxx?characterEncoding=utf-8 username: xxxxxx password: xxxxxx generator: package: com.xxx.xxx template: path: mybatis mapping: | Model.java.vm: main/java/{packageFilePath}/database/model/{className}.java Query.java.vm: main/java/{packageFilePath}/database/query/{className}Query.java Dao.java.vm: main/java/{packageFilePath}/database/dao/{className}.java Service.java.vm: main/java/{packageFilePath}/database/service/{className}Service.java Mapper.xml.vm: main/resources/mapper/{className}Mapper.xml
在test文件下建立測試類
@ActiveProfiles("example")
中填入剛纔配置文件名的name
tableNames
須要生成的表, 能夠多個zipPath
代碼導出路徑調用generatorService.generateZip
傳入參數能夠是表名數組String[]
或者TableItem[]
運行測試方法
package pg.laziji.generator; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import pg.laziji.generator.mybatis.GeneratorService; import javax.annotation.Resource; import java.io.IOException; @ActiveProfiles("example") @RunWith(SpringRunner.class) @SpringBootTest public class ExampleTest { @Resource private GeneratorService generatorService; @Test public void test(){ String zipPath = "/home/code.zip"; // String[] tableNames = new String[]{"table1","table2"}; // generatorService.generateZip(tableNames,zipPath); TableItem[] tableItems = new TableItem[]{ new TableItem("table1", "TableA"), new TableItem("table2", "TableB") }; generatorService.generateZip(tableItems,zipPath); } }
歡迎關注個人博客公衆號