EasyCode(三)MybatisPlus(组)模板语法之dao.java.vm及service.java.vm
EasyCode(三)MybatisPlus(组)模板语法(从简到难)之dao.java.vm及service.java.vm
前言
EasyCode本身自带多个组,默认是default组,但是default生成的代码比较古老了,我就讲解MybatisPlus这个组里面的模块的语法,这张讲解最简单的dao.java.vm,带大家入门。
文章目录
一、dao.java.vm
1.打开 EasyCode的Template选择dao.java.vm
在Setting-> Other Setting->EasyCode->Template Group Name选择MybatisPlus

2.语法讲解
EasyCode使用的velocity 模板引擎,基本语法就不讲解了,没有一点基础的同学,可以去参考下 velocity 模板引擎基本语法
2.1 $!{define.vm}
可以看到他的注解是导入宏定义,define.vm这个文件是在Setting-> Other Setting->EasyCode->Global Config里面。引入公共的模块,可以把它看成java代码引入其他工具类的,引入的模块封装一些公共方法,供其他模块引用。define.vm这个文件里面有很多方法,最下面的一个方法可以清楚看出是getSetMethod,这个给entity.java.vm使用

2.2 #setTableSuffix(“Dao”)
setTableSuffix 这个方法可以从公共文件define.vm里面找到

因为说明的内容有特殊符号,所以在java代码块里面解释
$suffix 是参数 #setTableSuffix("Dao") 即为"Dao"传进去
#set($tableName = $!tool.append($tableInfo.name, $suffix))这段代码什么意思???
tool是EasyCode内部自带的工具类,是找不到引用的地方的,不过从tool的方法,我们就可以猜出来什么意思,
tool.append不就是字符串的连接吗?
怎么证明???
证明方法
我们在dao.java.vm 新增加加入一段表达式$!tool.append($tableInfo.name, "Dao")
选择实时按钮

结果

可以看出的确是tool.append就是字符串的连接
$tableInfo.name 为TestT10
原表名test_t_10,系统自动将test_t_10转化成TestT10封装到tableInfo.name对象里面,所以我们可以直接引用
2.3 #save(“/dao”, “Dao.java”)
save这个方法也可以从公共文件define.vm里面找到

可以看出
#macro(save $path $fileName)
$!callback.setSavePath($tool.append($tableInfo.savePath, $path))
$!callback.setFileName($tool.append($tableInfo.name, $fileName))
$tableInfo.savePath
$tableInfo.savePath 就是我们在生成代码的时候,选择Path的路径,如下图,实时调试的时候,是为空,这个正常
.../testeasycode/src/main/java/io/renren
$tool.append($tableInfo.savePath, $path) $path传入"/dao"生成
../testeasycode/src/main/java/io/renren/dao
意思就是将TestT10Dao.java文件生成在该目录下
$tool.append($tableInfo.name, $fileName)
$fileName传入"Dao.java" 就是TestT10Dao.java文件名称
callback.setSavePath callback.setFileName系统自带方法,目的是将需要生成到哪个目录下和文件名称,设置在callback这个对象的属性下面,程序后面会读取这个属性,为生成文件提供所需要的参数
#end

2.4 #setPackageSuffix(“dao”)

#macro(setPackageSuffix $suffix)
#if($suffix!="")package #end#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}.#{end}$!suffix;
#end
#end
这个很简单吧,就是生成引用的package路径
$tableInfo.savePackageName就是我们在生成代码的时候,选择Package,如下图。实时调试的时候,是为空的,因为还没有选择Package,这个正常
#if($tableInfo.savePackageName!="")$!{tableInfo.savePackageName}. 表示
tableInfo.savePackageName 不为空的时候,生成tableInfo.savePackageName加.
生成package io.ren.dao
里面表达式#{end} 没有看懂,基本上不用改这里的,你们有兴趣可以去深挖下

2.5 其他部分

都是系统封装好的,可以直接引用
$!{tableInfo.savePackageName} 上面讲过 保持路径 io.renren
$!{tableName} 在上面讲过 define.vm文件里面 ,通过#setTableSuffix("Dao") 方法 #set($tableName = $!tool.append($tableInfo.name, $suffix))生成的
$!tableInfo.name 上面也讲过这个 系统自带的封装好的 为TestT10
#tableComment("表数据库访问层") 下面 也在define.vm文件里面,可以看到里面都是系统已经封装好的的
#macro(tableComment $desc)
/**
* $!{tableInfo.comment}($!{tableInfo.name})$desc
*
* @author $!author
* @since $!time.currTime()
*/
#end
二、service.java.vm
从service.java.vm内容可以看出,跟dao.java.vm内容几乎一样的,所以就不再讲解了,参考下dao.java.vm
总结
以上就是今天要讲的内容,本文MybatisPlus(组)模板语法之dao.java.vm及service.java.vm讲解,EasyCode模块语法第一章,如果这个部分大家都看懂了,后面其他的模块也很快能懂。
更多推荐
所有评论(0)