日韩性视频-久久久蜜桃-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代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲色图首页 | 亚洲综合不卡 | 欧美日韩中文字幕视频 | 天天色影 | 日本高清在线观看 | 少妇做爰xxxⅹ性视频 | 天天干夜夜想 | 久久夜夜操妹子 | 黄色视屏在线看 | 五月天婷婷丁香花 | 91成人在线免费 | 性生活免费网站 | 国产18照片色桃 | 大陆av片 | 日韩免费视频网站 | 久热欧美 | 自拍偷拍专区 | 国产稀缺真实呦乱在线 | 精品成人一区二区三区 | 国产13页| 色哟哟精品观看 | 伊人综合影院 | 中文av一区二区三区 | 青青草原伊人 | 精品丰满人妻无套内射 | 思思久久精品 | 国产精品999在线观看 | 久久久久综合 | 天天爽夜夜爽夜夜爽精品 | 欧洲金发美女大战黑人 | 啪啪免费网站 | 亚洲视频一区二区三区在线观看 | 久久免费看少妇高潮v片特黄 | 69av导航| 欧美一级影院 | 国产在线一区视频 | 秋霞影院午夜伦 | 免费污污视频在线观看 | 久久中文字幕人妻熟av女蜜柚m | 国产精品麻豆欧美日韩ww | 久久久久国产视频 | 日韩手机在线视频 | 国产后入又长又硬 | 名人明星三级videos | 337p日本欧洲亚洲大胆精筑 | 公侵犯人妻一区二区三区 | 国产真实交换夫妇视频 | 色女人影院| 国产精品探花在线观看 | 天天综合欧美 | 亚洲hhh | 精品+无码+在线观看 | 我和我的太阳泰剧在线观看泰剧 | 中文在线不卡 | 最新黄色在线 | 亚洲成人精品网 | 亚洲逼图 | 成人欧美一区二区三区黑人 | 日本视频不卡 | 亚洲欧美久久 | 男女免费看 | 日韩三级av | 777精品视频 | 国产无遮挡呻吟娇喘视频 | 免费在线色视频 | 在线免费观看国产精品 | a级免费网站 | 天天爱天天做天天爽 | 国产偷人爽久久久久久老妇app | 97超碰伊人 | 亚洲高清色 | 欧美日韩偷拍视频 | 中文字幕狠狠 | 国产 中文 字幕 日韩 在线 | 性欧美bb | 天天干天天爽天天操 | 国产精品日韩在线 | 青娱乐av在线 | 国产剧情在线视频 | 狠狠的干狠狠的操 | 男人晚上看的视频 | 95国产精品 | 黄色同人网站 | 久久aaa | 99国产热| 国产高清不卡视频 | 99国产精品白浆在线观看免费 | 全黄性性激高免费视频 | 国产精品视频不卡 | 亚洲宅男天堂 | av福利在线播放 | 伊人久久精品一区二区三区 | 午夜婷婷在线观看 | 女人裸体无遮挡 | 欧美深夜福利 | 在线黄色免费网站 | 国产做受视频 | 日韩视频免费观看高清完整版 | 国产精品高潮呻吟久久aⅴ码 |