当前位置: 首页 > news >正文

做外汇的官方网站南宁网站建设及推广

做外汇的官方网站,南宁网站建设及推广,莆田 网站建设,江苏泰州海陵区建设局网站修改了下idea自带的代码生成脚本,增加了脚本代码的注释,生成了controller,service,impl,mapper,里面都是空的,具体可以根据自己的代码习惯增加 代码生成脚本的使用可以看下使用 idea 生成实体类…

修改了下idea自带的代码生成脚本,增加了脚本代码的注释,生成了controller,service,impl,mapper,里面都是空的,具体可以根据自己的代码习惯增加
代码生成脚本的使用可以看下使用 idea 生成实体类代码

修改后的脚本代码

import com.intellij.database.model.DasTable
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
import com.intellij.database.model.ObjectKind
import java.io.*
import java.text.SimpleDateFormat/** Available context bindings:*   SELECTION   Iterable<DasObject>*   PROJECT     project*   FILES       files helper*/
/*** 对应类型转换配置* 数据库类型:java类型*/
typeMapping = [(~/(?i)tinyint|smallint|mediumint/)  : "Integer",(~/(?i)int/)                         : "Long",(~/(?i)bool|bit/)                    : "Boolean",(~/(?i)float|double|decimal|real/)   : "Double",(~/(?i)datetime|timestamp|date|time/): "Date",(~/(?i)/)                            : "String"
]/*** 程序入口*/
FILES.chooseDirectoryAndSave("选择文件夹", "选择controller、domain,service,mapper的上级目录,生成的代码将会保存到对应文件夹。") {dir -> SELECTION.filter { it instanceof DasTable }.each { generate(it, dir) }
}/*** 代码生成* @param table 表的对象* @param dir 选择的文件夹路径*/
def generate(table, dir) {String domainDir = "${dir}/domain"String domainClassName = javaName(table.getName(), true)String domainPackageName = getPackageName(domainDir)// 生成实体类// 这个utf8是解决乱码new File(domainDir, "${domainClassName}.java").withPrintWriter("UTF-8") {out -> generateDomain(out, domainClassName, table, domainPackageName)}// 生成mapperString mapperDir = "${dir}/mapper"String mapperClassName = "${domainClassName}Mapper"String mapperPackageName = getPackageName(mapperDir)new File(mapperDir, "${mapperClassName}.java").withPrintWriter("UTF-8") {out ->generateMapper(out, mapperClassName, mapperPackageName,domainClassName, domainPackageName)}// 生成serviceString serviceDir = "${dir}/service"String serviceClassName = "${domainClassName}Service"String servicePackageName = getPackageName(serviceDir)new File(serviceDir, "${serviceClassName}.java").withPrintWriter("UTF-8") { out -> generateService(out, serviceClassName, servicePackageName) }// 生成serviceImplString servicImplDir = "${serviceDir}/impl"String serviceImplClassName = "${serviceClassName}Impl"String serviceImplPackageName = getPackageName(servicImplDir)new File(servicImplDir, "${serviceImplClassName}.java").withPrintWriter("UTF-8") {out ->generateServiceImpl(out, serviceImplClassName, serviceImplPackageName,serviceClassName, servicePackageName, mapperPackageName,mapperClassName, domainClassName, domainPackageName)}// 生成ControllerString controllerDir = "${dir}/controller"String controllerClassName = "${domainClassName}Controller"String controllerPackageName = getPackageName(controllerDir)new File(controllerDir, "${controllerClassName}.java").withPrintWriter("UTF-8") {out ->generateController(out, controllerClassName, controllerPackageName,serviceImplClassName, serviceImplPackageName, serviceClassName,servicePackageName, domainClassName, domainPackageName)}}/*** 文件夹路径转换为包名* @param dir 文件夹路径* @return 包名*/
static String getPackageName(dir) {return dir.toString().replaceAll("\\\\", ".").replaceAll("/", ".").replaceAll("^.*src(\\.main\\.java\\.)?", "")
}
/*** 生成实体类* @param out 输出流* @param className 类名* @param table 数据库表对象* @param dir 文件夹路径*/
def generateDomain(out, className, table, domainPackageName) {def fields = calcFields(table)String tableName = table.getName();def comment = table.getComment();out.println "package $domainPackageName;"out.println ""out.println "import com.baomidou.mybatisplus.annotation.IdType;"out.println "import com.baomidou.mybatisplus.annotation.TableField;"out.println "import com.baomidou.mybatisplus.annotation.TableId;"out.println "import com.baomidou.mybatisplus.annotation.TableName;"out.println "import java.util.Date;"out.println "import com.fasterxml.jackson.annotation.JsonFormat;"out.println "import java.io.Serializable;"out.println "import lombok.Data;"out.println "import lombok.AllArgsConstructor;"out.println "import lombok.Builder;"out.println "import lombok.NoArgsConstructor;"out.println ""out.println "/**"out.println "* $comment"out.println "* @author zjx"out.println "*/"out.println "@Data"out.println "@TableName(\"$tableName\")"out.println "@NoArgsConstructor"out.println "@AllArgsConstructor"out.println "@Builder"out.println "public class $className implements Serializable{"out.println ""out.println "\t@TableField(exist = false)"out.println genSerialID()out.println ""fields.each() {// 输出注释if (isNotEmpty(it.commoent)) {out.println "\t/**"out.println "\t * ${it.commoent}"out.println "\t */"}if (it.type == "Date") {out.println "\t@JsonFormat(pattern = \"yyyy-MM-dd HH:mm:ss\")"}if (it.annos != "") out.println "  ${it.annos}"out.println "\tprivate ${it.type} ${it.name};"}out.println ""out.println "}"
}/*** 生成mapper* @param out 输出流* @param mapperClassName mapper类名* @param mapperPackageName mapper包名* @param domainClassName 实体类类名* @param domainPackageName 实体类包名*/
void generateMapper(out, mapperClassName, mapperPackageName, domainClassName,domainPackageName) {out.println "package $mapperPackageName;"out.println ""out.println "import $domainPackageName.$domainClassName;"out.println "import com.baomidou.mybatisplus.core.mapper.BaseMapper;"out.println "import org.apache.ibatis.annotations.Mapper;"out.println ""out.println "/**"out.println "* @author zjx"out.println "*/"out.println "@Mapper"out.println "public interface $mapperClassName extends BaseMapper<$domainClassName>{"out.println ""out.println "}"
}
/*** 生成service* @param out 输出流* @param serviceClassName service类名* @param servicePackageName service包名*/
void generateService(out, serviceClassName, servicePackageName) {out.println "package $servicePackageName;"out.println ""out.println "/**"out.println "* @author zjx"out.println "*/"out.println "public interface $serviceClassName {"out.println ""out.println "}"
}
/*** 生成ServiceImpl* @param out 输出流* @param serviceImplClassName serviceImpl类名* @param serviceImplPackageName serviceImpl包名* @param serviceClassName service类名* @param service包名* @param mapperPackageName mapper类名* @param mapperClassName mapper包名* @param domainClassName 实体类类名* @param domainPackageName 实体类包名*/
void generateServiceImpl(out, serviceImplClassName, serviceImplPackageName,serviceClassName, servicePackageName, mapperPackageName,mapperClassName, domainClassName, domainPackageName) {String lowerMapperClassName =mapperClassName.length() == 1 ? mapperClassName : mapperClassName[0].toLowerCase() + mapperClassName[1..-1];out.println "package $serviceImplPackageName;"out.println ""out.println "import $servicePackageName.$serviceClassName;"out.println "import $mapperPackageName.$mapperClassName;"out.println "import org.springframework.stereotype.Service;"out.println "import javax.annotation.Resource;"out.println ""out.println "/**"out.println "* @author zjx"out.println "*/"out.println "@Service"out.println "public class $serviceImplClassName implements $serviceClassName {"out.println "\t@Resource"out.println "\tprivate $mapperClassName $lowerMapperClassName;"out.println ""out.println "}"
}/**** 生成ServiceImpl* @param out 输出流* @param serviceImplClassName serviceImpl类名* @param serviceImplPackageName serviceImpl包名* @param serviceClassName service类名* @param service包名* @param controllerClassName controller类名* @param controllerPackageName controller包名* @param domainClassName 实体类类名* @param domainPackageName 实体类包名*/
void generateController(out, controllerClassName, controllerPackageName,serviceImplClassName, serviceImplPackageName, serviceClassName,servicePackageName, domainClassName, domainPackageName){String lowerServiceClassName =serviceClassName.length() == 1 ? serviceClassName : serviceClassName[0].toLowerCase() + serviceClassName[1..-1];String lowerDomainClassName =domainClassName.length() == 1 ? domainClassName : domainClassName[0].toLowerCase() + domainClassName[1..-1];out.println "package $serviceImplPackageName;"out.println ""out.println "import $servicePackageName.$serviceClassName;"out.println "import javax.annotation.Resource;"out.println "import org.springframework.web.bind.annotation.RestController;"out.println "import org.springframework.web.bind.annotation.RequestMapping;"out.println ""out.println "/**"out.println "* @author zjx"out.println "*/"out.println "@RestController"out.println "@RequestMapping(\"/${lowerDomainClassName}\")"out.println "public class $controllerClassName {"out.println "\t@Resource"out.println "\tprivate $serviceClassName $lowerServiceClassName;"out.println ""out.println "}"
}/*** 读取处理表的数据* @param table 表的对象* @return 表的数据*/
def calcFields(table) {DasUtil.getColumns(table).reduce([]) { fields, col ->def spec = Case.LOWER.apply(col.getDataType().getSpecification())def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.valuedef comm = [colName : col.getName(),name    : javaName(col.getName(), false),type    : typeStr,commoent: col.getComment(),annos   : ""]if ("主键".equals(col.getComment().toString()))comm.annos += "\t@TableId(type = IdType.AUTO)"fields += [comm]}
}/*** 表名转换为类名* @param tableName 表名* @param capitalize 是否将首字母转大写* @return 转换后的类名*/
String javaName(tableName, capitalize) {String s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(tableName).collect { Case.LOWER.apply(it).capitalize() }.join("").replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]
}static def isNotEmpty(content) {return content != null && content.toString().trim().length() > 0
}/*** 生成serialVersionUID*/
static String genSerialID() {return "\tprivate static final long serialVersionUID =  " + Math.abs(new Random().nextLong()) + "L;"
}

文章转载自:
http://pyrotechnist.c7500.cn
http://siliqua.c7500.cn
http://conger.c7500.cn
http://cheeseparing.c7500.cn
http://herbivorous.c7500.cn
http://passeriform.c7500.cn
http://diamagnetism.c7500.cn
http://canonicity.c7500.cn
http://structural.c7500.cn
http://demeanour.c7500.cn
http://denizen.c7500.cn
http://yonder.c7500.cn
http://boiserie.c7500.cn
http://fluoroscopy.c7500.cn
http://welt.c7500.cn
http://tarboard.c7500.cn
http://frontality.c7500.cn
http://innerve.c7500.cn
http://canular.c7500.cn
http://idle.c7500.cn
http://crap.c7500.cn
http://termination.c7500.cn
http://empyreumatic.c7500.cn
http://indigitation.c7500.cn
http://cipherkey.c7500.cn
http://clementina.c7500.cn
http://malconformation.c7500.cn
http://abhor.c7500.cn
http://eighteenthly.c7500.cn
http://detectible.c7500.cn
http://ganaderia.c7500.cn
http://hackmanite.c7500.cn
http://upholsterer.c7500.cn
http://fluvio.c7500.cn
http://mugful.c7500.cn
http://powerpc.c7500.cn
http://illegibly.c7500.cn
http://cachou.c7500.cn
http://premiss.c7500.cn
http://semidetached.c7500.cn
http://pansexualism.c7500.cn
http://bathtub.c7500.cn
http://main.c7500.cn
http://knuckleheaded.c7500.cn
http://stakeout.c7500.cn
http://pyrolysis.c7500.cn
http://pinfall.c7500.cn
http://stridulant.c7500.cn
http://convict.c7500.cn
http://seccotine.c7500.cn
http://habitability.c7500.cn
http://scourway.c7500.cn
http://rely.c7500.cn
http://brewage.c7500.cn
http://naturalistic.c7500.cn
http://incredulity.c7500.cn
http://unprosperous.c7500.cn
http://intrude.c7500.cn
http://sonsie.c7500.cn
http://colombia.c7500.cn
http://carbamoyl.c7500.cn
http://milt.c7500.cn
http://hyperopia.c7500.cn
http://echocardiography.c7500.cn
http://comorin.c7500.cn
http://irrefutability.c7500.cn
http://japheth.c7500.cn
http://zante.c7500.cn
http://coprostasis.c7500.cn
http://sidereal.c7500.cn
http://dardan.c7500.cn
http://arcady.c7500.cn
http://tainture.c7500.cn
http://instrumental.c7500.cn
http://syringe.c7500.cn
http://istle.c7500.cn
http://abuse.c7500.cn
http://madden.c7500.cn
http://kindliness.c7500.cn
http://nifontovite.c7500.cn
http://uricase.c7500.cn
http://firmamental.c7500.cn
http://telomerization.c7500.cn
http://melomania.c7500.cn
http://superfusate.c7500.cn
http://contraption.c7500.cn
http://amortization.c7500.cn
http://helpmate.c7500.cn
http://patternmaking.c7500.cn
http://hammock.c7500.cn
http://squad.c7500.cn
http://dentist.c7500.cn
http://gct.c7500.cn
http://liger.c7500.cn
http://nonadmission.c7500.cn
http://borer.c7500.cn
http://iridescence.c7500.cn
http://gasproof.c7500.cn
http://perambulatory.c7500.cn
http://oceanarium.c7500.cn
http://www.zhongyajixie.com/news/76270.html

相关文章:

  • 淘宝网站建设的目的外贸seo推广公司
  • 网站建设未来发展前景泉州关键词优化软件
  • 短视频运营方案书范文安徽网络推广和优化
  • 成都 网站建设培训班上海百度公司地址在哪里
  • index 石家庄网站建设企业宣传推广
  • 河北住房和城乡建设厅网站6上海aso苹果关键词优化
  • 鸭梨网站建设搜索引擎关键词优化方案
  • 网站后台添加东西不能粘贴杭州网站搜索排名
  • 英文自助建站百度导航最新版本
  • 惠阳做网站宁波seo网络推广外包报价
  • 嘉兴网站搜索排名百度网页搜索
  • 石家庄网站建设wsjz网站优化排名易下拉软件
  • seo运营学校宁波seo外包哪个品牌好
  • 做网站做的好的公司有哪些重庆seo薪酬水平
  • 如何制作营销网站百度搜索入口
  • 安徽省建设工程信息网站进不了cms自助建站系统
  • 龙口建网站公司价格百度推广关键词越多越好吗
  • 网站模板与网站开发百度网站关键词排名助手
  • 教人做窗帘的视频网站百度开户
  • 做卡通的素材网站自己怎么优化网站排名
  • ppt现成作品重庆百度推广排名优化
  • 做泌尿科网站价格西安seo优化工作室
  • 做网站什么字体营销网站建设软件下载
  • 1688网站可以做全屏吗百度推广在线客服
  • 想建立什么网站吗域名反查
  • wordpress首页调用菜单seo推广代理
  • WordPress网站结构优化上海全网营销推广
  • 丹东东港优化资讯
  • 跟做网站的人谈什么百度seo排名优化费用
  • 如何用表格做网站哈尔滨百度网络推广