Skip to content

Commit 521bfd1

Browse files
author
wanghaiming
committed
whm 代码生成器第一阶段
1 parent 61efb44 commit 521bfd1

9 files changed

Lines changed: 100 additions & 43 deletions

File tree

java-generator-core/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@
106106
<groupId>com.github.javaparser</groupId>
107107
<artifactId>javaparser-core</artifactId>
108108
</dependency>
109+
<dependency>
110+
<groupId>com.microsoft.sqlserver</groupId>
111+
<artifactId>sqljdbc4</artifactId>
112+
<version>6.0</version>
113+
</dependency>
109114
</dependencies>
110115

111116
<description>Java Generator - a code generator for MyBatis and iBatis.</description>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.mybatis;
2+
3+
import org.mybatis.generator.api.MyBatisGenerator;
4+
import org.mybatis.generator.api.ShellRunner;
5+
import org.mybatis.generator.config.Configuration;
6+
import org.mybatis.generator.config.xml.ConfigurationParser;
7+
import org.mybatis.generator.exception.InvalidConfigurationException;
8+
import org.mybatis.generator.exception.XMLParserException;
9+
import org.mybatis.generator.internal.DefaultShellCallback;
10+
11+
import java.io.File;
12+
import java.io.IOException;
13+
import java.net.URL;
14+
import java.sql.SQLException;
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
18+
/**
19+
* Created by whm on 2017/7/18.
20+
*/
21+
public class MyTest {
22+
public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
23+
List<String> warnings = new ArrayList<String>();
24+
boolean overwrite = true;
25+
URL url = ShellRunner.class.getClassLoader().getResource("generatorConfig.xml");
26+
File configFile = new File(url.getFile());
27+
ConfigurationParser cp = new ConfigurationParser(warnings);
28+
Configuration config = cp.parseConfiguration(configFile);
29+
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
30+
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
31+
myBatisGenerator.generate(null);
32+
}
33+
}

java-generator-core/src/main/java/org/mybatis/generator/codegen/mybatis3/javamapper/JavaMapperGenerator.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,17 @@ public List<CompilationUnit> getCompilationUnits() {
9292
addCountByExampleMethod(interfaze);
9393
addDeleteByExampleMethod(interfaze);
9494
addDeleteByPrimaryKeyMethod(interfaze);
95-
addInsertMethod(interfaze);
96-
addInsertSelectiveMethod(interfaze);
95+
//addInsertMethod(interfaze);
96+
//addInsertSelectiveMethod(interfaze);
9797
addSelectByExampleWithBLOBsMethod(interfaze);
9898
addSelectByExampleWithoutBLOBsMethod(interfaze);
9999
addSelectByPrimaryKeyMethod(interfaze);
100100
addUpdateByExampleSelectiveMethod(interfaze);
101-
addUpdateByExampleWithBLOBsMethod(interfaze);
102-
addUpdateByExampleWithoutBLOBsMethod(interfaze);
101+
//addUpdateByExampleWithBLOBsMethod(interfaze);
102+
//addUpdateByExampleWithoutBLOBsMethod(interfaze);
103103
addUpdateByPrimaryKeySelectiveMethod(interfaze);
104-
addUpdateByPrimaryKeyWithBLOBsMethod(interfaze);
105-
addUpdateByPrimaryKeyWithoutBLOBsMethod(interfaze);
104+
//addUpdateByPrimaryKeyWithBLOBsMethod(interfaze);
105+
//addUpdateByPrimaryKeyWithoutBLOBsMethod(interfaze);
106106

107107
List<CompilationUnit> answer = new ArrayList<CompilationUnit>();
108108
if (context.getPlugins().clientGenerated(interfaze, null,

java-generator-core/src/main/java/org/mybatis/generator/codegen/mybatis3/xmlmapper/XMLMapperGenerator.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,15 @@ protected XmlElement getSqlMapElement() {
7777
addSelectByPrimaryKeyElement(answer);
7878
addDeleteByPrimaryKeyElement(answer);
7979
addDeleteByExampleElement(answer);
80-
addInsertElement(answer);
81-
addInsertSelectiveElement(answer);
80+
//addInsertElement(answer);
81+
//addInsertSelectiveElement(answer);
8282
addCountByExampleElement(answer);
8383
addUpdateByExampleSelectiveElement(answer);
84-
addUpdateByExampleWithBLOBsElement(answer);
85-
addUpdateByExampleWithoutBLOBsElement(answer);
84+
//addUpdateByExampleWithBLOBsElement(answer);
85+
//addUpdateByExampleWithoutBLOBsElement(answer);
8686
addUpdateByPrimaryKeySelectiveElement(answer);
87-
addUpdateByPrimaryKeyWithBLOBsElement(answer);
88-
addUpdateByPrimaryKeyWithoutBLOBsElement(answer);
87+
//addUpdateByPrimaryKeyWithBLOBsElement(answer);
88+
//addUpdateByPrimaryKeyWithoutBLOBsElement(answer);
8989

9090
return answer;
9191
}

java-generator-core/src/main/java/org/mybatis/generator/codegen/mybatis3/xmlmapper/elements/DeleteByExampleElementGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ public void addElements(XmlElement parentElement) {
4444
context.getCommentGenerator().addComment(answer);
4545

4646
StringBuilder sb = new StringBuilder();
47-
sb.append("delete from "); //$NON-NLS-1$
47+
sb.append("update "); //$NON-NLS-1$
4848
sb.append(introspectedTable
4949
.getAliasedFullyQualifiedTableNameAtRuntime());
50+
sb.append(" set FIsDelete = 1");
5051
answer.addElement(new TextElement(sb.toString()));
5152
answer.addElement(getExampleIncludeElement());
5253

java-generator-core/src/main/java/org/mybatis/generator/codegen/mybatis3/xmlmapper/elements/DeleteByPrimaryKeyElementGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,9 @@ public void addElements(XmlElement parentElement) {
6161
context.getCommentGenerator().addComment(answer);
6262

6363
StringBuilder sb = new StringBuilder();
64-
sb.append("delete from "); //$NON-NLS-1$
64+
sb.append("update "); //$NON-NLS-1$
6565
sb.append(introspectedTable.getFullyQualifiedTableNameAtRuntime());
66+
sb.append(" set FIsDelete = 1");
6667
answer.addElement(new TextElement(sb.toString()));
6768

6869
boolean and = false;

java-generator-core/src/main/java/org/mybatis/generator/config/Context.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,7 @@ public void introspectTables(ProgressCallback callback,
650650

651651
callback.startTask(getString("Progress.1", tableName)); //$NON-NLS-1$
652652
List<IntrospectedTable> tables = databaseIntrospector
653-
.introspectTables(tc);
653+
.introspectTables(tc,connection);
654654

655655
if (tables != null) {
656656
introspectedTables.addAll(tables);

java-generator-core/src/main/java/org/mybatis/generator/internal/DefaultCommentGenerator.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -270,31 +270,29 @@ public void addEnumComment(InnerEnum innerEnum,
270270
* @see org.mybatis.generator.api.CommentGenerator#addFieldComment(org.mybatis.generator.api.dom.java.Field, org.mybatis.generator.api.IntrospectedTable, org.mybatis.generator.api.IntrospectedColumn)
271271
*/
272272
public void addFieldComment(Field field,
273-
IntrospectedTable introspectedTable,
274-
IntrospectedColumn introspectedColumn) {
273+
IntrospectedTable introspectedTable,
274+
IntrospectedColumn introspectedColumn) {
275275
if (suppressAllComments) {
276276
return;
277277
}
278+
StringBuilder sb = new StringBuilder();
278279

279280
field.addJavaDocLine("/**"); //$NON-NLS-1$
280-
281281
String remarks = introspectedColumn.getRemarks();
282282
if (addRemarkComments && StringUtility.stringHasValue(remarks)) {
283-
field.addJavaDocLine(" * Database Column Remarks:");
283+
//field.addJavaDocLine(" * Database Column Remarks:");
284284
String[] remarkLines = remarks.split(System.getProperty("line.separator")); //$NON-NLS-1$
285285
for (String remarkLine : remarkLines) {
286-
field.addJavaDocLine(" * " + remarkLine); //$NON-NLS-1$
286+
field.addJavaDocLine(" * " + remarkLine); //$NON-NLS-1$
287287
}
288288
}
289+
// field.addJavaDocLine(" *"); //$NON-NLS-1$
290+
// field.addJavaDocLine(" * This field was generated by MyBatis Generator."); //$NON-NLS-1$
291+
//
289292

290-
field.addJavaDocLine(" *"); //$NON-NLS-1$
291-
field
292-
.addJavaDocLine(" * This field was generated by MyBatis Generator."); //$NON-NLS-1$
293-
294-
StringBuilder sb = new StringBuilder();
295-
sb.append(" * This field corresponds to the database column "); //$NON-NLS-1$
293+
sb.append(" * 所属字段为: "); //$NON-NLS-1$
296294
sb.append(introspectedTable.getFullyQualifiedTable());
297-
sb.append('.');
295+
sb.append(".");
298296
sb.append(introspectedColumn.getActualColumnName());
299297
field.addJavaDocLine(sb.toString());
300298

java-generator-core/src/main/java/org/mybatis/generator/internal/db/DatabaseIntrospector.java

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@
2424
import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
2525
import static org.mybatis.generator.internal.util.messages.Messages.getString;
2626

27-
import java.sql.DatabaseMetaData;
28-
import java.sql.ResultSet;
29-
import java.sql.ResultSetMetaData;
30-
import java.sql.SQLException;
27+
import java.sql.*;
3128
import java.util.ArrayList;
3229
import java.util.HashMap;
3330
import java.util.Iterator;
@@ -215,11 +212,11 @@ private void reportIntrospectionWarnings(
215212
* @throws SQLException
216213
* the SQL exception
217214
*/
218-
public List<IntrospectedTable> introspectTables(TableConfiguration tc)
215+
public List<IntrospectedTable> introspectTables(TableConfiguration tc,Connection conn)
219216
throws SQLException {
220217

221218
// get the raw columns from the DB
222-
Map<ActualTableName, List<IntrospectedColumn>> columns = getColumns(tc);
219+
Map<ActualTableName, List<IntrospectedColumn>> columns = getColumns(tc,conn);
223220

224221
if (columns.isEmpty()) {
225222
warnings.add(getString("Warning.19", tc.getCatalog(), //$NON-NLS-1$
@@ -526,7 +523,7 @@ private void applyColumnOverrides(TableConfiguration tc,
526523
* the SQL exception
527524
*/
528525
private Map<ActualTableName, List<IntrospectedColumn>> getColumns(
529-
TableConfiguration tc) throws SQLException {
526+
TableConfiguration tc,Connection conn) throws SQLException {
530527
String localCatalog;
531528
String localSchema;
532529
String localTableName;
@@ -591,17 +588,17 @@ private Map<ActualTableName, List<IntrospectedColumn>> getColumns(
591588
localTableName = sb.toString();
592589
}
593590

594-
Map<ActualTableName, List<IntrospectedColumn>> answer = new HashMap<ActualTableName, List<IntrospectedColumn>>();
591+
Map<ActualTableName, List<IntrospectedColumn>> answer =
592+
new HashMap<ActualTableName, List<IntrospectedColumn>>();
595593

596594
if (logger.isDebugEnabled()) {
597595
String fullTableName = composeFullyQualifiedTableName(localCatalog, localSchema,
598-
localTableName, '.');
596+
localTableName, '.');
599597
logger.debug(getString("Tracing.1", fullTableName)); //$NON-NLS-1$
600598
}
601599

602600
ResultSet rs = databaseMetaData.getColumns(localCatalog, localSchema,
603601
localTableName, "%"); //$NON-NLS-1$
604-
605602
boolean supportsIsAutoIncrement = false;
606603
boolean supportsIsGeneratedColumn = false;
607604
ResultSetMetaData rsmd = rs.getMetaData();
@@ -615,7 +612,26 @@ private Map<ActualTableName, List<IntrospectedColumn>> getColumns(
615612
}
616613
}
617614

618-
while (rs.next()) {
615+
String sql ="SELECT\n" +
616+
"\tconvert(varchar(1000), C.\n" +
617+
"VALUE)\n" +
618+
"\tAS remarks\n" +
619+
"FROM\n" +
620+
"\tsys.tables A\n" +
621+
"INNER JOIN sys.columns B ON B.object_id = A.object_id\n" +
622+
"LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id\n" +
623+
"AND C.minor_id = B.column_id\n" +
624+
"WHERE\n" +
625+
"\tA.name = ? ";
626+
System.out.println(sql);
627+
PreparedStatement ps = conn.prepareStatement(sql);
628+
ps.setString(1 ,localTableName);
629+
ResultSet rs1 = ps.executeQuery();
630+
631+
632+
int i = 0;
633+
while (rs.next() && rs1.next()) {
634+
619635
IntrospectedColumn introspectedColumn = ObjectFactory
620636
.createIntrospectedColumn(context);
621637

@@ -626,15 +642,17 @@ private Map<ActualTableName, List<IntrospectedColumn>> getColumns(
626642
introspectedColumn
627643
.setNullable(rs.getInt("NULLABLE") == DatabaseMetaData.columnNullable); //$NON-NLS-1$
628644
introspectedColumn.setScale(rs.getInt("DECIMAL_DIGITS")); //$NON-NLS-1$
629-
introspectedColumn.setRemarks(rs.getString("REMARKS")); //$NON-NLS-1$
645+
introspectedColumn.setRemarks(rs1.getString("remarks")); //$NON-NLS-1$
630646
introspectedColumn.setDefaultValue(rs.getString("COLUMN_DEF")); //$NON-NLS-1$
631-
647+
632648
if (supportsIsAutoIncrement) {
633-
introspectedColumn.setAutoIncrement("YES".equals(rs.getString("IS_AUTOINCREMENT"))); //$NON-NLS-1$ //$NON-NLS-2$
649+
introspectedColumn.setAutoIncrement(
650+
"YES".equals(rs.getString("IS_AUTOINCREMENT"))); //$NON-NLS-1$ //$NON-NLS-2$
634651
}
635-
652+
636653
if (supportsIsGeneratedColumn) {
637-
introspectedColumn.setGeneratedColumn("YES".equals(rs.getString("IS_GENERATEDCOLUMN"))); //$NON-NLS-1$ //$NON-NLS-2$
654+
introspectedColumn.setGeneratedColumn(
655+
"YES".equals(rs.getString("IS_GENERATEDCOLUMN"))); //$NON-NLS-1$ //$NON-NLS-2$
638656
}
639657

640658
ActualTableName atn = new ActualTableName(
@@ -659,6 +677,7 @@ private Map<ActualTableName, List<IntrospectedColumn>> getColumns(
659677
}
660678
}
661679

680+
closeResultSet(rs1);
662681
closeResultSet(rs);
663682

664683
if (answer.size() > 1

0 commit comments

Comments
 (0)