本地数据库连接地址填写,本地数据库连接失败

首页 > 实用技巧 > 作者:YD1662023-06-27 03:01:36

添加里面的内容

  1. 修改idea为自己名字 的地方可以修改作者名字为自己的
  2. schema = \"后面添加自己的表空间名称(mysql可以不添加, 不用这个schema属性也行) 这里可以根据提示修改

importcom.intellij.database.model.DasTable importcom.intellij.database.model.ObjectKind importcom.intellij.database.util.Case importcom.intellij.database.util.DasUtil importjava.text.SimpleDateFormat /* *Availablecontextbindings: *SELECTIONIterable<DasObject> *PROJECTproject *FILESfileshelper */ packageName="" 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)blob|binary|bfile|clob|raw|image/):"InputStream", (~/(?i)/):"String" ] FILES.chooseDirectoryAndSave("Choosedirectory","Choosewheretostoregeneratedfiles"){dir-> SELECTION.filter{itinstanceofDasTable&&it.getKind()==ObjectKind.TABLE}.each{generate(it,dir)} } defgenerate(table,dir){ defclassName=javaName(table.getName(),true) deffields=calcFields(table) packageName=getPackageName(dir) PrintWriterprintWriter=newPrintWriter(newOutputStreamWriter(newFileOutputStream(newFile(dir,className ".java")),"UTF-8")) printWriter.withPrintWriter{out->generate(out,className,fields,table)} //newFile(dir,className ".java").withPrintWriter{out->generate(out,className,fields,table)} } //获取包所在文件夹路径 defgetPackageName(dir){ returndir.toString().replaceAll("\\\\",".").replaceAll("/",".").replaceAll("^.*src(\\.main\\.java\\.)?","") ";" } defgenerate(out,className,fields,table){ out.println"package$packageName" out.println"" out.println"importjavax.persistence.Column;" out.println"importjavax.persistence.Entity;" out.println"importjavax.persistence.Table;" out.println"importjavax.persistence.Id;" out.println"importjavax.persistence.GeneratedValue;" out.println"importjava.io.Serializable;" Settypes=newHashSet() fields.each(){ types.add(it.type) } if(types.contains("Date")){ out.println"importjava.util.Date;" } if(types.contains("InputStream")){ out.println"importjava.io.InputStream;" } out.println"" out.println"/**\n" "*@Description\n" "*@Authoridea\n" //1.修改idea为自己名字 "*@Date" newSimpleDateFormat("yyyy-MM-dd").format(newDate()) "\n" "*/" out.println"" out.println"@Entity" out.println"@Table(name=\"" table.getName() "\",schema=\"\")"//2.schema=\"后面添加自己的表空间名称(mysql可以不添加,不用这个schema属性也行) out.println"publicclass$classNameimplementsSerializable{" out.println"" out.printlngenSerialID() fields.each(){ out.println"" //输出注释 if(isNotEmpty(it.commoent)){ out.println"\t/**" out.println"\t*${it.commoent.toString()}" out.println"\t*/" } if((it.annos "").indexOf("[@Id]")>=0)out.println"\t@Id" if(it.annos!="")out.println"${it.annos.replace("[@Id]","")}" //输出成员变量 out.println"\tprivate${it.type}${it.name};" } //输出get/set方法 fields.each(){ out.println"" out.println"\tpublic${it.type}get${it.name.capitalize()}(){" out.println"\t\treturnthis.${it.name};" out.println"\t}" out.println"" out.println"\tpublicvoidset${it.name.capitalize()}(${it.type}${it.name}){" out.println"\t\tthis.${it.name}=${it.name};" out.println"\t}" } //输出toString方法 out.println"" out.println"\t@Override" out.println"\tpublicStringtoString(){" out.println"\t\treturn\"TpApiConfig{\" " fields.each(){ out.println"\t\t\t\t\"${it.name}='\" ${it.name} '\\'' " } out.println"\t\t\t\t'}';" out.println"\t}" out.println"" out.println"}" } defcalcFields(table){ DasUtil.getColumns(table).reduce([]){fields,col-> defspec=Case.LOWER.apply(col.getDataType().getSpecification()) deftypeStr=typeMapping.find{p,t->p.matcher(spec).find()}.value defcomm=[ colName:col.getName(), name:javaName(col.getName(),false), type:typeStr, commoent:col.getComment(), annos:"\t@Column(name=\"" col.getName() "\")"] if("id".equals(Case.LOWER.apply(col.getName()))) comm.annos =["@Id"] fields =[comm] } } //已经修改为使用javaName,如果有需要可以在defclassName=javaName(table.getName(),true)中修改为javaClassName //处理类名(这里是因为我的表都是以t_命名的,所以需要处理去掉生成类名时的开头的T, //如果你不需要那么请查找用到了javaClassName这个方法的地方修改为javaName即可) defjavaClassName(str,capitalize){ defs=com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str) .collect{Case.LOWER.apply(it).capitalize()} .join("") .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/,"_") //去除开头的Thttp://developer.51cto.com/art/200906/129168.htm s=s[1..s.size()-1] capitalize||s.length()==1?s:Case.LOWER.apply(s[0]) s[1..-1] } defjavaName(str,capitalize){ //defs=str.split(/(?<=[^\p{IsLetter}])/).collect{Case.LOWER.apply(it).capitalize()} //.join("").replaceAll(/[^\p{javaJavaIdentifierPart}]/,"_") //capitalize||s.length()==1?s:Case.LOWER.apply(s[0]) s[1..-1] defs=com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str) .collect{Case.LOWER.apply(it).capitalize()} .join("") .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/,"_") capitalize||s.length()==1?s:Case.LOWER.apply(s[0]) s[1..-1] } defisNotEmpty(content){ returncontent!=null&&content.toString().trim().length()>0 } staticStringchangeStyle(Stringstr,booleantoCamel){ if(!str||str.size()<=1) returnstr if(toCamel){ Stringr=str.toLowerCase().split('_').collect{cc->Case.LOWER.apply(cc).capitalize()}.join('') returnr[0].toLowerCase() r[1..-1] }else{ str=str[0].toLowerCase() str[1..-1] returnstr.collect{cc->((char)cc).isUpperCase()?'_' cc.toLowerCase():cc}.join('') } } staticStringgenSerialID(){ return"\tprivatestaticfinallongserialVersionUID=" Math.abs(newRandom().nextLong()) "L;" }

表上右键, 选择自己写的脚本生成实体类

效果如下:

本地数据库连接地址填写,本地数据库连接失败(9)

,
上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.