无需编程,基于微软mssql数据库RESTfulAPI接口零代码生成CRUD数据库零代码生成CRUDCRUDRESTfulAPI接口]()介绍,引入FreeMarker模板引擎,通过配置模板创建和修改物理表结构SQL语句,并通过配置oracle数据库SQL模板,基于oracle数据库,零代码实现crud增删改查、修改和查询。同样,本文可以轻松支持MicrosoftSQLServer数据库。MSSQL简介SQLServer是微软公司推出的一种关系型数据库管理系统。它具有使用方便、可扩展性好、相关软件集成度高等优点,可以从运行MicrosoftWindows的计算机和大型多处理器服务器等多种平台上使用。MicrosoftSQLServer是一个全面的数据库平台,它通过集成的商业智能(BI)工具提供企业级数据管理。MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供更安全可靠的存储功能,使您能够为业务构建和管理高可用、高性能的数据应用。UI界面以课程对象为例,无需编程,基于MSSQL数据库,通过零代码配置即可实现CRUD增删改查RESTfulAPI界面和管理UI。创建课程表编辑课程数据课程数据列表通过DBeaver数据库工具查询mssql数据定义FreeMarker模板Createtablecreate-table.sql.ftlCREATETABLE"${tableName}"(<#listcolumnEntityListascolumnEntity><#ifcolumnEntity.dataType=="BOOL">"${columnEntity.name}"BIT<#ifcolumnEntity.defaultValue??>默认<#ifcolumnEntity.defaultValue=="true">1<#else>0#if>#如果><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="INT">"${columnEntity.name}"INT<#ifcolumnEntity.autoIncrement==true>IDENTITY(1,1)#if><#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="BIGINT">"${columnEntityy.name}"BIGINT<#ifcolumnEntity.autoIncrement==true>IDENTITY(1,1)#if><#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#如果columnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="FLOAT">"${columnEntity.name}"FLOAT<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="DOUBLE">"${columnEntity.name}"DOUBLE<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="DECIMAL">"${columnEntity.name}"DECIMAL<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="DATE">"${columnEntity.name}"DATE<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#如果columnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="TIME">"${columnEntity.name}"TIME<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="DATETIME">"${columnEntity.name}"DATETIME<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="TIMESTAMP">"${columnEntity.name}"TIMESTAMP<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="CHAR">"${columnEntity.name}"CHAR(${columnEntity.length})<#ifcolumnEntity.defaultValue??>默认'${columnEntity.defaultValue}'#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="VARCHAR">"${columnEntity.name}"VARCHAR(${columnEntity.length})<#ifcolumnEntity.defaultValue??&g吨;默认'${columnEntity.defaultValue}'#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="PASSWORD">"${columnEntity.name}"VARCHAR(200)<#ifcolumnEntity.defaultValue??>默认'${columnEntity.defaultValue}'#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="ATTACHMENT">"${columnEntity.name}"VARCHAR(4000)<#ifcolumnEntity.defaultValue??>默认'${columnEntity.defaultValue}'#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="TEXT">"${columnEntity.name}"VARCHAR(4000)<#ifcolumnEntity.defaultValue??>DEFAULT'${columnEntity.defaultValue}'#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="LONGTEXT">"${columnEntity.name}"TEXT<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="BLOB">"${columnEntity.name}"BINARY<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#如果columnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#elseifcolumnEntity.dataType=="LONGBLOB">"${columnEntity.name}"BINARY<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if><#else>"${columnEntity.name}"VARCHAR(200)<#ifcolumnEntity.defaultValue??>默认${columnEntity.defaultValue}#if><#ifcolumnEntity.nullable!=true>NOTNULL#if><#ifcolumnEntity_has_next>,#if>#if>#list>);<#listcolumnEntityList作为columnEntity><#ifcolumnEntity.indexType??&&columnEntity.indexType=="PRIMARY">ALTERTABLE"${tableName}"ADDCONSTRAINT"${columnEntity.indexName}"PRIMARYKEY("${columnEntity.name}");#if><#ifcolumnEntity.indexType??&&columnEntity.indexType=="UNIQUE">ALTERTABLE"${tableName}"ADDCONSTRAINT"${columnEntity.indexName}"UNIQUE("${columnEntity.name}");#if><#ifcolumnEntity.indexType??&&(列实体。indexType=="INDEX"||columnEntity.indexType=="FULLTEXT")>CREATEINDEX"${columnEntity.indexName}"ON"${tableName}"("${columnEntity.name}");#if>#list><#ifindexEntityList??><#listindexEntityListasindexEntity><#ifindexEntity.indexType??&&indexEntity.indexType=="PRIMARY">ALTERTABLE"${tableName}"ADDCONSTRAINT"${indexEntity.name}"PRIMARYKEY(<#listindexEntity.indexLineEntityListasindexLineEntity>"${indexLineEntity.columnEntity.name}"<#ifindexLineEntity_has_next>,#if>#list>);#if><#ifindexEntity.indexType??&&indexEntity.indexType=="UNIQUE">ALTERTABLE"${tableName}"ADDCONSTRAINT"${indexEntity.name}"UNIQUE(<#listindexEntity.indexLineEntityListasindexLineEntity>"${indexLineEntity.columnEntity.name}"<#ifindexLineEntity_has_next>,#if>#list>);#if><#ifindexEntity.indexType??&&(indexEntity.indexType=="INDEX"||indexEntity.indexType=="FULLTEXT")>在“${tableName}”上创建索引“${indexEntity.name}”(<#listindexEntity.indexLineEntityListasindexLineEntity>“${indexLineEntity.columnEntity.name}”<#ifindexLineEntity_has_next>,#if>#list>);#if>#list>#if>EXECsp_addextendedproperty'MS_Description',N'${caption}','SCHEMA',N'dbo','TABLE',N'${tableName}';<#listcolumnEntityListascolumnEntity>EXECsp_addextendedproperty'MS_Description',N'${columnEntity.caption}','SCHEMA',N'dbo','TABLE',N'${tableName}','COLUMN',N'${columnEntity.name}';#list>创建ca_course表UI点击CreateForm后,后台会转换成对应的SQL脚本,最后将创建物理表CREATETABLE"ca_course"("id"BIGINTIDENTITY(1,1)NOTNULL,"name"VARCHAR(200)NOTNULL,"classHour"INT,"score"FLOAT,"teacher"VARCHAR(200),"fullTextBody"VARCHAR(4000),"createdDate"DATETIMENOTNULL,"lastModifiedDate"DATETIME);ALTERTABLE"ca_course"添加约束"primary_key"PRIMARYKEY("id");CREATEINDEX"ft_fulltext_body"ON"ca_course"("fullTextBody");EXECsp_addextendedproperty'MS_Description',N'课程','SCHEMA',N'dbo','TABLE',N'ca_course';EXECsp_addextendedproperty'MS_Description',N'编号','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'id';EXECsp_addextendedproperty'MS_Description',N'课程名称','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'name';EXECsp_addextendedproperty'MS_Description',N'课时','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'classHour';EXECsp_addextendedproperty'MS_Description',N'credits','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'score';EXECsp_addextendedproperty'MS_Description',N'teacher','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'teacher';EXECsp_addextendedproperty'MS_Description',N'全文索引','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'fullTextBody';EXECsp_addextendedproperty'MS_Description',N'创建时间','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'createdDate';EXECsp_addextendedproperty'MS_Description',N'modifiedDate','SCHEMA',N'dbo','TABLE',N'ca_course','COLUMN',N'lastModifiedDate';修改表包括修改和删除表结构和索引等,创建表的原理与application.properties类似。您需要根据需要配置数据库连接驱动程序,无需重新发布即可在不同数据库之间切换。#mssqlspring.datasource.url=jdbc:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=crudapspring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriverspring.datasource.username=saspring.datasource.password=Mssql1433总结本文主要介绍crudapi支持mssql数据库的实现原理,并以course对象为例,零代码实现CRUD增删改查RESTfulAPI,后面还会介绍更多的数据库,如Mongodb等.实现方式代码量和时间稳定性传统开发大概1000行,2天/人,5个bug左右,crudapi系统0行,1分钟,基本为0综上所述,使用crudapi系统可以大大提高工作效率,节约成本,让数据处理变得更容易了!crudapi简介Crudapi是crud+api的组合,即增删改查接口。它是一种零代码可配置产品。使用crudapi可以告别枯燥的代码增删改查,让您更专注于业务,节省大量成本,提高工作效率。Crudapi的目标是让数据处理变得更容易,而且它对所有人免费!无需编程,通过配置自动生成增删改查CRUD的RESTfulAPI,提供后台UI管理业务数据。基于主流开源框架,拥有自主知识产权,支持二次开发。该demo展示了crudapi是一个产品级的零代码平台。不同于自动代码生成器,它不需要生成Controller、Service、Repository、Entity等业务代码。该程序可以在运行时使用。真正的0代码可以覆盖基础的和业务无关的CRUDRESTfulAPI。官网地址:https://crudapi.cn测试地址:https://demo.crudapi.cn/crudapi/login附源码地址GitHub地址https://github.com/crudapi/crudapi-admin-webGitee地址https://gitee.com/crudapi/crudapi-admin-web由于网络原因,GitHub可能会比较慢,改成访问Gitee即可,代码会同步更新。
