Groovy 入门

张开发
2026/4/9 12:15:21 15 分钟阅读

分享文章

Groovy 入门
Groovy 学习资料https://www.bootwiki.com/groovy/index.htmlhttps://pan.baidu.com/s/1CKleLGL_s-VM7r17jJw3mA?pwdom661.为什么Groovy比较帅1Groovy是java平台上的脚本语言抽象程度更高。可以更简单快速地开发可以编写更上的代码。2与java语言无缝集成可称为“超级java”使用”类java“语法java程序员可以快速过度groovy与java二进制兼容都生成字节码所以可以与使用java语言所编写的框架和组件完美集成并且效率安全方面比其他脚本语言要高groovy对象就是java对象使用与jdk相同的API可以保护整个java产业在java上的巨大投资3在中小型项目中可以替代java在大型java项目中可以嵌入groovy应用2.Groovy 的特征1Groovy java - 重复的样板代码 可选的动态类型 闭包closures 领域规范语言DSL 生成器builders 元编程metaprogramming2) groovy 是没有类型/修饰符/return/lterator不需要导入集合的java.groovy 丢掉了许多java的包袱3不能确定变量类型时将变量类型设为Object4) DSLdomain specific languages5) 生成器可以生成XML/HTML/Swing树状数据结构6元编程运行时对类增加行为类似于AOP3.Eclipse的Groovy插件1)Help - software updates - find and install - search for new features - new remote site2)name:Groovyurl:http://dist.codehaus.org/groovy/distributions/update/参考文档http://t.csdn.cn/DsVEs4.Groovy 数值1)Groovy的一切都是对象。可以自动装箱与拆箱2)整数123-12,0都是Integer类的对象定义变量使用动态类型def price100等同于Integer price new Integer(100)100.times{println Hello} // 打印100次语句可以不用;结尾3)浮点数据1.5-3.14 都是BigDecimal类的对象4)数值类型Integer 15Long 100L, 100lFloat 1.23F, 4.22fDouble 1.23D, 4.22djava.math.BigInteger 123G, 123Gjava.math.BigDecimal 1.23G, 1.23g, 1.235)表达式与运算符1)ab 等价 a.equals(b)2)Groovy的就是java的3)Groovy支持操作符重载重载运算符对应的方法就是操作符重载4)操作符被重载以支持向集合添加项6)基于方法的运算符assert 437 //4.plus(3)assert 4-31 //4.minus(3)assert 4*312 //4.multiply(12)assert 4%31 //4.mod(3)assert 4**364 //4.power(3)assert 4/31.333333 //4.div(3)assert 4.intdiv(3)1 //整除assert !(43) //!(4.equals(3))assert 4!3 //!4.equals(3)assert !(43) //4.compareTo(3)0assert !(43) //4.compareTo(3)0assert 43 //4.compareTo(3)0assert 43 //4.compareTo(3)0assert 431 //4.compareTo(3)assert 48-1 //4.compareTo(3)assert 440 //4.compareTo(3)5.Groovy 集合概述1)Groovy直接在语言内使用集合不需要导入专门的类也不需要初始化对象集合是语言本身的本地成员2)每个Groovy集合都是java.util.Conllection 或 java。util.Map的实例3)List, String, StringBuffer, Range, Map, File Matcher 都使用统一的size()方法获取长度6.Groovy 正则表达式1)正则表达就是在Groovy中是本地语言级别的支持def aRegex ~lxtprintln aRegex.class //输出 class java.util.regex.Patterndef mat lxt ~lxtprintln mat.class //输出 class java.util.regex.Matcher2)~开头的字符串是模式Pattern对象7. Groovy 调用闭包1)闭包是一个可执行的代码块2)闭包在调用的时候才会执行3)闭包内默认itit是闭包的单个隐含参数参数化闭包def bClosure{println hello ${it}}bClosure.call(tets)bClosure(tets)bClosure tets8.Groovy类分析1)类/方法默认是public修饰符2)默认情况下Groovy编译的类属性是私有的3)变量与方法使用动态类型4)Groovy自动提供构造函数构造函数接受一个名称-值对的映射名称-值对与类的属性相对应。不用初始化对象的每个属性5)生成标准的setter和getter方法6)可以通过.语法间接地访问属性7)在进行属性操纵时总是会调用setter和getter方法即使直接通过.语法访问属性也是如此8)在java中这样只会输出所有对象的默认toString()实现包类名hashcode9)覆盖默认的toString()实现让输出效果更好9.GroovySQl概述1)GSQL结合利用闭包和迭代器把资源管理的复旦转移到Groovy框架本身从而简化HDBC编程2)不用关闭Connection,也不用关闭ResultSet3)Groovy把迭代机器变成隐含的使用起来更简单建立数据链接1)import groovy.sql.*def db jdbc:mysql://主机/数据数据库userUnicodetruecharacterEncodingUTF-8def user root //账户名def password 123456 // 用户密码def driver com.mysql.jdbc.Driver //驱动def sql Sql.newInstance(db,user,password,driver)//需要把mysql的驱动jar包拷贝至项目lib目录下数据库的CRUDsql.execute(delete from toys)def searchToyName toy1sql.eachRow(select * from toys where toyName?,[searchToyName]){toy- println \t\t toy.toyName : toy.unitPrice}操作DataSet1) DataSet类是sql类的子类可用Jad查看def toys sql.dataSet(toys) //dataSet()参数是表名toys.add(toyName:toy2,unitPrice:100)toys.each{toy-println \t\t toy.toyName : toy.unitPrice}

更多文章