摘要:
我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。但在多线程情况下,就不行了。 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection c 阅读全文
posted @ 2013-09-30 13:45
zhangsai
阅读(408)
评论(0)
推荐(0)
摘要:
1、什么是代码块 在Ruby中,{}或do...end之间的代码是一个代码块。代码块只能出现在一个方法的后边,它紧接在方法最后一个参数的同一行上,由yield关键字调用。例如:[1,2,3,4,5].each { |i| puts i }[1,2,3,4,5].each do |i| puts iend块变量:以yield关键字调用block也可以传递参数,block中竖线(|)之间给出的参数名用于接收来自yield的参数。 竖线之间(如上例中的 | i |)的变量被称作块变量,作用和一个正常方法的参数一样2、{}和do...end优先级不同 在传递一个block时,使用{}传递的block比 阅读全文
posted @ 2013-09-30 11:37
zhangsai
阅读(1323)
评论(0)
推荐(0)
摘要:
Ruby模块(module)2013-04-03 16:47:09|分类:Ruby|标签:rubyrequireloadextendinclude|字号订阅 Ruby 和 Java 一样支持单继承,也正如 Java 引入 interface 来解决多继承的两难问题一样,Ruby 也提供了单继承和多继承的妥协机制:即模块。 模块的定义和类比较相似,使用module关键字。但模块不能被实例化,也不能被子类化,模块是独立的,且一个模块对像是Module类的一个实例。在模块中,可以定义实例变量、实例方法、类变量、类方法和属性等,并且在模块中还可能以定义类和模块。在类中也可以定义模块。但是,必须被类引用 阅读全文
posted @ 2013-09-30 09:31
zhangsai
阅读(806)
评论(0)
推荐(0)
摘要:
简单的讲,一个迭代器就是一个能接受代码块的方法。当初为了进行迭代操作而设置了带块方法,现在很多时候仍然称它为迭带器。 可实际上,早期版本的 Ruby 将使用代码块的方法称为迭代器,因为它们就是被设计来实现循环迭代的。但是在Ruby发展过程中,代码块的用途在后来已经得到了很大的增强,从最初的循环抽象到任何事情,那些进行迭代操作的方法仍然可以叫做迭代器,但要将所有带块方法的调用过程都看作迭带器的话,并不太合适而且概念上也容易引起混乱。 现对Ruby中基础的迭代器做简单的介绍:1、each方法最简单的迭代器,连续访问集合的所有元素,依次赋给与each方法相关联的block的变量。由于Ruby 内建的 阅读全文
posted @ 2013-09-30 09:30
zhangsai
阅读(585)
评论(0)
推荐(0)
摘要:
三个方法的作用都是将一个字符串打印到控制台比较项目putsprintp换行符末尾添加换行符末尾不加换行符末尾添加换行符非字符串对象的输出调用该对象的to_s方法调用该对象的to_s方法通过inspect方法将对象转换成字符串 通过inspect方法将对象转换成字符串的方法能比to_s方法返回对程序员更加友好的对象表示。 比如,当要打印一个数组时,p输出采用的是数组字面量的表示法,而puts则只是简单的将每个元素打印到单独的一行!array =[2,4,6,8,10]puts arrayp arrayprint arrayputs array输出的结果是:246810p array的结果:[2, 阅读全文
posted @ 2013-09-30 09:29
zhangsai
阅读(1076)
评论(0)
推荐(0)
摘要:
block可以用来定义必须运行在事务控制环境下的代码。例如,你经常需要打开一个文件,对其内容做些处理,然后确保在处理结束后关闭文件。尽管可以用传统方式来实现,但也存在“应该由文件负责自身的关闭”这样的观点。Ruby的File类支持这项技术。 如果File.open有个关联的block,那么该block将被调用,且参数是该文件对象,当block执行结束时文件会被关闭。这意味着File.open有两种不同的行为:当和block一起调用时,它会执行该block并关闭文件;当单独调用时,它会返回文件对象。 使得上述行为成为可能的是Kernel.block_given?方法,当某方法和block关联在一 阅读全文
posted @ 2013-09-30 09:28
zhangsai
阅读(343)
评论(0)
推荐(0)
摘要:
Ruby中使用yield语句调用block时可以带有参数,参数值见传送个相关联的block。如果传给block的参数是已经存在的局部变量,那么这些变量即为block的参数,他们的值可能会因block的执行而改变。同样的规则也适用于block内的变量:如果他们第一次出现在block内,那么他们就是block的局部变量。相反,如果他们第一次出现在block外,那么block就与其外部环境共享这些变量。 例如:a =[4,2]b ='cat'c =1a.each{|b| c = b*a[1] d = c+2}p a =>[4,2]p b =>2p c =>8pdef 阅读全文
posted @ 2013-09-30 09:27
zhangsai
阅读(530)
评论(0)
推荐(0)
摘要:
一、 Ruby的赋值实际是以并行方式执行的,所以赋值语句右边的值不受赋值语句本身的影响。在左边的任意一个变量或属性赋值之前,右边的值按他们出现的顺序被计算出来。 1、当赋值语句有多于一个左值时,赋值表达式将返回由右值组成的数组。2、如果赋值语句的左值多于右值,那么多于的左值将被忽略。如果右值多于左值那么额外的右值将被忽略。 3、如果赋值表达式只有一个左值而有多个右值,那么右值将被转换成数组,然后赋值给左值。并行赋值语句最大的好处就是可以方便的交换两个变量的值。 二、使用Ruby的并行赋值操作,你可以叠起和展开数组。 1、如果最后一个左值有一个“*”前缀,那么所有多余的右值将被集合在一起,并作为 阅读全文
posted @ 2013-09-30 09:27
zhangsai
阅读(1272)
评论(0)
推荐(0)
摘要:
1.安装rubyruby的下载页面一个版本有3样要下载的,帮助文件和安装文件、还有一个mingw。安装时抛出make出错信息就是由于没有安装mingw引起的到下载页http://rubyforge.org/frs/?group_id=167下载相应版本的mingw32工具解压覆盖到安装目录中,要是怕出问题先对目录做备份。2.安装DevKit安装好Ruby后直接执行gem install rails命令安装rails会抛出下面的错误:The 'json' native gem requires installed build tools.ERROR: Error installi 阅读全文
posted @ 2013-09-30 09:26
zhangsai
阅读(435)
评论(0)
推荐(0)
摘要:
Ruby中的include语句应注意以下两个问题: 1、include与文件无关。C语言中,#include预处理指令在编译期将一个文件的内容插入到另一个文件中。Ruby语句只是简单地产生一个指向指定模块的引用。如果模块位于另一个文件中,在使用include之前,你必须使用require(或者不那么常用的旁系,load)将文件加载进来。 2、Ruby的include并非简单的将模块的实例方法拷贝到类中,相反,它建立一个由类到所包含模块的引用。如果多个类包含这个模块,它们都指向相同的内容。即使当程序正在运行时,如果你改变模块中一个方法的定义,所有包含这个模块的类都会表现出新的行为 3、上述第二条 阅读全文
posted @ 2013-09-30 09:26
zhangsai
阅读(2945)
评论(0)
推荐(0)
摘要:
函数名称说明示例&数组与,返回两数组的交集[1,2] & [2,3] =>[2]*复制数组n次[1,2]*2=> [1,2,1,2]+返回两数组的并集,但不排除重复元素[1,2]+[2,3]=>[1,2,2,3] [1,2,2,3]|追加元素,但排除重复元素[1,2] | [2,3]=> [1,2,3]-返回第一个数组与第二个数组不同的元素[1,2]-[2,3]=> [1]比较数组[1,2][2,3] =>flase==比较数组,若所有元素均相等时返回真[1,2]==[2,1]=>flaseassoc从数组的每个元素中寻找指定对象[1, 阅读全文
posted @ 2013-09-30 09:25
zhangsai
阅读(387)
评论(0)
推荐(0)
摘要:
1、button"welcome",:action =>"delete",:id =>@s[:s_id]},:class=>"class",:confirm =>"确定删除?"%>//"删除"--按钮显示文字//":id"--传递参数//":class"--css式样//":confirm"--删除操作前的确认框2、label //":label_id"--label的id//" 阅读全文
posted @ 2013-09-30 09:24
zhangsai
阅读(641)
评论(0)
推荐(0)
摘要:
乱码情况一:netbeas控制台输出乱码具体表现为:在程序中定义中文字符串,然后输出。但输出为乱码解决方法:打开netbeans安装目录,找到etc目录下的netbeans.conf文件。在netbeans_default_options的最后面添加上-J-Dfile.encoding=UTF-8这种情况,一般发生在win下面。乱码情况二:含有中文目录或文件名的输出为乱码具体表现为:如:输出root目录,在其下包含有中文的目录或文件名为中文,输出时中文为乱码。解决方法:设置Encoding.default_internal="UTF-8",其为表示默认内编码为UTF-8,这 阅读全文
posted @ 2013-09-30 09:23
zhangsai
阅读(1153)
评论(0)
推荐(0)
摘要:
--在视图中显示伴随请求的头部信息--在视图中显示请求中的参数--在视图中显示Rails发送的内容还有很多debug参数在默写特定情况下很实用,包括:base_path、controller、flash、request、response和session 阅读全文
posted @ 2013-09-30 09:21
zhangsai
阅读(331)
评论(0)
推荐(0)
摘要:
共同点:render和redirect_to 都是执行页面跳转,但是,写在这两个方法后面的语句仍然会被执行。不同:render:简单的页面渲染,可以指定渲染的页面或布局文件,但是不会发出请求,只根据函数参数渲染页面,不会执行action函数,不会重新加载服务器中的数据redirect_to:发送请求重定向页面,可以指定controller和action,会执行对应的action,重新加载服务器数据,不保留页面中原有的数据 阅读全文
posted @ 2013-09-30 09:19
zhangsai
阅读(475)
评论(0)
推荐(0)
摘要:
1、view"post",:controller =>"welcome",:action=>"upload"},:multipart =>true)do %>"buttonsave"%>2、controller def upload uploadFile(params["file"]["filedata"]) end def uploadFile(file) if!file.original_filename.empty? @filename= 阅读全文
posted @ 2013-09-30 09:17
zhangsai
阅读(1124)
评论(0)
推荐(0)

浙公网安备 33010602011771号