日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Beetlsql自定义生成entity,mapper,md代码

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Beetlsql自定义生成entity,mapper,md代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

三個模板文件?

mapper.btl

package ${package}; import org.beetl.sql.core.annotatoin.*; import org.beetl.sql.core.db.KeyHolder; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.core.mapper.BaseMapper; ${imports}public interface ${className} extends BaseMapper<${entityClass}> {// }

?

md.btl

<%var tableAlias = alias==null?"":(alias+".");//如果沒有設置alias,則默認為t %> sample === * 注釋###select ${PS}use("cols")${PE} from ${tableName} ${alias} where ${PS}use("condition")${PE}cols ===<%print("\t");for(col in cols){var colName=tableAlias+col+(colLP.last?"":","); print(colName);}%> updateSample ===<%print("\t");for(col in cols){var colName=tableAlias+col;var attr = @nc.getPropertyName(col);print(colName+"="+PS+attr+PE);if(!colLP.last){print(",");}}%>condition ===1 = 1 <%for(col in cols){var colName=tableAlias+col;var attr = @nc.getPropertyName(col);%>${SS}if(!isEmpty(${attr})){${SE}and ${colName}=${PS+attr+PE}${SS}}${SE}<%}%> View Code

?

pojo.btl?

因為我想用lombok?所以使用@Setter ..注解

package ${package}; import lombok.*; ${imports} ${implSerializable?"import java.io.Serializable;"}@Table(name="${catalog}.${table}") @Setter @Getter @NoArgsConstructor public class ${className} ${!isEmpty(ext)?"extends "+ext} ${implSerializable?"implements Serializable"} {<%for(attr in attrs){if(!isEmpty(attr.comment)){%>/**${attr.comment}*/<% }%>private ${attr.type} ${attr.name} ;<%}%>}

?

BeetlGenCode.java

package com.github.tungss.auth;import org.beetl.sql.core.*; import org.beetl.sql.core.db.*; import org.beetl.sql.core.kit.*; import org.beetl.sql.ext.gen.*;import java.io.*; import java.util.Set;/*** 生成dao代碼.*/public class BeetlGenCode {// ========數據庫配置=========private static String driver = "com.mysql.cj.jdbc.Driver";private static String url = "jdbc:mysql:///auth?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC";private static String userName = "root";private static String password = "123456";// ========模板的路徑, 示例是spring boot的[src/main/resources/beetlsqlTemplate 文件夾]=========private static String templatePath = "/beetlsqlTemplate";// ========md生成路徑 要提前創建=========private static String mdPath = "/sql";// ========生成實體類所在的包=========private static String pojoPkg = "com.test.entity";// ========生成mapper類所在的包=========private static String mapperPkg = "com.test.dao";/*** 入口*/public static void main(String[] args) throws Exception {genAll();}public static void genAll() throws Exception {//準備工作ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);DBStyle mysql = new MySqlStyle();SQLLoader loader = new ClasspathLoader(mdPath);UnderlinedNameConversion nc = new UnderlinedNameConversion();SQLManager sqlManager = new SQLManager(mysql, loader, source, nc, null);GenConfig config = new GenConfig();config.setDisplay(false);config.setPreferBigDecimal(true);System.out.println("======生成代碼======");Set<String> tables = sqlManager.getMetaDataManager().allTable();for (String table : tables) {System.out.printf("%-20s %s\n",table , "生成完畢");//默認生成實體類的實現 sqlManager.genPojoCode(table, pojoPkg, config);//自定義實現 genMd(sqlManager, config, table);//自定義實現 genMapper(sqlManager, config, table);}System.out.println("=====生成完畢=====");}/*** 生成md文件*/public static void genMd(SQLManager sqlManager, GenConfig config, String table) throws IOException {String fileName = StringKit.toLowerCaseFirstOne(sqlManager.getNc().getClassName(table));if (config.getIgnorePrefix() != null && !config.getIgnorePrefix().trim().equals("")) {fileName = fileName.replaceFirst(StringKit.toLowerCaseFirstOne(config.getIgnorePrefix()), "");fileName = StringKit.toLowerCaseFirstOne(fileName);}String target = GenKit.getJavaResourcePath() + "/" + mdPath + "/" + fileName + ".md";TableDesc desc = sqlManager.getMetaDataManager().getTable(table);FileWriter writer = new FileWriter(new File(target));MDCodeGen mdCodeGen = new MDCodeGen();mdCodeGen.setMapperTemplate(config.getTemplate(templatePath + "/md.btl"));mdCodeGen.genCode(sqlManager.getBeetl(), desc, sqlManager.getNc(), null, writer);writer.close();}/*** 生成mapper*/public static void genMapper(SQLManager sqlManager, GenConfig config, String table) {MapperCodeGen mapperCodeGen = new MapperCodeGen(mapperPkg);mapperCodeGen.setMapperTemplate(config.getTemplate(templatePath + "/mapper.btl"));mapperCodeGen.genCode(pojoPkg, sqlManager.getNc().getClassName(table), sqlManager.getMetaDataManager().getTable(table), null, false);} }

?

轉載于:https://www.cnblogs.com/startnow/p/10230274.html

總結

以上是生活随笔為你收集整理的Beetlsql自定义生成entity,mapper,md代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。