JavaWeb界面在线配置代码生成器
關于直接main方法運行生成代碼可參考我的這篇文章:MP實戰(zhàn)系列(六)之代碼生成器講解
在線配置主要參考jeesite和jeecg,gun等開源項目,但是與它們相比又有很多不同?
與jeesite相比,jeesite采用的自己重新改裝的MyBatis和使用freemarker模板進行在線代碼配置生成;與jeecg相比,jeecg的持久層叫minidao,該dao按照其官方文檔所說,即具有Hibernate的全自動性,又兼有MyBatis的靈活性。與gun相比,gun的與我該在線配置代碼生成器,比較相似,但總的來說,并不一樣。
關于jeesite開源地址可以參考該網址:https://gitee.com/thinkgem/jeesite4
關于jeecg開源地址可以參考該網址:https://gitee.com/jeecg
我的關于EasyPoi導出Excel和EasyPoi以Excel格式批量錄入數(shù)據(jù),均采用jeecg的開源項目EasyPoi。
gun的話,我之所以與其不一樣,是因為其代碼生成器以zip包形式生成相關表代碼。而我直接就是在頁面上輸入路徑,直接在本地生成,當然了,生成以后還不能直接用,需要導入本地,但是總的來說,改動幾乎為零,與之前我所提到過的MyBatis的逆向工程對比而言。
當然了,也不能完全否定MyBatis的逆向工程,畢竟只要項目結構和架構設計妥當還是很有效率的。
關于MyBatis的逆向工程可以參考我的這兩篇博文:
動態(tài)web項目的逆向工程地址為:mybatis逆向工程之動態(tài)web項目
Maven工程的逆向工程地址為:mybatis逆向工程之maven工程
在線配置代碼生成主要是為了提高研發(fā)人員的工作效率。之前我就強調過,DRY原則的重要性,并為此寫了這篇文章編程之代碼抽象三原則,大家可以借鑒和參考。
?
下面開始進入正題講解在線配置代碼生成器的思路:
首先準備環(huán)境:JDK8+MAVEN3+Eclipse或IDEA+Spring+MyBatis Plus+SpringMVC
一、導入MAVEN依賴
以下依賴,是我公司中幾個項目比較通用的依賴,大家可以直接導入進來即可。當然了,建議阿里云私服,因為在maven公共倉庫下載如下依賴,對于網速具有一定的要求,記得之前研究某個開源技術是,光下載依賴就耽誤我不少時間,而且有的時候因為本地倉庫依賴沖突問題或者其他意外問題使對應的開源項目暫時無法運行起來。
關于線上私服搭建可以參考我的這篇文章:Maven搭建私服
<properties><!-- 文件拷貝時的編碼 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- 編譯時的編碼 --> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <spring.version>4.3.13.RELEASE</spring.version><junit.version>4.12</junit.version><druid.version>1.1.0</druid.version><fastjson.version>1.2.8</fastjson.version><mybaitsplus.version>2.1.8</mybaitsplus.version><mysql.version>5.1.38</mysql.version><log4j.version>1.2.17</log4j.version><slf4j.version>1.7.19</slf4j.version><aspectjweaver.version>1.8.8</aspectjweaver.version><fileupload.version>1.3.1</fileupload.version><jstl.version>1.2</jstl.version><commons-io.version>2.5</commons-io.version><commons-fileupload.version>1.3.1</commons-fileupload.version><ruedigermoeller-fst.version>2.56</ruedigermoeller-fst.version><json.version>20170516</json.version><dozer.version>5.5.1</dozer.version><!-- --><runtime.version>7.0.0.Final</runtime.version></properties><dependencies><!-- redis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.1.0</version> </dependency><!-- spring-data-redis --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.0.2.RELEASE</version></dependency><!-- mybatis-ehcache --><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.0.3</version></dependency><!-- drools規(guī)則引擎 --><dependency><groupId>org.kie</groupId><artifactId>kie-api</artifactId><version>${runtime.version}</version></dependency><dependency><groupId>org.drools</groupId><artifactId>drools-core</artifactId><version>${runtime.version}</version></dependency><dependency><groupId>org.drools</groupId><artifactId>drools-decisiontables</artifactId><version>${runtime.version}</version></dependency><dependency><groupId>org.jbpm</groupId><artifactId>jbpm-test</artifactId><version>${runtime.version}</version></dependency><!-- JUnit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><!-- Spring MVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version><type>jar</type><scope>compile</scope></dependency><!-- AOP --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>${aspectjweaver.version}</version></dependency><!-- FileUpload --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${fileupload.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><!-- Mybatis-Plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>${mybaitsplus.version}</version></dependency><!-- Mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- Druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!-- FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><!-- Log --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.2</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency><dependency><groupId>de.ruedigermoeller</groupId><artifactId>fst</artifactId><version>${ruedigermoeller-fst.version}</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><!-- Json in java --><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency><!-- Email --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.4</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><!-- 條形碼、二維碼生成 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.0</version></dependency><!-- User Agent --><dependency><groupId>eu.bitwalker</groupId><artifactId>UserAgentUtils</artifactId><version>1.20</version></dependency><!-- Apache HTTP --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></dependency><!-- Jsoup HTTP --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.9.1</version></dependency><!-- 圖片Meta獲取 --><dependency><groupId>com.drewnoakes</groupId><artifactId>metadata-extractor</artifactId><version>2.9.1</version></dependency><!-- 縮略圖工具 --><dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency><!-- 圖片驗證碼生成 --><dependency><groupId>com.bladejava</groupId><artifactId>blade-patchca</artifactId><version>1.0.5</version></dependency><!-- jackson --> <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.4</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.5</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml --><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.9.5</version></dependency><!-- Java xml --><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><!-- XPath xml --><dependency><groupId>jaxen</groupId><artifactId>jaxen</artifactId><version>1.1.6</version></dependency><!-- Snake YAML --><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.17</version></dependency><!-- Bean To Bean copy --><dependency><groupId>net.sf.dozer</groupId><artifactId>dozer</artifactId><version>${dozer.version}</version></dependency><!-- pinyin4j --><dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency><!-- Apache Tools Ant Tar Zip --><dependency><groupId>org.apache.ant</groupId><artifactId>ant</artifactId><version>1.9.7</version></dependency><!-- File MimeType ContentType --><dependency><groupId>net.sf.jmimemagic</groupId><artifactId>jmimemagic</artifactId><version>0.1.3</version><exclusions><exclusion><groupId>xerces</groupId><artifactId>xercesImpl</artifactId></exclusion><exclusion><groupId>org.codehaus.jackson</groupId><artifactId>jackson-xc</artifactId></exclusion><exclusion><groupId>org.codehaus.jackson</groupId><artifactId>jackson-jaxrs</artifactId></exclusion><exclusion><artifactId>log4j</artifactId><groupId>log4j</groupId></exclusion></exclusions></dependency><!-- 騰訊云 --><dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.2.4</version></dependency><!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version></dependency><!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.9.1</version></dependency><!-- https://mvnrepository.com/artifact/com.squareup.okio/okio --><dependency><groupId>com.squareup.okio</groupId><artifactId>okio</artifactId><version>1.13.0</version></dependency><!-- 注冊加密常用工具 --><dependency><groupId>org.mindrot</groupId><artifactId>jbcrypt</artifactId><version>0.4</version></dependency><!-- easypoi導入導出excel --> <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>3.1.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>3.1.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>3.1.0</version></dependency><!-- hutool --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.1.0</version></dependency><!-- swagger api文檔管理 --><dependency><groupId>com.mangofactory</groupId><artifactId>swagger-springmvc</artifactId><version>1.0.2</version></dependency><dependency><groupId>com.mangofactory</groupId><artifactId>swagger-models</artifactId><version>1.0.2</version></dependency><dependency><groupId>com.wordnik</groupId><artifactId>swagger-annotations</artifactId><version>1.3.11</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>15.0</version></dependency><!-- 集成springfox --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache-core</artifactId><version>2.6.6</version></dependency><!-- jsp --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>compile</scope></dependency><!-- servlet --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>compile</scope></dependency><!-- shiro --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.4.0</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-web</artifactId><version>1.4.0</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.0</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-ehcache</artifactId><version>1.4.0</version></dependency><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-quartz</artifactId> <version>1.4.0</version> </dependency><!-- 個推 推送 --><dependency><groupId>com.gexin.platform</groupId><artifactId>gexin-rp-sdk-http</artifactId><version>4.0.1.17</version></dependency> <!-- velocity --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.6.4</version></dependency>?
二、導入正確的依賴后,即可編寫對應的Controller方法
關于@ApiOperation注解主要是為了接口文檔自動化,傳統(tǒng)的編寫word文檔作為接口管理,耗時效率低,使用swagger或者swagger2在線可以直接測試,又方便安卓或者web研發(fā)人員管理和測試
關于swagger接口自動化搭建可以參考我的這幾篇文章:
MP實戰(zhàn)系列(八)之SpringBoot+Swagger2
MP實戰(zhàn)系列(十)之SpringMVC集成SpringFox+Swagger2
SpringMVC+Swagger詳細整合
這幾篇文章我相信應該可以減少走彎路的可能性。
?
關于JSONObject,這里使用的是Hutool開源項目,該開源項目之前我也介紹過,集成Java研發(fā)常用工具類。
參考文檔地址為:http://hutool.mydoc.io/
/*** 代碼生成器接口* @param author* @param dir* @param tableName* @return*/@PostMapping(value="/productCode",produces="application/json;charset=utf-8")@ApiOperation(value="代碼生成器接口",httpMethod="POST",notes="代碼生成器接口")public JSONObject productCode(String author,String dir,String tableName) {JSONObject json = new JSONObject();try {if(!StrUtil.hasEmpty(author,dir,tableName)) {// 自定義需要填充的字段List<TableFill> tableFillList = new ArrayList<>();tableFillList.add(new TableFill("ASDD_SS", FieldFill.INSERT_UPDATE));// 代碼生成器AutoGenerator mpg = new AutoGenerator().setGlobalConfig(// 全局配置new GlobalConfig().setOutputDir(dir)//輸出目錄.setFileOverride(true)// 是否覆蓋文件.setActiveRecord(true)// 開啟 activeRecord 模式.setEnableCache(false)// XML 二級緩存.setBaseResultMap(true)// XML ResultMap.setBaseColumnList(true)// XML columList .setAuthor(author)// 自定義文件命名,注意 %s 會自動填充表實體屬性! .setMapperName("%sDao").setXmlName("%sDao").setServiceName("%sService").setServiceImplName("%sServiceImpl").setControllerName("%sController")).setDataSource(// 數(shù)據(jù)源配置new DataSourceConfig().setDbType(DbType.MYSQL)// 數(shù)據(jù)庫類型.setTypeConvert(new MySqlTypeConvert() {// 自定義數(shù)據(jù)庫表字段類型轉換【可選】 @Overridepublic DbColumnType processTypeConvert(String fieldType) {System.out.println("轉換類型:" + fieldType);return super.processTypeConvert(fieldType);}}).setDriverName("com.mysql.jdbc.Driver").setUsername("root").setPassword("1234").setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false")).setStrategy(// 策略配置new StrategyConfig().setTablePrefix(new String[]{"rms","js"})/// 此處可以修改為您的表前綴.setNaming(NamingStrategy.underline_to_camel)// 表名生成策略.setInclude(new String[] {tableName}) // 需要生成的表 .setTableFillList(tableFillList)).setPackageInfo(// 包配置new PackageConfig() .setParent("com.blog")// 自定義包路徑.setController("controller")// 這里是控制器包名,默認 web ).setCfg(// 注入自定義配置,可以在 VM 中使用 cfg.abc 設置的值new InjectionConfig() {@Overridepublic void initMap() {Map<String, Object> map = new HashMap<>();map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "");this.setMap(map);}}.setFileOutConfigList(Collections.<FileOutConfig>singletonList(new FileOutConfig("/templates/mapper.xml.vm") {// 自定義輸出文件目錄 @Overridepublic String outputFile(TableInfo tableInfo) {return dir+"//"+ tableInfo.getEntityName()+"Dao" + ".xml";}}))).setTemplate(// 關閉默認 xml 生成,調整生成 至 根目錄new TemplateConfig().setXml(null));// 執(zhí)行生成 mpg.execute();// 打印注入設置,這里演示模板里面怎么獲取注入內容【可無】System.err.println(mpg.getCfg().getMap().get("abc"));json.put("returnMsg", "代碼生成成功");json.put("returnCode", "000000"); }else {json.put("returnMsg", "參數(shù)異常");json.put("returnCode", "111111"); }} catch (Exception e) {e.printStackTrace();json.put("returnMsg", "代碼生成失敗");json.put("returnCode", "222222");}return json;}?
?
三、界面
讓大家看看效果:
?
?
?
?
?
有一點需要明確的是,該代碼在線配置生成,只能針對本地window系統(tǒng),如果已經部署到線上是無法生成的,也不會報錯,因為window的文件系統(tǒng)和linux的文件系統(tǒng)存在差異。
當然了,這里的差異也不影響我們研發(fā)人員的正常使用。
該在線代碼生成器的意義在于,每當用戶提出一個新的需求時,我們總能快速生成相關的代碼,然后專注于復雜的業(yè)務。簡單的增刪改查,誰都會。但是復雜的業(yè)務邏輯,就不僅僅誰都會了,雖然在網上看不少朋友說,重復的業(yè)務代碼寫久了也沒意思。其實怎么說呢?我看過不少業(yè)務代碼,發(fā)現(xiàn)一點,我和我的同學們都發(fā)現(xiàn)了這點,那就是許多業(yè)務代碼基本就是復制粘貼的作品,甚至將代碼上開發(fā)者名字都復制下來的,我想說,老兄你也太懶了吧。
當然了,復制粘貼是可以提高效率,但是好歹也得代碼格式化下,讓代碼看起來工整,還有就是有些注釋該加還是要加,當然注釋越少越好,真正優(yōu)秀的代碼,是讓人一看就明白是什么意思,所以說那些自以為是的人,自以為自己代碼寫的讓人看不懂就自我感覺非常牛逼,其實那樣只會讓你越來越退步,直到失業(yè)。所以說,代碼就好比講通俗易懂的故事,至少要讓人家在最短的時間看懂,而不是光看你這個代碼我就花了一天,到最好我只有重構了這樣的不是辦法中的辦法。
?
關于web界面上展示MySQL所有數(shù)據(jù)庫信息,單個數(shù)據(jù)庫所有表信息,數(shù)據(jù)表所有字段信息,大家可以參考我編寫的如下DAO:
public interface DataBaseDao {?? ?
?? ?@Select("SHOW DATABASES")
?? ?public List<Map<String, String>> selectDataBases();
?? ?
?? ?@Select("show columns from ${tableName}")
?? ?public List<Map<String, String>> showColumns(@Param("tableName")String tableName);
?? ?
?? ?@Select("SHOW tables from ${databaseName}")
?? ?public List<Map<String, String>> showTables(@Param("databaseName")String databaseName);
?? ?
}
?
xml文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.DataBaseDao"> </mapper>?
?
這里我采用的是MyBatis的注解,當然這種注解的最不好缺點就是使Java代碼和sql混合一起顯得雜亂,當然少的時候看起來沒什么,多的話,建議使用xml方式,這也是MyBatis官方比較推崇的方式。
補充說明:使用MyBatis的注解還是得存在對應的xml文件,盡管你的xml文件沒有對應的sql。
DataBaseService代碼和實現(xiàn)類如下:
Service代碼:
public interface DataBaseService {public List<Map<String, String>> selectDataBases();public List<Map<String, String>> showTables(@Param("databaseName")String databaseName);public List<Map<String, String>> showColumns(@Param("tableName")String tableName);}?
Service實現(xiàn)類:
@Service public class DataBaseServiceImpl implements DataBaseService {@Autowiredprivate DataBaseDao dataBaseDao;@Overridepublic List<Map<String, String>> selectDataBases() {// TODO Auto-generated method stubreturn dataBaseDao.selectDataBases();}@Overridepublic List<Map<String, String>> showTables(String databaseName) {// TODO Auto-generated method stubreturn dataBaseDao.showTables(databaseName);}@Overridepublic List<Map<String, String>> showColumns(String tableName) {// TODO Auto-generated method stubreturn dataBaseDao.showColumns(tableName);}}?
?
對應的Controller如下:
/*** 獲取所有數(shù)據(jù)庫* @return*/@GetMapping(value="/getAllDataBaseInfo",produces="application/json;charset=utf-8")@ApiOperation(value="獲取所有數(shù)據(jù)庫",httpMethod="GET",notes="獲取所有數(shù)據(jù)庫")public JSONObject getAllDataBaseInfo() {JSONObject json = new JSONObject();try {List<Map<String, String>> list = dataBaseService.selectDataBases();if(list.size()!=0) {json.put("lines", list.size());json.put("list", list);json.put("returnMsg", "存在數(shù)據(jù)");json.put("returnCode", "00000");}else {json.put("returnMsg", "沒有數(shù)據(jù)");json.put("returnCode", "111111");}} catch (Exception e) { e.printStackTrace();json.put("returnMsg", "特殊異常");json.put("returnCode", "222222");// TODO: handle exception }return json;}/*** 獲取單個數(shù)據(jù)庫所有表信息* @param databaseName* @return*/@GetMapping(value="/querySingleDataBaseInfo",produces="application/json;charset=utf-8")@ApiOperation(value="獲取單個數(shù)據(jù)庫所有表信息",httpMethod="GET",notes="獲取單個數(shù)據(jù)庫所有表信息")public JSONObject querySingleDataBaseInfo(String databaseName) {JSONObject json = new JSONObject();try {if(!StrUtil.isEmpty(databaseName)) {List<Map<String, String>> list = dataBaseService.showTables(databaseName);if(list.size()!=0) {json.put("lines", list.size());json.put("list", list);json.put("returnMsg", "獲取數(shù)據(jù)");json.put("returnCode", "00000");}else {json.put("returnMsg", "獲取數(shù)據(jù)失敗");json.put("returnCode", "111111");}}else {json.put("returnMsg", "參數(shù)異常");json.put("returnCode", "222222");}} catch (Exception e) { e.printStackTrace();json.put("returnMsg", "特殊異常");json.put("returnCode", "333333");// TODO: handle exception }return json;}/*** 獲取單個表所有字段信息* @param tableName* @return*/@GetMapping(value="/querySingleTableInfo",produces="application/json;charset=utf-8")@ApiOperation(value="獲取單個表所有字段信息",httpMethod="GET",notes="獲取單個數(shù)據(jù)庫所有表信息")public JSONObject querySingleTableInfo(String tableName) {JSONObject json = new JSONObject();try {if(!StrUtil.isEmpty(tableName)) {List<Map<String, String>> list = dataBaseService.showColumns(tableName);if(list.size()!=0) {json.put("lines", list.size());json.put("list", list);json.put("returnMsg", "獲取數(shù)據(jù)");json.put("returnCode", "00000");}else {json.put("returnMsg", "獲取數(shù)據(jù)失敗");json.put("returnCode", "111111");}}else {json.put("returnMsg", "參數(shù)異常");json.put("returnCode", "222222");}} catch (Exception e) { e.printStackTrace();json.put("returnMsg", "特殊異常");json.put("returnCode", "333333");// TODO: handle exception }return json;}?
?
?希望本篇文章能夠給大家的開發(fā)效率帶來提升
總結
以上是生活随笔為你收集整理的JavaWeb界面在线配置代码生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse中maven的user s
- 下一篇: caioj 1063 动态规划入门(一维