فهرست منبع

[修改]相关模板bug

zishang 6 روز پیش
والد
کامیت
e74e64e339
26فایلهای تغییر یافته به همراه99 افزوده شده و 61 حذف شده
  1. 17 0
      pom.xml
  2. 2 1
      src/main/java/io/renren/RenrenApplication.java
  3. 2 1
      src/main/java/io/renren/common/utils/ToEnglish.java
  4. 33 11
      src/main/java/io/renren/modules/sys/controller/VisiWorkflowController.java
  5. 1 2
      src/main/java/io/renren/modules/sys/controller/algs/CategoryController.java
  6. 0 1
      src/main/java/io/renren/modules/sys/controller/algs/algModelsController.java
  7. 0 1
      src/main/java/io/renren/modules/sys/controller/algs/algTemplsController.java
  8. 1 2
      src/main/java/io/renren/modules/sys/controller/algs/algTrainController.java
  9. 21 9
      src/main/java/io/renren/modules/sys/controller/algs/algsController.java
  10. 1 2
      src/main/java/io/renren/modules/sys/controller/algs/versionController.java
  11. 2 2
      src/main/java/io/renren/modules/sys/controller/dataset/DataSetController.java
  12. 0 1
      src/main/java/io/renren/modules/sys/controller/dataset/DataSetDyController.java
  13. 6 3
      src/main/java/io/renren/modules/sys/controller/minIo/MinioController.java
  14. 1 2
      src/main/java/io/renren/modules/sys/service/AlgTrainService.java
  15. 1 2
      src/main/java/io/renren/modules/sys/service/AlgsService.java
  16. 1 2
      src/main/java/io/renren/modules/sys/service/CategoryService.java
  17. 1 2
      src/main/java/io/renren/modules/sys/service/DataSetDyService.java
  18. 1 2
      src/main/java/io/renren/modules/sys/service/DataSetService.java
  19. 1 2
      src/main/java/io/renren/modules/sys/service/VersionService.java
  20. 1 2
      src/main/java/io/renren/modules/sys/service/impl/AlgTrainServiceImpl.java
  21. 1 2
      src/main/java/io/renren/modules/sys/service/impl/AlgsServiceImpl.java
  22. 1 2
      src/main/java/io/renren/modules/sys/service/impl/CategoryServiceImpl.java
  23. 1 2
      src/main/java/io/renren/modules/sys/service/impl/DataSetDyServiceImpl.java
  24. 1 2
      src/main/java/io/renren/modules/sys/service/impl/DataSetServiceImpl.java
  25. 1 2
      src/main/java/io/renren/modules/sys/service/impl/VersionServiceImpl.java
  26. 1 1
      src/main/resources/mapper/levelManage/ProjectAttributesDao.xml

+ 17 - 0
pom.xml

@@ -48,6 +48,9 @@
 		<remote-addr>192.168.1.10:22</remote-addr>
 		<remote-username>root</remote-username>
 		<remote-passwd>123456</remote-passwd>
+
+		<dm-jdbc-driver.version>8.1.2.192</dm-jdbc-driver.version>
+
 	</properties>
 
 	<dependencies>
@@ -106,6 +109,7 @@
 			<artifactId>jsch</artifactId>
 			<version>0.1.54</version>
 		</dependency>
+
 		<!--<dependency>-->
 			<!--<groupId>org.springframework.boot</groupId>-->
 			<!--<artifactId>spring-boot-devtools</artifactId>-->
@@ -127,6 +131,19 @@
 			<artifactId>mysql-connector-java</artifactId>
 			<version>${mysql.version}</version>
 		</dependency>
+
+		<!--dm配置-->
+		<dependency>
+			<groupId>com.dameng</groupId>
+			<artifactId>DmJdbcDriver18</artifactId>
+			<version>${dm-jdbc-driver.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.dameng</groupId>
+			<artifactId>DmDialect-for-hibernate5.3</artifactId>
+			<version>${dm-jdbc-driver.version}</version>
+		</dependency>
+
 		 <!--oracle驱动-->
 		<dependency>
 			<groupId>com.oracle</groupId>

+ 2 - 1
src/main/java/io/renren/RenrenApplication.java

@@ -11,10 +11,11 @@ package io.renren;
 import lgh.springboot.starter.hbase.template.HBaseTemplate;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.context.ConfigurableApplicationContext;
 
 
-@SpringBootApplication
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
 public class RenrenApplication {
 
 	public static void main(String[] args) {

+ 2 - 1
src/main/java/io/renren/common/utils/ToEnglish.java

@@ -41,7 +41,8 @@ public class ToEnglish {
             e.printStackTrace();
 //    		Log.v(TAG, "BadHanyuPinyinOutputFormatCombination");
         }
-        return StringUtils.strSpecialFilter(output) ;
+//        return StringUtils.strSpecialFilter(output) ;
+        return output;
     }
 
 }

+ 33 - 11
src/main/java/io/renren/modules/sys/controller/VisiWorkflowController.java

@@ -27,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import java.io.*;
+import java.math.BigDecimal;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
@@ -239,7 +240,22 @@ public class VisiWorkflowController extends AbstractController {
         System.out.println("//true表示update,新增  false表示add "+ addorupdate);
         Long  workflowId = null;
         if(addorupdate){
-            workflowId = Long.parseLong(params.get("workflowId").toString());//工作流名称
+//            workflowId = Long.parseLong(params.get("workflowId").toString());//工作流名称
+            //防止string转long型出错
+            String paramsStr = params.get("workflowId").toString();
+            BigDecimal bigDecimal = new BigDecimal(0);
+            char[] chars = paramsStr.toCharArray();
+            for (int i = chars.length; i > 0; i--) {
+                BigDecimal temp = new BigDecimal(1);
+                if (chars[i - 1] == '1') {
+                    for (int j = 0; j < paramsStr.toCharArray().length - i; j++) {
+                        temp = temp.multiply(new BigDecimal(2));
+                    }
+                    bigDecimal = bigDecimal.add(temp);
+                }
+            }
+            workflowId = bigDecimal.longValue();//工作流名称
+            System.out.println(workflowId);
         }
 
         String experimentName = params.get("experimentName").toString();
@@ -484,6 +500,7 @@ public class VisiWorkflowController extends AbstractController {
                     Parameter argupara = new Parameter();
                     argupara.setName(arguparaname);
                     argupara.setValue(arguparavalue);
+//                    System.out.println(argupara);
 
 //                    //引用其他节点--前端已处理为  {{tasks.generate-parameter.outputs.parameters.hello-param}}方式
 //                    if(argumentsparameters.getJSONObject(j).getString("valuefrom").length()!=0){
@@ -493,18 +510,23 @@ public class VisiWorkflowController extends AbstractController {
 //                    }
                     //更改引用节点为多选 ,多个进行拼接
                     //示例:  ['{{tasks.getsum43.outputs.parameters.result}}', '{{tasks.getsum344.outputs.parameters.result}}']
-                    if (argumentsparameters.getJSONObject(j).getJSONArray("valuefrom").size() != 0) {
-                        JSONArray valuefrom1 = argumentsparameters.getJSONObject(j).getJSONArray("valuefrom");
-                        StringBuffer paravaluefrom = new StringBuffer();
-                        for (int k = 0; k < valuefrom1.size(); k++) {
-                            String parastritem = valuefrom1.getString(k);
-                            if (k != 0) {
-                                paravaluefrom.append(",");
+//                    System.out.println(argumentsparameters);
+                    //argumentsparameters.getJSONObject(j).getJSONArray("valuefrom")可能为空,出现空指针异常
+                    if (argumentsparameters.getJSONObject(j).getJSONArray("valuefrom") != null){
+                        if (argumentsparameters.getJSONObject(j).getJSONArray("valuefrom").size() != 0) {
+                            JSONArray valuefrom1 = argumentsparameters.getJSONObject(j).getJSONArray("valuefrom");
+                            StringBuffer paravaluefrom = new StringBuffer();
+                            for (int k = 0; k < valuefrom1.size(); k++) {
+                                String parastritem = valuefrom1.getString(k);
+                                if (k != 0) {
+                                    paravaluefrom.append(",");
+                                }
+                                paravaluefrom.append(parastritem);
                             }
-                            paravaluefrom.append(parastritem);
+                            argupara.setValue(paravaluefrom.toString());
+                            System.out.println(argupara.getValue());
                         }
-                        argupara.setValue(paravaluefrom.toString());
-                        System.out.println(argupara.getValue());
+
                     }
 
 

+ 1 - 2
src/main/java/io/renren/modules/sys/controller/algs/CategoryController.java

@@ -19,8 +19,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/5/31 16:34
+ * @Author: Zishang
  */
 @RestController
 @RequestMapping("/category")

+ 0 - 1
src/main/java/io/renren/modules/sys/controller/algs/algModelsController.java

@@ -34,7 +34,6 @@ import static io.renren.common.utils.ShiroUtils.getUserId;
 
 /**
  * @Author: Ivan Q
- * @Date: 2021/6/8 9:34
  */
 @RestController
 @RequestMapping("/algs/models")

+ 0 - 1
src/main/java/io/renren/modules/sys/controller/algs/algTemplsController.java

@@ -38,7 +38,6 @@ import java.util.Map;
 
 /**
  * @Author: Ivan Q
- * @Date: 2021/5/25 15:03
  */
 @RestController
 @RequestMapping("/algs/templs")

+ 1 - 2
src/main/java/io/renren/modules/sys/controller/algs/algTrainController.java

@@ -37,8 +37,7 @@ import java.util.stream.Collectors;
 import static io.renren.common.utils.ShiroUtils.getUserId;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/11 16:28
+ * @Author: Zishang
  */
 @RestController
 @RequestMapping("/algstrain")

+ 21 - 9
src/main/java/io/renren/modules/sys/controller/algs/algsController.java

@@ -37,8 +37,7 @@ import java.util.Map;
 import static io.renren.common.utils.ShiroUtils.getUserId;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/10 20:56
+ * @Author: Zishang
  */
 
 @RestController
@@ -84,7 +83,7 @@ public class algsController{
     }
 
     /**
-     * 信息
+     * 信息,根据版本号列出文件信息
      */
     @GetMapping("/info/{algsId}")
     @RequiresPermissions("algs:info")
@@ -112,7 +111,7 @@ public class algsController{
         alg.setRemark(request.getParameter("remark"));
         alg.setCategoryId(Long.parseLong(request.getParameter("categoryId")));
         alg.setUid(Long.parseLong(request.getParameter("uid")));
-        alg.setFrameId(Long.parseLong(request.getParameter("frameId")));
+        alg.setFrameId(Long.parseLong(request.getParameter("frameId")));//镜像的id
         alg.setNumber(Long.parseLong(request.getParameter("number")));
 
         ValidatorUtils.validateEntity(alg, AddGroup.class);
@@ -130,11 +129,14 @@ public class algsController{
 
         Long algId=algsService.selectByAlgName(alg.getAlgorithmName()).getAlgorithmId();
         alg.setAlgorithmId(algId);
+        //获取上传的文件列表
         List<MultipartFile> files=request.getFiles("file");
         //若是智能算法,则调用上传智能算法方法,-1为传统算法,其他为智能算法
         if(alg.getFrameId()!=-1){
+            //初始化数据集列表
             List<DataSet> dataSets = new ArrayList<>();
             List<DataSetDy> dataSetsDy = new ArrayList<>();
+            //从请求参数中获取数据集和动态数据集的信息。如果这些参数不为空,将其解析为相应的对象列表。
             if (StringUtils.isNotEmpty(request.getParameter("dataSets"))) {
                 dataSets = JSON.parseArray(request.getParameter("dataSets"), DataSet.class);//如果有选择数据集,则将数据集从minio中拷贝到相应位置
             }
@@ -154,6 +156,7 @@ public class algsController{
             if (StringUtils.isNotEmpty(request.getParameter("dataSetsDy"))) {
                 dataSetsDy = JSON.parseArray(request.getParameter("dataSetsDy"), DataSetDy.class);
             }
+            //从请求参数中获取算法结果名称、结果位置、参数名称和参数类型的信息。
             String algResultNameString=request.getParameter("algResultNames");
             String algResultLocationString=request.getParameter("algResultLocations");
             String algParameterNameString=request.getParameter("algParameterName");
@@ -174,29 +177,33 @@ public class algsController{
      * @param files 算法文件
      */
     public void saveIntelligentAlg(Algorithm alg,List<DataSet> dataSets, List<DataSetDy> dataSetsDy,String algModelsString,String algTemplatesString,List<MultipartFile> files) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
-        Long algId=alg.getAlgorithmId();
-        Version version=new Version();
+        Long algId=alg.getAlgorithmId();//获取算法ID
+        Version version=new Version();//创建版本信息
         version.setAlgorithmId(algId);
+        System.out.println(versionService.getMaxId());
         version.setVersionName(alg.getAlgorithmName()+"#"+ (versionService.getMaxId() + 1));
         version.setCreationTime(new Date());
         version.setVersionStatus((byte) 0);
         version.setDeleteStatus((byte) 0);
         versionService.save(version);
+        //上传算法文件
         for(MultipartFile file:files){
             if(file.isEmpty())  break;
             MinIoUtils.uploadMultipartFile(file,"algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/"+file.getOriginalFilename());
         }
-        //将数据集上传
+        //将数据集上传,将静态数据集从MinIO中复制到相应的位置
         if (!dataSets.isEmpty()) {
             for (DataSet dataSet : dataSets) {
                 CategoryEntity category = categoryService.getById(dataSet.getCategoryId());
                 if (DataSetType.DIR_DATASET.getClassificationName().equals(category.getCategoryName())) {
                     MinIoUtils.copyFolder("algorithm", "alg"+algId+"/", DataSetType.STATIC_DATASET.getBucketName(), dataSet.getDatasetName() + "/");
+                    System.out.println(1111111);
                 } else {
                     MinIoUtils.copyFile("algorithm",
-                                        "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSet.getDatasetName()+".csv",
+                                        "alg"+algId+"/version"+versionService.getMaxId()+"/"+ dataSet.getDatasetName(),
                                                      DataSetType.STATIC_DATASET.getBucketName(),
-                                      dataSet.getDatasetName()+".csv");
+                                      dataSet.getDatasetName());
+                    System.out.println(2222222);
                 }
             }
         }
@@ -216,6 +223,7 @@ public class algsController{
 //            }
 //        }
         //MinIoUtils.copyFile("algorithm","alg"+algId+"/version"+versionService.getMaxId()+"/fea_data.csv","dataset","fea_data.csv");
+        //处理算法库文件
         if(algModelsString.length()!=0){
             String[] algModels=algModelsString.split(",");
             for(String algModelId:algModels){
@@ -227,6 +235,7 @@ public class algsController{
                 }
             }
         }
+        //处理算法模板文件
         if(algTemplatesString.length()!=0){
             String[] algTemplates=algTemplatesString.split(",");
             for(String algTemplateId:algTemplates){
@@ -376,6 +385,9 @@ public class algsController{
         return R.ok();
     }
 
+    /**
+     * 列出算法文件同一目录下的所有文件,包括数据集文件
+     */
     @GetMapping("/listFiles")
     public R listFiles(String algId) throws IOException, InvalidKeyException, NoSuchAlgorithmException, InsufficientDataException, InvalidResponseException, ErrorResponseException, XmlParserException, InvalidBucketNameException, InternalException {
 

+ 1 - 2
src/main/java/io/renren/modules/sys/controller/algs/versionController.java

@@ -37,8 +37,7 @@ import java.util.stream.Collectors;
 import static io.renren.common.utils.ShiroUtils.getUserId;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/17 11:38
+ * @Author: Zishang
  */
 @RestController
 @RequestMapping("/version")

+ 2 - 2
src/main/java/io/renren/modules/sys/controller/dataset/DataSetController.java

@@ -31,8 +31,7 @@ import java.util.*;
 import static io.renren.common.utils.ShiroUtils.getUserId;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/9 13:46
+ * @Author: Zishang
  */
 @RestController
 @RequestMapping("/dataset")
@@ -121,6 +120,7 @@ public class DataSetController {
 
     }
 
+
     /**
      * 删除
      */

+ 0 - 1
src/main/java/io/renren/modules/sys/controller/dataset/DataSetDyController.java

@@ -28,7 +28,6 @@ import static io.renren.common.utils.ShiroUtils.getUserId;
  * </p>
  *
  * @author allen
- * @since 2021-08-04
  */
 @RestController
 @RequestMapping("/datasetdy")

+ 6 - 3
src/main/java/io/renren/modules/sys/controller/minIo/MinioController.java

@@ -26,16 +26,18 @@ public class MinioController {
      * @return
      */
     @GetMapping("/readUrlContent")
-    public String readUrlContent(String algorithmNameToVersion, String verisionToFile, long algFrameId, String fileName) throws Exception {
+    public String readUrlContent(String algorithmNameToVersion, String verisionToFile, Long algFrameId, String fileName) throws Exception {
 
 
         //String requestUrl = minioClient.getPresignedObjectUrl(Method.GET, bucket, fileName, 1000, null);
         //使用minio工具类获取指定文件url
-        if (algFrameId == -1) {
+        if (algFrameId!=null && algFrameId == -1) {
             return MinIoUtils.getFileContent("algorithm", fileName);
         }
 
-        String requestUrl = MinIoUtils.getFileUrl("algorithm", "alg" + algorithmNameToVersion + "/version" + verisionToFile + "/" + fileName);
+//        String requestUrl = MinIoUtils.getFileUrl("algorithm", "alg" + algorithmNameToVersion + "/version" + verisionToFile + "/" + fileName);
+        //fileName中已经有"alg" + algorithmNameToVersion + "/version" + verisionToFile信息了,上述写法重复了,导致路径不正确
+        String requestUrl = MinIoUtils.getFileUrl("algorithm", fileName);
         HttpURLConnection conn = null;
         BufferedReader br = null;
         StringBuffer sbf = new StringBuffer();
@@ -58,6 +60,7 @@ public class MinioController {
             //开启链接
             conn.connect();
 
+
             br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
             String strContent = null;
             while ((strContent = br.readLine()) != null) {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/AlgTrainService.java

@@ -9,8 +9,7 @@ import org.springframework.stereotype.Service;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/11 16:06
+ * @Author: Zishang
  */
 public interface AlgTrainService extends IService<AlgTrain> {
     PageUtils queryPageOnUse(Map<String, Object> params);

+ 1 - 2
src/main/java/io/renren/modules/sys/service/AlgsService.java

@@ -11,8 +11,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/10 20:31
+ * @Author: Zishang
  */
 public interface AlgsService extends IService<Algorithm> {
     PageUtils queryPageOnUse(Map<String, Object> params);

+ 1 - 2
src/main/java/io/renren/modules/sys/service/CategoryService.java

@@ -8,8 +8,7 @@ import io.renren.modules.sys.entity.algs.CategoryEntity;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/5/31 16:20
+ * @Author: Zishang
  */
 public interface CategoryService extends IService<CategoryEntity> {
 

+ 1 - 2
src/main/java/io/renren/modules/sys/service/DataSetDyService.java

@@ -12,8 +12,7 @@ import java.util.Map;
  *  服务类
  * </p>
  *
- * @author allen
- * @since 2021-08-04
+ * @author Zishang
  */
 public interface DataSetDyService extends IService<DataSetDy> {
     public PageUtils queryPageOnUse(Map<String, Object> params);

+ 1 - 2
src/main/java/io/renren/modules/sys/service/DataSetService.java

@@ -8,8 +8,7 @@ import io.renren.modules.sys.entity.dataset.DataSet;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/9 13:33
+ * @Author: Zishang
  */
 public interface DataSetService extends IService<DataSet> {
 

+ 1 - 2
src/main/java/io/renren/modules/sys/service/VersionService.java

@@ -9,8 +9,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/17 10:35
+ * @Author: Zishang
  */
 public interface VersionService extends IService<Version> {
     PageUtils queryPageOnUse(Map<String, Object> params);

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/AlgTrainServiceImpl.java

@@ -23,8 +23,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/11 16:09
+ * @Author: Zishang
  */
 @Service("algTrainService")
 public class AlgTrainServiceImpl extends ServiceImpl<AlgTrainMapper, AlgTrain> implements AlgTrainService {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/AlgsServiceImpl.java

@@ -24,8 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/10 20:31
+ * @Author: Zishang
  */
 @Service("algorithmService")
 public class AlgsServiceImpl extends ServiceImpl<AlgorithmMapper, Algorithm> implements AlgsService {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/CategoryServiceImpl.java

@@ -21,8 +21,7 @@ import java.util.Map;
 
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/5/31 16:22
+ * @Author: Zishang
  */
 @Service("categoryService")
 public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, CategoryEntity> implements CategoryService {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/DataSetDyServiceImpl.java

@@ -28,8 +28,7 @@ import java.util.Map;
  *  服务实现类
  * </p>
  *
- * @author allen
- * @since 2021-08-04
+ * @author Zishang
  */
 @Service
 public class DataSetDyServiceImpl extends ServiceImpl<DataSetDyMapper, DataSetDy> implements DataSetDyService {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/DataSetServiceImpl.java

@@ -30,8 +30,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/9 13:35
+ * @Author:Zishang
  */
 @Service
 public class DataSetServiceImpl extends ServiceImpl<DataSetMapper, DataSet>  implements DataSetService {

+ 1 - 2
src/main/java/io/renren/modules/sys/service/impl/VersionServiceImpl.java

@@ -27,8 +27,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Author: Ivan Q
- * @Date: 2021/6/17 10:36
+ * @Author: Zishang
  */
 @Service("versionService")
 public class VersionServiceImpl extends ServiceImpl<VersionMapper, Version> implements VersionService {

+ 1 - 1
src/main/resources/mapper/levelManage/ProjectAttributesDao.xml

@@ -12,7 +12,7 @@
     </resultMap>
 
     <select id="hasProject" resultType="INTEGER">
-        SELECT COUNT(*) FROM information_schema.`TABLES` WHERE table_name="project" AND table_schema=#{schema}
+        SELECT COUNT(*) from all_tables where owner=#{schema} and TABLE_nAME='project'
     </select>
 
     <update id="createTable" parameterType="map">