﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-梦在飞</title><link>http://www.blogjava.net/vso/</link><description>JAVA EE</description><language>zh-cn</language><lastBuildDate>Sat, 18 Apr 2026 08:02:59 GMT</lastBuildDate><pubDate>Sat, 18 Apr 2026 08:02:59 GMT</pubDate><ttl>60</ttl><item><title>阅读JavaServer Faces in action这本书笔记(vso20070802)</title><link>http://www.blogjava.net/vso/archive/2007/08/02/133989.html</link><dc:creator>vso</dc:creator><author>vso</author><pubDate>Thu, 02 Aug 2007 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/vso/archive/2007/08/02/133989.html</guid><wfw:comment>http://www.blogjava.net/vso/comments/133989.html</wfw:comment><comments>http://www.blogjava.net/vso/archive/2007/08/02/133989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vso/comments/commentRss/133989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vso/services/trackbacks/133989.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为开发JSF应用，需要一个JSF实现。参考实现（RI）是所有其它实现都要遵循的标准。&nbsp;所有JSF应用都必须的JAR文件：Jsf-api.jar, jsf-impl.jar, jstl.jar, standard.jar, commons-beanutils.jar, commons-collections.jar, commons-digester.jar, common...&nbsp;&nbsp;<a href='http://www.blogjava.net/vso/archive/2007/08/02/133989.html'>阅读全文</a><img src ="http://www.blogjava.net/vso/aggbug/133989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vso/" target="_blank">vso</a> 2007-08-02 14:38 <a href="http://www.blogjava.net/vso/archive/2007/08/02/133989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PL/SQL之笔记一(vso20070801)</title><link>http://www.blogjava.net/vso/archive/2007/08/01/133802.html</link><dc:creator>vso</dc:creator><author>vso</author><pubDate>Wed, 01 Aug 2007 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/vso/archive/2007/08/01/133802.html</guid><wfw:comment>http://www.blogjava.net/vso/comments/133802.html</wfw:comment><comments>http://www.blogjava.net/vso/archive/2007/08/01/133802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vso/comments/commentRss/133802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vso/services/trackbacks/133802.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>PL/SQL&nbsp; -- </span><span>块结构语言</span></p>
<p><span>块的语法如下</span><span>:</span></p>
<p><span>DECLARE</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/* declarative section */<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>--</span><span>可选</span><span>(</span><span>变量</span><span>/</span><span>游标定义</span><span>/</span><span>过程函数的声明</span><span>)</span></p>
<p><span>BEGIN</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/* executable section */<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>--</span><span>必须</span><span>(PL/SQL</span><span>语句</span><span>)</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>EXCEPTION</span></p>
<p><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/* exception section */<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>--</span><span>可选</span></p>
<p><span>END;</span></p>
<p>&nbsp;</p>
<p><span>用户自定义的数据类型</span><span>:</span></p>
<p><span>DECLARE</span></p>
<p><span>TYPE t_AddrRecord IS RECORD (</span></p>
<p><span>Province VARCHAR2(10),</span></p>
<p><span>City VARCHAR2(10),</span></p>
<p><span>Stree VARCHAR2(10),</span></p>
<p><span>Telephone NUMBER(12)</span></p>
<p><span>);</span></p>
<p><span>v_Address t_AddrRecord; --声明一个用户自定义数据类型的变量</span></p>
<p>&nbsp;</p>
<p><span>游标是用来处理使用</span><span>SELECT</span><span>语句从数据库中检索到的多行记录的工具</span><span>.</span><span>借助于游标的功能</span><span>,</span><span>数据库应用程序可以对一组记录逐个进行处理</span><span>,</span><span>每次处理一行记录</span><span>.</span></p>
<p>&nbsp;</p>
<p><span>过程和函数的区别是过程没有返回值</span><span>,</span><span>而函数是有返回值的</span><span>.</span></p>
<p>&nbsp;</p>
<p><span>PL/SQL</span><span>提供了三种不同的集合类型</span><span>:</span><span>按表索引</span><span>,</span><span>嵌套表和可变长数组</span></p>
<p>&nbsp;</p>
<p><span>ORACLE</span><span>内置包</span><span>:</span></p>
<p><span>DBMS_OUTPUT</span><span>包</span><span>,UTL_FILE</span><span>包</span><span>,TEXT_TO</span><span>包能够实现输入输出操作</span><span>,</span><span>包括屏幕输出</span><span>,</span><span>文件读写等操作</span><span>.</span></p>
<p><span>DBMS_ALERT</span><span>包能够实现数据库报警</span></p>
<p><span>DBMS_PIPE</span><span>可以管理数据库通道</span></p>
<p><span>DBMS_AQADM</span><span>用于管理高级队列的配置及其相应信息</span></p>
<p><span>DBMS_JOB</span><span>能够实现任务调度服务及数据库作业管理</span></p>
<p><span>DBMS_LOB</span><span>能够实现对大型对象的操作</span><span>.</span></p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/vso/aggbug/133802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vso/" target="_blank">vso</a> 2007-08-01 14:32 <a href="http://www.blogjava.net/vso/archive/2007/08/01/133802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>阅读Ruby+on+Rails实践这本书笔记(vso20070731)</title><link>http://www.blogjava.net/vso/archive/2007/08/01/133798.html</link><dc:creator>vso</dc:creator><author>vso</author><pubDate>Wed, 01 Aug 2007 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/vso/archive/2007/08/01/133798.html</guid><wfw:comment>http://www.blogjava.net/vso/comments/133798.html</wfw:comment><comments>http://www.blogjava.net/vso/archive/2007/08/01/133798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vso/comments/commentRss/133798.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vso/services/trackbacks/133798.html</trackback:ping><description><![CDATA[<p>windows版本ruby下载路径:<br><a href="http://rubyinstaller.rubyforge.org/">http://rubyinstaller.rubyforge.org/</a></p>
<p>gem 命令包含很多子命令和相应的选项，比如:<br>gem -h/--help &#8211; 显示 rubygem 的帮助<br>gem -v/--version &#8211; 显示rubygem 的版本号<br>gem list &#8211;local &#8211; 用子命令 list 列出本地安装的 gems</p>
<p>安装rails:<br>gem install rails &#8211;remote<br>这条命令显式地从远程服务器上安装 rails ，你也可以运行 gem install rails 来安装， gem 会判断本地是否安装了rails ，由此来决定是否从远程安装 rails.</p>
<p>一般来说，安装 rails 需要的包有 rake (这是类似 java ant 的 build 程序)， activerecord(rails 依赖的 orm 工具，也就是 MVC中的Model 模块)，actionpack (对应的 controller 模块)。 你可能会问那么相应的 view 模块怎么没有安装，因为 view 模块已经在默认的 ruby 安装中包含了，就是 eruby, 它的作用就是完成对模板文件 .rhtml 的解释。</p>
<p>创建空的 rails 网页应用程序骨架:<br>D:\railsdoc&gt;rails mybook<br>控制台输出:<br>create<br>create app/apis<br>create app/controllers<br>create app/helpers<br>create app/models<br>create app/views/layouts<br>create config/environments<br>create components<br>create db<br>create doc<br>create lib<br>create log<br>create public/images<br>create public/javascripts<br>create public/stylesheets<br>create script<br>create test/fixtures<br>create test/functional<br>create test/mocks/development<br>create test/mocks/test<br>create test/unit<br>create vendor<br>create Rakefile<br>create README<br>create CHANGELOG<br>create app/controllers/application.rb<br>create app/helpers/application_helper.rb<br>create test/test_helper.rb<br>create config/database.yml<br>create config/routes.rb<br>create public/.htaccess<br>create config/environment.rb<br>create config/environments/production.rb<br>create config/environments/development.rb<br>create config/environments/test.rb<br>create script/console<br>create script/console_sandbox<br>create script/destroy<br>create script/generate<br>create script/server<br>create script/runner<br>create script/benchmarker<br>create script/profiler<br>create script/breakpointer<br>create public/dispatch.rb<br>create public/dispatch.cgi<br>create public/dispatch.fcgi<br>create public/404.html<br>create public/500.html<br>create public/index.html<br>create public/favicon.ico<br>create public/javascripts/prototype.js<br>create doc/README_FOR_APP<br>create log/server.log<br>create log/production.log<br>create log/development.log<br>create log/test.log</p>
<p>Rails 开发的方式是： 由 rails 来生成默认的应用程序骨架，你所做的工作就是在默认目录结构中编辑文件增加应用程序逻辑就可以了。</p>
<p>启动webrick 服务器:<br>D:\railsdoc\mybook&gt;ruby script\server</p>
<p>运行程序:<br>打开浏览器 ，输入网址<a href="http://127.0.0.1:3000/">http://127.0.0.1:3000/</a></p>
<p>Rails 开发工作的大部分集中在创建和编辑 apps 目录下的文件</p>
<p>Apps 目录下包含四个主要目录，它们分别是:<br>１：Controllers 目录存放 rails 应用中相应的 controller 类，controller 类处理来自用户的 web 请求。<br>２：views 目录存放相应的模板文件，模板文件填充数据后，转换为 html 格式传递给用户的浏览器。<br>３：models目录存放数据模型类，模型类封装了数据库中的数据。很多框架在数据模型层都做的比较复杂，用过 rails 后，你会发现它非常容易使用。<br>４：helpers 目录存放了简化 Controllers, models, views 使用的帮助类。</p>
<p>运行 ruby script\generate controller MyTest<br>D:\railsdoc\mybook\app\controllers 目录中将生成一个包含 MyTestController 类定义骨架的名为 my_test_controller.rb 的文件</p>
<p>这里需要做一些解释，在运行 ruby script\generate controller MyTest 的时候， rails 做了一些默认的假设。 MyTest 对应的 controller 文件是 my_test_controller.rb, 文件中控制器类名是 MyTestController，而 url 映射是 /My_Test/ .</p>
<p>在编辑完 controller 后，重新刷新页面，就可以使程序生效。对于编译型的 java 语言来说，不重新编译，重新启动服务器是无法做到这点的</p>
<p>新建数据库表 books<br>id int(11) 主键<br>title varchar(100)<br>description text<br>buydate date</p>
<p>告诉 rails 如何找到数据库信息，打开 D:\railsdoc\mybook\config 目录，编辑 database.yml 配置文件</p>
<p>如何将ruby对象保存到 yaml 文件中.<br>参考文档： <a href="http://www.ruby-doc.org/core/classes/YAML.html">http://www.ruby-doc.org/core/classes/YAML.html</a><br>require &#8216;yaml&#8217;<br>tree = { :name =&gt; &#8216;ruby&#8217;,<br>:uses =&gt; [&#8216;script&#8217;,&#8217;web&#8217;,&#8217;testing&#8217;,&#8217;etc&#8217;]<br>}<br>File.open(&#8220;tree.yaml&#8221;,&#8221;w&#8221;) {|f| YAML.dump(tree,f)}</p>
<p>如何在 ruby 程序中读取 yaml 文件。<br>require &#8216;yaml&#8217;<br>tree = YAML.load(File.open(&#8220;tree.yaml&#8221;)<br>tree[:uses][1]<br>输出结果： &#8220;web&#8221;</p>
<p>下面就是个例子：<br>conf/config.yaml 文件内容如下：<br>host: 127.0.0.1<br>prefs:<br>username: mulder<br>password: trustno1<br>filename: xfiles<br>我们可以在ruby 中这样使用它<br>require &#8216;yaml&#8217;<br>config = YAML.load(File.open(&#8220;conf/config.yaml&#8221;))<br>config[&#8220;host&#8221;] -- 输出结果 &#8220;127.0.0.1&#8221;<br>config[&#8220;prefs&#8221;][&#8220;password&#8221;] -- 输出结果 &#8220;trustno1&#8221;</p>
<p>由于重新定义了数据库配置，需要重新启动 webrick 服务器才能让 rails 找到数据库配置信息。</p>
<p>用rails生成Model类Book的骨架文件book.rb,如下:<br>运行 ruby script\generate model book<br>book.rb:<br>class Book &lt; ActiveRecord::Base</p>
<p>在这里 Rails 将数据库中的books 表映射到 Book 类。 这里 Rails 再次使用了习惯约定，那就是数据库表以复数形式命名，而与之对应的 Model 类，使用单数形式。这里 rails 非常智能，它理解英文的复数规则</p>
<p>运行 ruby script\generate controller book 生成 controller 骨架文件 book_controller.rb。</p>
<p>class BookController &lt; ApplicationController<br>scaffold :book<br>end</p>
<p>scaffold :book &#8211; 这句是你惟一需要写的代码，它生成了数据库表对应的 CRUD 操作，而且令人激动的是它生成了对应的视图模板文件。</p>
<p>我们重新编辑 book_controller.rb 文件<br>class BookController &lt; ApplicationController<br>scaffold :book<br>def list<br>@books = Book.find_all<br>end<br>end</p>
<p>这里我们需要自己写一个 list.rhtml<br>代码如下：<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;All books&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;h1&gt;Online Mybook - All books&lt;/h1&gt;<br>&lt;table border="1"&gt;<br>&lt;tr&gt;<br>&lt;td width="80%"&gt;&lt;p align="center"&gt;&lt;i&gt;&lt;b&gt;book&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;<br>&lt;td width="20%"&gt;&lt;p align="center"&gt;&lt;i&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;% @books.each do |book| %&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;%= link_to book.title, :action =&gt; "show", :id =&gt; book.id %&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;%= book.buydate %&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;% end %&gt;<br>&lt;/table&gt;<br>&lt;p&gt;&lt;%= link_to "Create new book", :action =&gt; "new" %&gt;&lt;/p&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</p>
<p>创建 categories 数据表<br>id int(11) <br>name varchar(50)</p>
<p>ruby script\generate controller Category<br>category_controller.rb:<br>class CategoryController &lt; ApplicationController<br>scaffold :category<br>end</p>
<p>ruby script\generate model Category</p>
<p>为了让 books 数据表包含类别字段，我们需要新增加一个 category_id字段，字段定义为 int 型与 categories 表的 id 字段类型相同。</p>
<p>book.rb 修改如下：<br>class Book &lt; ActiveRecord::Base<br>belongs_to :category<br>end<br>这行代码告诉 Rails， 一本书属于一个类别<br><br>category.rb 修改如下：<br>class Category &lt; ActiveRecord::Base<br>has_many :books<br>end<br>这行代码告诉 Rails， 一个类别可以包含很多本书。</p>
<p>现在我们从新定义 edit 函数，来覆盖它的 scalffold 版本。<br>编辑 book_controller.rb 文件<br>class BookController &lt; ApplicationController<br>scaffold :book<br>def list<br>@books = Book.find_all<br>end<br>def edit<br>@book = Book.find(@params["id"])<br>@categories = Category.find_all<br>end<br>end</p>
<p>新建一个 edit.rhtml:<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;Edit book&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;h1&gt;Edit book&lt;/h1&gt;<br>&lt;form action="../update" method="POST"&gt;<br>&lt;input id="book_id" name="book[id]" size="30"<br>type="hidden" value="&lt;%= @book.id %&gt;" /&gt;<br>&lt;p&gt;&lt;b&gt;Title&lt;/b&gt;&lt;br&gt;<br>&lt;input id="book_title" name="book[title]" size="30"<br>type="text" value="&lt;%= @book.title %&gt;" /&gt;<br>&lt;/p&gt;<br>&lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;br&gt;<br>&lt;input id="book_description" name="book[description]"<br>size="30" type="text"<br>value="&lt;%= @book.description %&gt;" /&gt;<br>&lt;/p&gt;<br>&lt;p&gt;&lt;b&gt;Category:&lt;/b&gt;&lt;br&gt;<br>&lt;select name="book[category_id]"&gt;<br>&lt;% @categories.each do |category| %&gt;<br>&lt;option value="&lt;%= category.id %&gt;"<br>&lt;%= ' selected' if category.id == @book.category.id %&gt;&gt;<br>&lt;%= category.name %&gt;<br>&lt;/option&gt;<br>&lt;% end %&gt;<br>&lt;/select&gt;&lt;/p&gt;<br>&lt;input type="submit" value="Update" /&gt;<br>&lt;/form&gt;<br>&lt;a href="/book/show/&lt;%= @book.id %&gt;"&gt;<br>Show<br>&lt;/a&gt; |<br>&lt;a href="/book/list"&gt;<br>Back<br>&lt;/a&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</p>
<p>编辑list.rhtml<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;All books&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;h1&gt;Online Mybook - All books&lt;/h1&gt;<br>&lt;table border="1"&gt;<br>&lt;tr&gt;<br>&lt;td width="80%"&gt;&lt;p align="center"&gt;&lt;i&gt;&lt;b&gt;书名&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;<br>&lt;td width="20%"&gt;&lt;p align="center"&gt;&lt;i&gt;&lt;b&gt;类别&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;<br>&lt;td width="20%"&gt;&lt;p align="center"&gt;&lt;i&gt;&lt;b&gt;购买日期&lt;/b&gt;&lt;/i&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;% @books.each do |book| %&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;%= link_to book.title, :action =&gt; "show", :id =&gt; book.id %&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;%= book.category.name %&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;%= book.buydate %&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;% end %&gt;<br>&lt;/table&gt;<br>&lt;p&gt;&lt;%= link_to "Create new book", :action =&gt; "new" %&gt;&lt;/p&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</p>
<p>rails的缺点:<br>1:Rails 毕竟还没有大型项目的成功案例.<br>2:Rails 是最近刚刚出来的框架，还不够成熟。<br>3:ruby 缺少组件的架构。<br>我觉得未来应用程序框架应该具备两个特点，那就是：&#8220;易用性&#8221;和&#8220;组件&#8221;。从现在的情形看，Rails 具备了&#8220;易用性&#8221;的特点，而大多数 Java 框架具备了&#8220;组件&#8221;的特点。我觉得：&#8220;好的框架的复杂性应该被组件封装在&#8220;黑箱&#8221;中，而&#8220;易用性&#8221;应该体现在组件的使用上&#8221;。所以 Rails 的未来应该向组件上发展，而 Java 框架应该继续在组件易用性上多做文章，两者的趋势是融合。</p>
<img src ="http://www.blogjava.net/vso/aggbug/133798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vso/" target="_blank">vso</a> 2007-08-01 14:24 <a href="http://www.blogjava.net/vso/archive/2007/08/01/133798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA EE 软件下载</title><link>http://www.blogjava.net/vso/archive/2006/12/27/90356.html</link><dc:creator>vso</dc:creator><author>vso</author><pubDate>Wed, 27 Dec 2006 09:58:00 GMT</pubDate><guid>http://www.blogjava.net/vso/archive/2006/12/27/90356.html</guid><wfw:comment>http://www.blogjava.net/vso/comments/90356.html</wfw:comment><comments>http://www.blogjava.net/vso/archive/2006/12/27/90356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vso/comments/commentRss/90356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vso/services/trackbacks/90356.html</trackback:ping><description><![CDATA[TOMCAT下载路径：<br><a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a><br>MYECLIPSE下载路径：<br><a href="http://www.myeclipseide.com/">http://www.myeclipseide.com/</a><br>MYSQL下载路径：<br><a href="http://download.mysql.cn/src/2006/0710/5543.html">http://download.mysql.cn/src/2006/0710/5543.html</a> <br>RUBY下载路径:<br><a href="http://rubyforge.org/frs/?group_id=167">http://rubyforge.org/frs/?group_id=167</a>
<img src ="http://www.blogjava.net/vso/aggbug/90356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vso/" target="_blank">vso</a> 2006-12-27 17:58 <a href="http://www.blogjava.net/vso/archive/2006/12/27/90356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>