Groovy书写不依赖与实体的GORM

最近在写一个项目,它要求用户能够自主选择组件进行建表并实现数据库的增删改查操作。这个需求的重点在于数据表本身不固定,无法事先确定表和实体,我们的设想是利用前端将用户的选择结果转化成一个jsonList对象,后台通过解析json串后,利用sql语句的拼接实现建库以及GORM操作。
项目运用grails框架,因此这里我们使用的是groovy语法
首先我们需要建一个方法类,其中包含Create以及GORM方法:

class sqltest {
    static Sql sql = Sql.newInstance(url, username,
            password, driver)
    //数据库的连接配置 根据自己的数据库属性填写 

//    生成数据库表函数,json形式    '{"name":"表的名字","key1":"int","json2":"int"...}'
    static def createTable(def jsonlist) {
        println("开始创建表格" + jsonlist.get("name") + "...")
        def sqlCreate = 'CREATE TABLE '
        jsonlist.each {
            sqlCreate += it.key == "name" ? it.value + '( id  int PRIMARY KEY not null auto_increment , lastUpdated date null,dateCreated date null,' : it.key + " " + it.value + ","
        }
        sqlCreate = sqlCreate[0..sqlCreate.length() - 2] + ");"
        sql.execute(sqlCreate)
        println("表格" + jsonlist.get("name") + "创建完成!\n")
    }

    // 删除数据库表函数,json形式    '{"name":"表的名字"}'
    static def dropTable(def jsonlist) {
        println("开始删除表格" + jsonlist.get("name") + "...")
        def sqlCreate = 'drop TABLE '+jsonlist.get("name")+' ;'
        sql.execute(sqlCreate)
        println("表格" + jsonlist.get("name") + "删除完成!\n")
    }

    //插入数据   '{"name":"表的名字","key1":"value1","key2":"value2"...}'
    static def insertData(def jsonList) {
        println("开始插入数据到" + jsonList.get("name") + "...")
        def sqlInsert = 'INSERT into '
        jsonList.each {
            sqlInsert += it.key == "name" ? it.value + ' set ' : 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值