mybatis 根據 資料庫表 自動生成 實體 並自動生成中文註釋
原文地址:https://www.cnblogs.com/NieXiaoHui/p/6094144.html (將原文copy到此處,怕原作者刪除,順便記錄實際操作中我遇到的問題)
原文:
專案裡新建表時model,mapper以及mapper.xml基本都是用Mybatis Generator(以下簡稱為MBG)自動生成的,但是MBG自動生成的model的註釋實在有點非人類,至少中國人是完全接受不了的,在配置中禁用掉註釋吧,倒是簡單了,可是生成的model類光禿禿的,啥都沒有,欄位方法沒有註釋,使用很不方便,別人看也不知道這個欄位是啥含義,到最後還是要自己新增,一張表多點幾十個欄位,特麼新增累死了,不能這麼幹,得想法子,百度了一下網上,基本有兩種方法,第一種,就是直接修改MGB的原始碼,第二種就是自己寫一個類實現CommentGenerator介面,先說自己寫一個新類實現CommentGenerator介面的方法來使自動生成的model類含有中文註釋吧.
- 1.首先新建一個maven專案,請選擇一個簡單的maven專案:或者在選擇的時候直接選擇create a simple project.
- 2,右鍵專案->build path->config build path...->Libraries,修改jdk為你工作空間的預設jdk,然後右鍵專案->new->source folder,輸入src/main/resources,建好resources目錄,如果已經建好就直接跳過.這裡最好不要忘記,否則有的時候建立預設jdk是1.5的,執行可能會有莫名其妙的問題.
- 3 因為是要寫一個類實現CommentGenerator介面,所以先在專案中引入mybatis-generator-core的jar包
同時為了支援mysql,也一起加入mysql的驅動包,mysql的驅動包不用手動安裝,直接引入就會自動下載的
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>6.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency>
- 4 在原始碼中新建一個類MyCommentGenerator,實現CommentGenerator介面,類的程式碼如下:
package org.mybatis.generator; import static org.mybatis.generator.internal.util.StringUtility.isTrue; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.CompilationUnit; import org.mybatis.generator.api.dom.java.Field; import org.mybatis.generator.api.dom.java.InnerClass; import org.mybatis.generator.api.dom.java.InnerEnum; import org.mybatis.generator.api.dom.java.JavaElement; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.Parameter; import org.mybatis.generator.api.dom.xml.XmlElement; import org.mybatis.generator.config.MergeConstants; import org.mybatis.generator.config.PropertyRegistry; /** * 描述: * @since 1.9.10 * @version 1.9.10 * @作者:niexiaohui * @建立時間:2016年11月22日 * @修改記錄: */ public class MyCommentGenerator implements CommentGenerator{ private Properties properties; private Properties systemPro; private boolean suppressDate; private boolean suppressAllComments; private String currentDateStr; public MyCommentGenerator() { super(); properties = new Properties(); systemPro = System.getProperties(); suppressDate = false; suppressAllComments = false; currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()); } public void addJavaFileComment(CompilationUnit compilationUnit) { // add no file level comments by default return; } /** * Adds a suitable comment to warn users that the element was generated, and * when it was generated. */ public void addComment(XmlElement xmlElement) { return; } public void addRootComment(XmlElement rootElement) { // add no document level comments by default return; } public void addConfigurationProperties(Properties properties) { this.properties.putAll(properties); suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE)); suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS)); } /** * This method adds the custom javadoc tag for. You may do nothing if you do * not wish to include the Javadoc tag - however, if you do not include the * Javadoc tag then the Java merge capability of the eclipse plugin will * break. * * @param javaElement * the java element */ protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) { javaElement.addJavaDocLine(" *"); StringBuilder sb = new StringBuilder(); sb.append(" * "); sb.append(MergeConstants.NEW_ELEMENT_TAG); if (markAsDoNotDelete) { sb.append(" do_not_delete_during_merge"); } String s = getDateString(); if (s != null) { sb.append(' '); sb.append(s); } javaElement.addJavaDocLine(sb.toString()); } /** * This method returns a formated date string to include in the Javadoc tag * and XML comments. You may return null if you do not want the date in * these documentation elements. * * @return a string representing the current timestamp, or null */ protected String getDateString() { String result = null; if (!suppressDate) { result = currentDateStr; } return result; } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerClass.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); sb.append(" "); sb.append(getDateString()); innerClass.addJavaDocLine(sb.toString().replace("\n", " ")); innerClass.addJavaDocLine(" */"); } public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerEnum.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); innerEnum.addJavaDocLine(sb.toString().replace("\n", " ")); innerEnum.addJavaDocLine(" */"); } public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); field.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); field.addJavaDocLine(sb.toString().replace("\n", " ")); field.addJavaDocLine(" */"); } public void addFieldComment(Field field, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); field.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); field.addJavaDocLine(sb.toString().replace("\n", " ")); field.addJavaDocLine(" */"); } public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } method.addJavaDocLine("/**"); addJavadocTag(method, false); method.addJavaDocLine(" */"); } public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } method.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); sb.setLength(0); sb.append(" * @return "); sb.append(introspectedColumn.getActualColumnName()); sb.append(" "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); method.addJavaDocLine(" */"); } public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } method.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); Parameter parm = method.getParameters().get(0); sb.setLength(0); sb.append(" * @param "); sb.append(parm.getName()); sb.append(" "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); method.addJavaDocLine(" */"); } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerClass.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); innerClass.addJavaDocLine(sb.toString().replace("\n", " ")); sb.setLength(0); sb.append(" * @author "); sb.append(systemPro.getProperty("user.name")); sb.append(" "); sb.append(currentDateStr); innerClass.addJavaDocLine(" */"); } }
- 5.再新建一個類StartUp,用於執行專案,類的程式碼如下:
package org.mybatis.generator; import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; /** * 描述: * @since 1.9.10 * @version 1.9.10 * @作者:niexiaohui * @建立時間:2016年11月22日 * @修改記錄: */ public class StartUp { public static void main(String[] args) throws URISyntaxException { try { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; ClassLoader classloader = Thread.currentThread().getContextClassLoader(); InputStream is = classloader.getResourceAsStream("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(is); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } catch (XMLParserException e) { e.printStackTrace(); } } }
- 6. 然後將generatorConfig.xml放入resources目錄下,generatorConfig.xml內容如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- ojdbc6.jar已經直接放到專案中,無需指定了,同時mysql驅動包也一樣,這裡同樣無需指定 --> <!-- <classPathEntry location="ojdbc6.jar" /> --> <context id="context1" targetRuntime="MyBatis3"> <!-- 指定生成的java檔案的編碼,沒有直接生成到專案時中文可能會亂碼 --> <property name="javaFileEncoding" value="UTF-8"/> <!-- 這裡的type裡寫的是你的實現類的類全路徑 --> <commentGenerator type="org.mybatis.generator.MyCommentGenerator"> </commentGenerator> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@遠端ip地址或localhost:1521:orcl" userId="使用者名稱" password="密碼"> <!-- 針對oracle資料庫 --> <property name="remarksReporting" value="true"></property> </jdbcConnection> <!-- mysql配置 --> <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/bookshop" userId="root" password="root"> 針對mysql資料庫 <property name="useInformationSchema" value="true"></property> </jdbcConnection> --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- dto class --> <javaModelGenerator targetPackage="model" targetProject="C:\Users\Administrator\Desktop"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- mybatis xml file --> <sqlMapGenerator targetPackage="dao" targetProject="C:\Users\Administrator\Desktop"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- mapper class --> <javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="C:\Users\Administrator\Desktop"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!--不生成幫助類(Exmaples) --> <!-- enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" --> <!--已生成的表 <table schema="demo" tableName="USER" domainObjectName="User"></table> --> <table schema="" tableName="ABS_DEAL" domainObjectName="AbsDeal" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
到此為止專案的結構如下:
這個時候我們執行StartUp的main方法,已經可以實現了,發現桌面上生成了兩個資料夾,model和mapper資料夾,裡面有生成的檔案.看一下效果:
是不是很符合中國人的審美觀呢,如果不滿意,或者有什麼要加的,可以自己在實現類中加入程式碼修改,addFieldComment,addGetterComment,addSetterComment這幾個方法就行了,裡面的程式碼也很容易看懂,很容易改.
- 6.到此為止雖然已經生成成功了,但是事情還不算完,不能要求每個人都從無到有搞這麼一個專案,所以要把它打成一個可以執行的jar包才行.這裡要使依賴包被打包到最後的jar包中,要在pom.xml中進行相應的配置,這裡給出全部的pom.xml的程式碼:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.mybatis</groupId> <artifactId>mygenerator</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mygenerator</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>6.0</version> </dependency> </dependencies> <build> <!-- 這裡指定最終生成的jar包的名字,為了盜版到底,直接使用原先的名稱,嘿嘿 --> <finalName>mybatis-generator-core-1.3.2</finalName> <plugins> <plugin> <!-- 因為專案中使用了依賴包,所以要使用maven-assembly-plugin來構建,會把依賴包同時打進jar包中 --> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <!-- 這裡不指定為false打包會生成兩個jar包,我們要用的那個jar包命名很亂,後面加了 jar-with-dependencies,不喜歡,直接禁用掉 --> <appendAssemblyId>false</appendAssemblyId> <archive> <manifest> <!-- 指定main方法的類的全路徑 否則執行會報找不到main class的錯誤--> <mainClass>org.mybatis.generator.StartUp</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
到這裡專案就完成了,在專案根路徑使用打包命令mvn clean package,當然可以在eclipse中使用maven build中輸入命令來生成,我習慣使用控制檯來生成,在專案根路徑,按住shift的同時右鍵,選擇在此處開啟命令視窗,然後輸入mvn clean package命令按下enter,當然這些可以實現的前提是你本地maven環境配置好了,如果沒有設定maven_home環境變數的話執行會提示無法識別的mvn命令的,成功構建後顯示build success,到target目錄下,看到生成了jar包:
同樣在target目錄下:按住shift同時右鍵->在此處開啟命令列,輸入java -jar mybatis-generator-core-1.3.2.jar命令執行jar包,注意-jar後打出my時按tab鍵mybatis-generator-core-1.3.2.jar就自動補全了,執行結束後,同樣的在桌面上回看到生成的model和mapper資料夾及裡面的檔案.這裡是測試,所以配置中寫檔案生成在了桌面上,可以改一下配置,設定在專案中輸出,直接輸出到專案中.
當然為了使用方便,不用每次都輸入java -jar mybatis-generator-core-1.3.2.jar命令,可以把命令放入指令碼檔案中,新建一個記事本,重新命名為generator.bat,然後把java -jar mybatis-generator-core-1.3.2.jar命令拷貝進去,以後只要雙擊generator.bat就可以直接生成了,當然你的generator.bat得和jar包在同一個目錄下.
還有要修改generatorConfig.xml檔案可以使用壓縮軟體開啟mybatis-generator-core-1.3.2.jar,雙擊generatorConfig.xml,修改後儲存並更新回壓縮包.因為這裡StartUp檔案中使用的是載入generatorConfig.xml的方法,所以會載入jar包裡的generatorConfig.xml配置檔案,如果StartUp檔案中載入配置檔案的方式使用MBG原生態的載入方式,就可以使用jar包同目錄下的generatorConfig.xml,不過那時執行命令就為:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite,我覺得這樣挺好的,不用每次都拖著一個generatorConfig.xml,移動都不方便,放在jar包裡跟著跑挺方便的.
抱歉,使用了才知道,generatorConfig.xml放在jar包裡似乎生成到專案裡不好配置,只能寫絕對路徑,相對路徑好像不好弄,可以稍微修改一下,用MBG原來的載入外部的generatorConfig.xml,只需要修改pom.xml的構建中的main class節點由startup改為org.mybatis.generator.api.ShellRunner然後重新打包,執行jar包時命令為
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite,以下提供的下載更新為使用ShellRunner執行的.如果使用ShellRunner執行,則之前的startup可以刪除了,專案resource目錄下的generatorConfig.xml也不需要了,直接使用外部的generatorConfig.xml.
,使用了才知
遇到問題:
1 pom.xm報錯:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6.0</version>
</dependency>
這個檔案下載不到:改為:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>6</version>
</dependency>
基本就沒問題了吧。
2 將中文註釋修改@column的spring註釋:
修改方法: addFieldComment
public void addFieldComment(Field field, IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
if (suppressAllComments) {
return;
}
// 新增欄位註釋
//@Column(name = "ID", columnDefinition = "NUMBER VARCHAR2 TIMESTAMP DATE |本表唯一編碼|11|", length = 11, nullable = false)
StringBuffer sb = new StringBuffer();
//列名
sb.append("@Column(name = \"" + introspectedColumn.getActualColumnName() + "\", columnDefinition = \"");
//型別
if("VARCHAR".equals(introspectedColumn.getJdbcTypeName())){
sb.append("VARCHAR2");
} else if("DECIMAL".equals(introspectedColumn.getJdbcTypeName())){
sb.append("NUMBER");
} else{
sb.append(introspectedColumn.getJdbcTypeName());
}
//列註釋
sb.append("|");
if (introspectedColumn.getRemarks() != null){
sb.append(introspectedColumn.getRemarks());
}
//列長
if(introspectedColumn.getScale()!=0){
sb.append("||\", precision = " + introspectedColumn.getLength() +" , scale = " + introspectedColumn.getScale() + ", ");
} else if("TIMESTAMP".equals(introspectedColumn.getJdbcTypeName())){
sb.append("||\", ");
} else {
sb.append("|"+ introspectedColumn.getLength() +"|\", length = " + introspectedColumn.getLength() +", ");
}
//是否為空
sb.append(" nullable = "+introspectedColumn.isNullable()+")");
field.addJavaDocLine(sb.toString());
}
此處修改之後,@column註釋基本沒問題。
例如 @Column(name = "TOTAL_COST", columnDefinition = "NUMBER|實際價格||", precision = 10 , scale = 2, nullable = true)
private BigDecimal totalCost;
@Column(name = "CLINIC_DATE", columnDefinition = "TIMESTAMP|收費時間||", nullable = true)
private Date clinicDate;
@Column(name = "EXPENSE_TYPE", columnDefinition = "NUMBER|處置等標誌|1|", length = 1, nullable = true)
private Short expenseType;
3 實體中存在的問題 資料庫不分Long,Integer, 統一為Number,故生成的實體為Long,Short。 手動將實體的Short,修改為Integer。(此次等能者修改)
4 注意:
generatorConfig.xml
<!-- 這裡的type裡寫的是你的實現類的類全路徑 --> <commentGenerator type="org.mybatis.generator.MyCommentGenerator"> </commentGenerator>
這個必須有:不然調不到自己寫的註釋方法,而是用mybatis原來的方法。
相關推薦
mybatis 根據 資料庫表 自動生成 實體 並自動生成中文註釋
原文地址:https://www.cnblogs.com/NieXiaoHui/p/6094144.html (將原文copy到此處,怕原作者刪除,順便記錄實際操作中我遇到的問題) 原文: 專案裡新建表時model,mapper以及mapper.xml基本都是用Myba
mybatis配置generator自動生成資料庫表對應的實體
1.generator配置檔案: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Co
MyBatis逆向工程-根據資料庫表自動生成bean、mapper介面以及對映檔案
說明:偶然看到一個視訊,講到了使用mybatis的逆向工程實現自動生成程式碼的部分(根據資料表生成相應的實體類、對映檔案、介面),因為之前沒有學習過這類東西,今天照著弄了下,然後自己寫了一個測試案例,特來記錄。。。。==============================
eclipse 使用JPA Tools 根據資料庫表自動生成實體類
1.在eclipse裡面建立資料庫連線: 1.1視窗-->顯示檢視-->其他-->Data Management-->Data Sources Explorer-->確定; 1.2Database Connections右鍵-->
eclipse中使用JPA根據資料庫表自動生成註解實體類
1.連線資料庫 需要生成實體類,我們首先要先使用eclipse中的Data Source Explorer工具連線資料庫 Data Source Explorer的使用方式見我另一篇文章: 2.建立實體類 1)現在需要建立實體類的工程,點選右鍵----->prope
根據資料庫表生成對應實體類
前幾天維護一個老專案, 用到很久都沒用過了的hibernate框架, 其中需要新建表及實體類, 看著那N多欄位的表, 一個個去敲就顯得太費勁了。然後想到最近整理中的商城專案中用到過的逆向工程,雖然資料庫一個是mysql,一個是oracle,試了之後發現都是可以用的。 一,逆向工程的下載匯入使用
SQL Server根據資料庫表,自動生成insert語句,批量新增
實際工作中,兩個資料庫不在同一臺伺服器上,又需要複製資料庫表時,可以在需要複製的資料庫中建立下面的儲存過程。 CREATE PROCEDURE [dbo].[OutputData] @tablename sysname, @
依賴POI實現EXCEL匯入資料並生成javaBean和EXCEL根據資料庫表匯出
首先是excel匯入匯出的工具類程式碼 public class ExportExcel { // 測試123 private ExportExcel() { } /*** * 工作簿 */
Mybatis逆向工程根據資料庫表生成java程式碼。
1.建一個java工程 2.在工程上新建一個generatorConfig.xml 檔案 3.在generatorConfig.xml檔案寫入以下程式碼 <?xml version="1.0" encoding="UTF-8"?>
從資料庫表反射出實體類,自動生成實體類
package com.db.gen.entity.tool; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter;
eclipse中根據資料庫表逆向生成實體類,mapper介面,mapper.xml檔案
逆向工程的核心是: mybatis-generator-core-1.3.2.jar這個jar包 一.安裝eclipse外掛:mybatis-generator 安裝方法有很多,本人使用的是:點help,然後marketplace,搜尋myba
用Java根據資料庫表生成實體類
import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet
18.C#:VS2010之EF框架新增edmx(自動跟蹤實體生成器):對映到資料庫表和程式碼實體類
在上一篇文章新增好EF資料庫模型的基礎上,為了生成表結構對應的標準類,使用自動跟蹤實體生成器,這裡主要記錄檔案命名注意事項 1.雙擊.edmx檔案,在介面的空白處滑鼠右擊,選中“新增程式碼生成項”,選擇“ADO.NET自跟蹤實體生成器”,會生成兩個.tt檔案 2.注意:其
防止表單重複提交,PHP生成token並自動更新
PHP生成token並自動更新。 在業務中,經常會遇到重複提交問題。token是一種解決表單重複提交的思路,token 原理大致為: 1:顯示錶單的那個 action 中使用 makeToken() 生成一個隨機的 token值,稱作 requestToken ,並存放在
Hibernate根據資料庫表生成持久化類和對映檔案
先在資料庫建立好您的表 步驟: 1.首先 2.新建資料庫模版 3.配置資料庫資訊 然後<預設>完成 4.把專案變成Hibernate專案 5.在myeclisp中引入資料庫 下一步..完成 根據
mybatis根據資料庫生成mapper
命令列:mvn mybatis-generator:generate <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC
根據銷售訂單建立交貨單並自動揀配、過賬發貨程式
Code listing for: ZSD020Description: 根據銷售訂單建立交貨單並過賬發貨*&---------------------------------------------------------------------* * 程式名稱:
studio 自動在 實體類 中 生成 SerializableID
SerializableID 的作用 如,定義了一個 Student 類,裡面定義了一個 SerializableID=5,序列化後傳給伺服器,伺服器將其存到資料庫以後再使用。若干天后,系統升級
Spring 自動掃描實體並載入的配置實現
http://www.blogjava.net/sean/archive/2009/01/29/252685.html 如果你使用早前版本的Spring,又恰好採用了Annotation註解方式(而非傳統XML方式)配置Hibernate物件關係對映,那麼在通過or
shell監控網站是否自動運行並自動重啟【原創】
自動重啟 aid func 服務腳本 date null com 監控網頁 moni shell監控網站是否自動運行並自動重啟 #!/bin/bash wget --spider -q -o /dev/null --tries=1 -T 5 www.baidu.co