Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7593490 建立时间:2006年5月29日 |

| |
[Ruby on Rails]进入Ruby on Rails世界(转) 软件技术
lhwork 发表于 2007/1/19 15:27:07 |
一、ruby和rails简介
ruby是一种面向对象的动态脚本语言。它的语法很灵活,而且提供了丰富的类库。因此,用ruby编写程序的效率是非常高的。 虽然ruby很早就出现了(1993年诞生于日本),但由于ruby一直缺乏英语文档,而且当时的ruby在web开发上并不怎么出众。因此,在2000年之前,ruby还只在日本流行。但这一切被2000年问世的rails打破。 Rails是使用纯ruby编写的框架(framework)。它对web开发提供了强有力的支持,如支持数据映射、MVC模式、Web Services、安全等。而且这些功能操作起来要比同类的产品容易的多,如MVC模式就比struts更容易使用。除了这些,rails还可以根据模板自动生成web程序。这样可以省去我们很多的时间。在讨论ruby如何借助rails快速开发web程序之前,让我们先看看如何安装和运行ruby和rails。
安装和运行ruby
Ruby支持多个操作系统平台,目前支持w |
|
[Ruby on Rails]Rails学习的小总结 软件技术
lhwork 发表于 2007/1/19 15:25:34 |
总结一下,学习到的东西。
1、session使用
代码
session[:cart_key] ||=Cart.new
render_code();
上面方法表示如果session中的cart_key中的cart不存在,就新那一个cart对象.
2、多表关联
代码 |
|
[Ruby on Rails]在Linux平台上安装和配置Ruby on Rails详解 软件技术
lhwork 发表于 2007/1/19 15:16:32 |
ruby on rails推荐的生产运行环境是Linux/FreeBSD/Unix,即Unix系列的操作系统,采用lighttpd+FCGI的解决方案。以下我将以Linux操作系统,lighttpd+FCGI,MySQL数据库为例,从源代码编译安装开始讲解。
在安装之前,应该确认Linux操作系统已经安装好gcc编译器,否则请用Linux安装光盘先行安装gcc编译器:
gcc –v
如能返回gcc版本号,则gcc正确安装。
一、安装Ruby解析器
一些Linux发行版本,MacOSX操作系统都自带Ruby解析器,但是我仍然建议 |
|
[Hibernate]hibernate集合映射inverse和cascade详解 软件技术
lhwork 发表于 2007/1/19 11:53:56 |
4. hibernate如何根据pojo来更新数据库
4.0 在commit/flush之前,hibernate不会对pojo对象作神秘的处理。 4.0.1 在select查询出pojo时,hibernate根据“字段--属性”的对应关系,用字段的值填充pojo的属性; 然后根据“关系标记”生成sql语句从relationTable中查询出满足条件的relationPojo,并把这些relatinPojo 放到“关系属性”中。这个过程是机械的。
4.0.2 在pojo对象被查出来后,到commit(或flush)之前,它将是一个普通的java对象,hibernate不会做额外的手脚。 比如,不会限制你设置一个属性的值为null或其它任何值 在集合类Set的add(object)操作时, 不会改变object的值,不会检查参数object是否是一个pojo对象 设置mainPojo的一个“桥属性”的值,不会自动设置relationPojo的对应的“桥属性”的值。 执行session.delete(poj |
|
[Hibernate]浅谈Hibernate的flush机制 软件技术
lhwork 发表于 2007/1/19 11:52:29 |
随着Hibernate在Java开发中的广泛应用,我们在使用Hibernate进行对象持久化操作中也遇到了各种各样的问题。这些问题往往都是我们对Hibernate缺乏了解所致,这里我讲个我从前遇到的问题及一些想法,希望能给大家一点借鉴。 这是在一次事务提交时遇到的异常。 an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session) net.sf.hibernate.AssertionFailure:& |
|
[网站架构]自动运行awstats统计程序的问题 软件技术
lhwork 发表于 2007/1/19 9:49:51 |
apache 的日志配置成按照每24小时生成一个日志文件的原则,但是有个问题是每个日志文件记录的时间是从每天的早晨八点钟到第二天的八点钟。这样的话我的awstats自动统计程序最好在每天早晨七点59分开始运行,crontab配置如下:
58 7 * * * root /apache/httpd/cgi-bin/awstats/awstats.pl -update -config=dlog
但是发现该任务每天是准时执行了,却没有生成统计数据,研究后发现awstats是取当前时间(第二天)对应的日志文件,但是这个日志文件却还没存在,所以也就没有新的统计数据。
因此我们需要给awstats指定一个标识昨天的日志文件,awstats可以通过-LogFile参数来指定,我只好写一个脚本来完成这个功能,然后定期的执行该脚本,脚本的代码如下:
|
|
[Hibernate]Hibernate之多次映射同一个类 软件技术
lhwork 发表于 2007/1/19 9:45:52 |
假设一个博客系统中有一个表用来存储所有的文章,这个表中用一个大文本字段来存储文章的内容。当我们在显示其中一篇文章时,我们需要加载该文章的每一个字段的值。但是另外一种情况,我们仅仅需要列出最新发表的十篇文章,而且仅仅是为了在页面上显示其标题和链接的时候,我们就不希望程序去读取存储文章内容的字段,为什么呢?你不妨做一个测试,同样一个查询,读取大文本字段和不读取大文本字段的性能可能差别是三倍以上。因此为了提升应用性能,我们在显示最新文章列表的时候不想去读取文章的内容字段。但是Hibernate的做法不管你要不要都会把所有的字段读出并映射到bean类相对应的属性中。
我之前有一篇文章在介绍这个解决办法的时候采取的是添加另外一个类,然后在bean的配置文件中把文章内容的字段删掉,这样当我要显示不包含内容的文章列表,我的查询就可以直接针对新增的这个类,我们姑且称这种方法为方法一。
其实还有另外一种做法,那就是利用Hibernate的多次映射同一个类的方法,我们称为方法二。
这个方法与我之前的方法比较不同的在于没有必要再新增另外的类,也就是说对同 |
|
[Hibernate]关于类继承在Hibernate的问题 软件技术
lhwork 发表于 2007/1/19 9:43:34 |
今天碰到一个这样的问题:
有一个表包含了一个大文本字段,查询时候发现有没有带大文本字段执行的速度相差3-5倍,于是想着使用两个类同时映射到同一张表,假设这两个类分别是A、B,A中除了不包含大文本字段外,其他字段都包含;B直接继承A类并增加大文本字段。
分别编写两个映射文件,这样如果我需要大文本字段的内容的查询就用B进行查询,不需要大文本字段内容的查询就用A进行查许。
但是在实际运行中发现,对A进行查询的时候,Hibernate发出了两条SQL语句,一条是对A进行查询,另外一条对B查询。很是纳闷,这样一来不仅性能没有提升反倒而下降。
经过试验找到了解决的办法:
再增加一个类名为Base类,把A中所有属性以及方法搬到Base类来,A extends Base,同时B extends Base,映射文件无需改动,Base不做任何映射! 问题解决!
以后实际应用在使用到大字段的时候都小心谨慎,毕竟性能的差距很大,大家不妨试验一 |
|
|