Explorar el Código

增加 sqlserver 支持

zhouhao hace 8 años
padre
commit
b0a9f3ed76

+ 14 - 4
hsweb-web-dao/hsweb-web-dao-mybatis/src/main/java/org/hsweb/web/mybatis/builder/EasyOrmSqlBuilder.java

@@ -12,10 +12,7 @@ import org.hsweb.ezorm.rdb.meta.RDBDatabaseMetaData;
 import org.hsweb.ezorm.rdb.meta.RDBTableMetaData;
 import org.hsweb.ezorm.rdb.render.SqlAppender;
 import org.hsweb.ezorm.rdb.render.SqlRender;
-import org.hsweb.ezorm.rdb.render.dialect.Dialect;
-import org.hsweb.ezorm.rdb.render.dialect.H2RDBDatabaseMetaData;
-import org.hsweb.ezorm.rdb.render.dialect.MysqlRDBDatabaseMetaData;
-import org.hsweb.ezorm.rdb.render.dialect.OracleRDBDatabaseMetaData;
+import org.hsweb.ezorm.rdb.render.dialect.*;
 import org.hsweb.ezorm.rdb.render.support.simple.CommonSqlRender;
 import org.hsweb.ezorm.rdb.render.support.simple.SimpleWhereSqlBuilder;
 import org.hsweb.web.bean.common.InsertParam;
@@ -79,6 +76,8 @@ public class EasyOrmSqlBuilder {
     private final RDBDatabaseMetaData oracle = new OracleMeta();
     private final RDBDatabaseMetaData h2     = new H2Meta();
 
+    private final RDBDatabaseMetaData mssql = new MSSQLMeta();
+
     private final ConcurrentMap<RDBDatabaseMetaData, Map<String, RDBTableMetaData>> metaCache = new ConcurrentHashMap<RDBDatabaseMetaData, Map<String, RDBTableMetaData>>() {
         @Override
         public Map<String, RDBTableMetaData> get(Object key) {
@@ -98,6 +97,9 @@ public class EasyOrmSqlBuilder {
                 return h2;
             case mysql:
                 return mysql;
+            case jtds_sqlserver:
+            case sqlserver:
+                return mssql;
             case oracle:
                 return oracle;
             default:
@@ -277,4 +279,12 @@ public class EasyOrmSqlBuilder {
             renderMap.put(SqlRender.TYPE.UPDATE, new UpdateSqlBuilder(Dialect.MYSQL));
         }
     }
+
+    class MSSQLMeta extends MSSQLRDBDatabaseMetaData {
+        public MSSQLMeta() {
+            super();
+            renderMap.put(SqlRender.TYPE.INSERT, new InsertSqlBuilder());
+            renderMap.put(SqlRender.TYPE.UPDATE, new UpdateSqlBuilder(Dialect.MSSQL));
+        }
+    }
 }