最近一直在用Groovy開發以前的項目,一邊學習一邊開發,工具用的是IDEA(欲哭無淚,不熟悉真是搞死人).......由於我做的是服務層,是為公司其它項目做服務支撐的,所以就沒有用框架,只有一些servlet與dao,下面寫下我體會到的groovy的好處。
1、def
def定義無類型的變量,我的理解就是根據你所賦值的進行自動轉換。其實這點個人感覺對於用慣了java語言的我來說並沒有多大的方便。在這里面我還走過誤區,如下:
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等自動匹配,看來沒這么智能
2、是否為空判斷
def stateStr = request.getParameter("state")
if(stateStr){
println "stateStr不為空"
}else{
println "stateStr為空"
}
//當然也可以用!
if(!stateStr){
println "stateStr為空"
}
這個確實方便
3、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類似
4、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中用${}也是很爽的
5、循環、遍歷
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,以后要學習的地方還有很多,不斷記錄,不斷積累,不斷進步
