??xml version="1.0" encoding="utf-8" standalone="yes"?>丁香一区二区三区,日韩专区在线观看,一区二区在线视频http://www.aygfsteel.com/afrag/archive/2010/03/25/316607.htmlafragafragThu, 25 Mar 2010 15:34:00 GMThttp://www.aygfsteel.com/afrag/archive/2010/03/25/316607.htmlhttp://www.aygfsteel.com/afrag/comments/316607.htmlhttp://www.aygfsteel.com/afrag/archive/2010/03/25/316607.html#Feedback0http://www.aygfsteel.com/afrag/comments/commentRss/316607.htmlhttp://www.aygfsteel.com/afrag/services/trackbacks/316607.html转蝲?a >开发者的天空
1. Path的概?/strong>
文gpȝ会把文gq行l织q存攑֜媒介上,通常是一个或多个盘上。目前用的大多数的文gpȝ是以树Ş的方式来存储文g的。在树的端是一个(或多个) 根节点,在根节点之下是文件和目录Q目录下又可以包含文件和目录。理Z可以q样一层层的一直嵌套下去(当然实际中是不可能的Q例如Windowspȝ? 路径的长度有限制Q?br /> 下面的图中展CZ一个包含一个根节点的目录树。(在Windowspȝ中支持多个根节点Q例如C:\和D:\分别是一个根节点。)
io-dirStructure.JPG
Path能够唯一的标识文件系l中的某一个文件。例如上面图中的statusReport文g在Windowspȝ中就可以使用以下的Path来标识:
c:\home\sally\statusReport
在solarispȝ中,其path?br /> /home/sally/statusReport.
Path中的分隔W在不同的文件系l中是不同的Q例如在Windowspȝ中用\Q在Solarispȝ中??br /> Path又可以分为绝对\径和相对路径。绝对\径L含有根节点和用来定位文g的完整的目录列表。例?home/sally/statusReport 是l对路径。相对\径需要和另外的\径结合在一h能够定一个文件。例如加哦加哦哦joe/foo是一个相对\径,如果没有其他的信息,E序没? 办法定位q个文g。我们必说q个是相?home的相对\径,q样我们才能够找到它?br /> 除了我们熟悉的目录和文g之外Q有一些文件系l中q支持符号链接(symbolic link),也称为symlink或soft link。一个符号链接是一个特D的文gQ它实际上是另外一个链接的引用。在大多数情况下W号链接对应用程序是透明的,对符号链接的操作会自动的重定向到 链接所指向的目的地Q除非操作是删除q个W号链接、重命名q个W号链接或修改符号链接的目的地?br /> 在下面的图中QlogFile对于用户来说是一个常规的文gQ但是实际上是一个符号链接,链接到dir/logs/HomeLogFile文g? HomeLogFile是这个链接的目的地?br /> io-symlink.jpg
不恰当的使用W号链接会导致@环引用,例如目录A是一个符号链接,指向目录BQ目录B下有一个子目录是符号链接,指向目录A的父目录。这P当程序企N? 归的遍历整个目录树时Q就会出问题。幸q的是,q个问题已经被发CQƈ且不会导致程序的d@环?br />

2.Pathc?/strong>
PathcLJDK7新引入的一个类Q该cLjava.io.file包的基石?br /> 和类的名U所展示的一PPathcd是文件系l中path概念的程序表现。Path对象包含了文件名和目录列表,q些信息可以用来创徏pathQƈ且用 来检验、定位和操作文g?br /> Path实例是和底层操作pȝ相关的。在Solarispȝ中,Path使用Solaris的句?/home/joe/foo)Q在Window操作p? l中QPath会用Window的句?C:\home\joe\foo)。因此Path不是操作pȝ无关的。你不能够比较一个来自Solaris文g pȝ的Path和一个来自Windows文gpȝ的Pathq期望它们相{,在目录结构和文g完全一L时候也不行?br /> Path对应的文件或者目录可以不存在。我们可以以不同的方式创建Path实例q操作它Q扩展\径、抽取\径的一部分、和其他的Path比较。我们也可以 查Path对应的目录或文g是否存在?span onclick="tagshow(event)" class="t_tag">创徏文g或目录、打开或删除文件、修改许可权限等?br /> PathcL能够区分W号链接的。所有的Path的方法要么会是否是W号链接q执行不同的操作Q或者提供了一个选择来用户能够配置当遇到符号链接的 时候执行什么操作?br /> PathcL供了很多易于使用的特性,PathcȝҎ可以分成两类Q?br />

  • 路径操作—返回\径的一部分如根节点、名U、父目录的方法或者其他操作\径的Ҏ?br />
  • 文g操作—创建文件、打开文g、创建目录、删除文件? 拯文g{操作的Ҏ?br />
在下一文章中Q我们会具体介绍Pathcȝq些Ҏ?

afrag 2010-03-25 23:34 发表评论
]]>
在javaE序中如何知道数据库表的主键http://www.aygfsteel.com/afrag/archive/2006/01/20/28737.htmlafragafragFri, 20 Jan 2006 02:52:00 GMThttp://www.aygfsteel.com/afrag/archive/2006/01/20/28737.htmlhttp://www.aygfsteel.com/afrag/comments/28737.htmlhttp://www.aygfsteel.com/afrag/archive/2006/01/20/28737.html#Feedback1http://www.aygfsteel.com/afrag/comments/commentRss/28737.htmlhttp://www.aygfsteel.com/afrag/services/trackbacks/28737.html       有同事问到在E序中怎样知道数据库表中那些字D|主键。当时不知道Q晚上回来看了看JDK的文档?/SPAN>

       在?/SPAN>JDBC来查询数据库的时候,通常的步骤是Q?/SPAN>

1Q?SPAN style="FONT: 7pt 'Times New Roman'">  注册驱动E序

2Q?SPAN style="FONT: 7pt 'Times New Roman'">  获取数据库连?/SPAN>

3Q?SPAN style="FONT: 7pt 'Times New Roman'">  执行查询语句

4Q?SPAN style="FONT: 7pt 'Times New Roman'">  关闭q接?/SPAN>

       在获得数据库q接后,可以通过getMetaDataQ)Ҏ来获?/SPAN>DatabaseMetaData;然后通过DatabaseMetaData?/SPAN>getPrimaryKeys ()Ҏ来获取主键的信息?/SPAN>

       下面是我做的CZE序Q该E序?/SPAN>JBuilder2005Q?/SPAN>oracle8i下通过Q?/SPAN>
import java.sql.*;

import javax.sql.*;

public class TestJDBC {

    public TestJDBC() {

    }

 

    public static void main(String[] args) throws SQLException {

        Connection con = null;

        Statement st = null;

        ResultSet rst = null;

        try{

                     //注册数据库驱动程?/SPAN>

            Class.forName("oracle.jdbc.driver.OracleDriver");

                     //获取数据库连?/SPAN>

            con = DriverManager.getConnection("jdbc:oracle:thin:@10.60.203.80:1521:TestDB","123","123");

                     //获取主键信息

            rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

                     //打印主键信息

            if (!rst.isAfterLast()) {

                rst.next();

                System.out.println(rst.getString("TABLE_NAME") + "  " +

                                   rst.getString("COLUMN_NAME"));

            }

        }

        catch (Exception e){

            System.out.println(e.getLocalizedMessage());

        }

        finally{

            try{

                            //关闭q接

                if (rst != null)

                    rst.close();

                if (con != null)

                    con.close();

            }

            catch (SQLException e){

                throw e;

            }

        }

 

    }

}

 

上面的程序中,在获取主键信息的时?/SPAN>,语句

rst = con.getMetaData().getPrimaryKeys(null,null,"USER");

用来获取主键信息。关于该函数的详l信息,请参?/SPAN>JDK的文档。这里要说的是,在测试中发现W三个参敎ͼ数据库表名)是大写敏感的,如果写成user是查不到l果的?/SPAN>



afrag 2006-01-20 10:52 发表评论
]]>
关于Java的封装?/title><link>http://www.aygfsteel.com/afrag/archive/2005/10/29/17348.html</link><dc:creator>afrag</dc:creator><author>afrag</author><pubDate>Sat, 29 Oct 2005 08:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/afrag/archive/2005/10/29/17348.html</guid><wfw:comment>http://www.aygfsteel.com/afrag/comments/17348.html</wfw:comment><comments>http://www.aygfsteel.com/afrag/archive/2005/10/29/17348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/afrag/comments/commentRss/17348.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/afrag/services/trackbacks/17348.html</trackback:ping><description><![CDATA[<P>今天在看Spring in ActionQ看C一个很有意思的例子?BR>假如你编写了一个类:<BR><BR>public class ClassA{<BR>      private String fieldA;<BR><BR>      public ClassA(){<BR>         fieldA = "This is Class A";<BR>     }<BR><BR>      public myPrint(){<BR>            System.out.println(fieldA);<BR>      }<BR>}<BR><BR>OK。按照面向对象的思想Q其他的cd该不能够修改ClassA的fieldA字段吧?因此无论什么时候你调用ClassA的myPrintҎQ都应该打印的是“This is Class A”?BR>      但是Q实际情况ƈ不是如此Q请看下面的例子Q?BR>import java.lang.reflect.Field;<BR>public class  TestChangeApp<BR>{<BR>    public static void main(String[] args)<BR>    {<BR>        System.out.println("Begin to test change.");<BR>        ClassA test = new ClassA();<BR>        test.myPrint();</P> <P>        Field[] fields = test.getClass().getDeclaredFields();<BR>  <BR>        try<BR>        {<BR>            for (int i=0;i<fields.length ;i++ )<BR>            {<BR>                if (fields[i].getType().equals(java.lang.String.class)){<BR>                   fields[i].setAccessible(true);<BR>                   fields[i].set(test, "This field have been changed!");<BR>               }<BR>            }<BR>   <BR>        }<BR>        catch (Exception e)<BR>        {<BR>        }</P> <P>        test.myPrint();<BR>    }<BR>}<BR>q行l果是什么呢Q是<BR>Begin to test change.<BR>This is ClassA<BR>This field have been changed!<BR>也就是说Q在TestChangeAppcMQ可以修改ClassA的私有成员变量?/P><img src ="http://www.aygfsteel.com/afrag/aggbug/17348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/afrag/" target="_blank">afrag</a> 2005-10-29 16:26 <a href="http://www.aygfsteel.com/afrag/archive/2005/10/29/17348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߰</a>| <a href="http://" target="_blank">Ͷ</a>| <a href="http://" target="_blank">ֵ</a>| <a href="http://" target="_blank">ƫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͱ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">Dz</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽȪ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">µ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ײ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӱ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˱</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>