Groovy简洁开发,我用到的简洁之处

最近一直在用Groovy开发之前的项目,一边学习一边开发,工具用的是IDEA(欲哭无泪,不熟悉真是搞死人).......因为我作的是服务层,是为公司其它项目作服务支撑的,因此就没有用框架,只有一些servlet与dao,下面写下我体会到的groovy的好处。java

一、defsql

def定义无类型的变量,个人理解就是根据你所赋值的进行自动转换。其实这点我的感受对于用惯了java语言的我来讲并无多大的方便。在这里面我还走过误区,以下:json

def stateStr = request.getParameter("state")//state传1
def state=0
state = stateStr
if(state==1){
      println "1"   
}
if("1".equals(state)){
    println "2"
}     

  其实这个最后打印出来的是“2”,原先我写的是上面那个if,还觉得def等自动匹配,看来没这么智能服务器

二、是否为空判断微信

def stateStr = request.getParameter("state")
if(stateStr){
        println "stateStr不为空"
}else{
        println "stateStr为空"
}

//固然也能够用!
if(!stateStr){
        println "stateStr为空"
}
    

  这个确实方便app

三、json、xml解析框架

def root = new JsonSlurper().parseText(allStr)
println "======root.access_token======"+root.access_token
codeToAccessToken = root.access_token
codeToOpenid = root.openid

  这个模块里面一个服务是微信消息服务,微信服务器给我返回的json格式字符串allStr,一句话就能够解析这个json,xml相似工具

四、SQL学习

void insertAccessToken(def access_token){
        def create_time = new Date()
        Sql db = new Sql(Commons.getDatasource())
        println db.execute("insert into access_token(access_token,create_time) values(${access_token},${new Date()})")
    }

    def getAccessToken(){
        Sql db = new Sql(Commons.getDatasource())
        def row = db.firstRow("select * from access_token order by id desc")
println row.id row }

  这就是groovy.sql的一部分用法,其中在String中用${}也是很爽的code

五、循环、遍历

data.eachWithIndex {it,i ->
            if(i==0){
                dataBuff.append("{name:'${it.get("trans_name")}',y: ${it.get("trans_amount")},sliced: true,selected: true},")
            }else{
                dataBuff.append("['${it.get("trans_name")}',${it.get("trans_amount")}],")
            }
        }

  

for(i in 1..15){
            nowCl.add(Calendar.DAY_OF_MONTH,1)
            year = nowCl.get(Calendar.YEAR)
            list.add("${year}-${month}-${day}")
        }

  还有each等,总的来讲确实简便了许多

刚接触groovy,之后要学习的地方还有不少,不断记录,不断积累,不断进步

相关文章
相关标签/搜索