# mybatis-generator-core **Repository Path**: godtk/mybatis-generator-core ## Basic Information - **Project Name**: mybatis-generator-core - **Description**: 基于mybatis-generator-core 1.4.0版本 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-25 - **Last Updated**: 2025-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Overview 解决sqlserver获取不到表和字段备注的问题,基于mybatis-generator-core 1.4.0版本 修改位置在: 获取字段备注 ```java // org.mybatis.generator.internal.db.DatabaseIntrospector#getColumns // 处理sqlserver获取备注问题 ResultSet sqlServerRS = null; Connection conn = databaseMetaData.getConnection(); boolean isSqlServer = conn.getMetaData().getDriverName().toUpperCase().indexOf("SQL SERVER") != -1; if (isSqlServer) { String sql = "SELECT A.name TABLE_NAME, CONVERT(VARCHAR(500), c.value) REMARKS " + "FROM sys.tables A " + "LEFT JOIN sys.extended_properties c ON c.major_id = A.object_id AND c.minor_id = 0 " + "WHERE A.name = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, fqt.getIntrospectedTableName()); sqlServerRS = ps.executeQuery(); } ``` 获取表备注 ```java // org.mybatis.generator.internal.db.DatabaseIntrospector#enhanceIntrospectedTable // 处理sqlserver获取备注问题 ResultSet sqlServerRS = null; Connection conn = databaseMetaData.getConnection(); boolean isSqlServer = conn.getMetaData().getDriverName().toUpperCase().indexOf("SQL SERVER") != -1; if (isSqlServer) { String sql = "SELECT A.name TABLE_NAME, CONVERT(VARCHAR(500), c.value) REMARKS " + "FROM sys.tables A " + "LEFT JOIN sys.extended_properties c ON c.major_id = A.object_id AND c.minor_id = 0 " + "WHERE A.name = ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, fqt.getIntrospectedTableName()); sqlServerRS = ps.executeQuery(); } if (rs.next()) { String remarks = rs.getString("REMARKS"); //$NON-NLS-1$ if (isSqlServer) { sqlServerRS.next(); remarks = sqlServerRS.getString("REMARKS"); } String tableType = rs.getString("TABLE_TYPE"); //$NON-NLS-1$ introspectedTable.setRemarks(remarks); introspectedTable.setTableType(tableType); } ``` 说明:这个不是mbg的原因,是sqlserver驱动问题,但不清楚什么原因一直没有修复,参见:https://github.com/Microsoft/mssql-jdbc/issues/646