风之语

posts(201) comments(182) trackbacks(1)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • ajax(1)
  • android(1)
  • apache(1)
  • AppFuse(1)
  • BIRT(1)
  • iText(1)
  • JSF(8)
  • kettle(1)
  • linux(5)
  • mac(1)
  • maven(1)
  • MSTR(3)
  • Open XML(1)
  • Oracle(21)
  • RCP
  • Struts(2)
  • Struts2(2)
  • SybaseIQ(6)
  • tapestry
  • tomcat(2)
  • weblogic(1)
  • webservice(1)
  • weka(1)
  • 云计算(1)
  • 收藏(31)
  • 数据仓库(11)
  • 架构设计(3)
  • 生活(2)
  • 集群(1)
  • 项目管理(6)

随笔档案

  • 2012年12月 (4)
  • 2012年11月 (1)
  • 2012年7月 (2)
  • 2011年8月 (1)
  • 2011年7月 (1)
  • 2011年3月 (1)
  • 2010年12月 (2)
  • 2010年11月 (4)
  • 2010年10月 (3)
  • 2010年9月 (5)
  • 2010年8月 (1)
  • 2010年7月 (4)
  • 2010年3月 (1)
  • 2010年2月 (3)
  • 2009年12月 (3)
  • 2009年11月 (4)
  • 2009年9月 (3)
  • 2009年6月 (5)
  • 2009年5月 (3)
  • 2009年4月 (2)
  • 2009年3月 (5)
  • 2009年2月 (4)
  • 2009年1月 (2)
  • 2008年11月 (2)
  • 2008年9月 (1)
  • 2008年7月 (2)
  • 2008年6月 (4)
  • 2008年5月 (6)
  • 2008年4月 (1)
  • 2008年3月 (1)
  • 2007年12月 (2)
  • 2007年11月 (5)
  • 2007年10月 (2)
  • 2007年9月 (3)
  • 2007年8月 (3)
  • 2007年4月 (1)
  • 2007年3月 (2)
  • 2007年2月 (2)
  • 2007年1月 (2)
  • 2006年12月 (3)
  • 2006年8月 (2)
  • 2006年7月 (2)
  • 2006年6月 (2)
  • 2006年4月 (2)
  • 2006年3月 (1)
  • 2006年2月 (3)
  • 2006年1月 (6)
  • 2005年12月 (6)
  • 2005年11月 (4)
  • 2005年10月 (17)
  • 2005年9月 (25)
  • 2005年8月 (16)
  • 2005年7月 (8)

相册

  • 技术图片

收藏夹

  • java

link

My wife

  • My wife's blog

最新随笔

  • 1. apache修改最大连接并用ab网站压力测试
  • 2. Vm虚拟机访问本地硬盘文件
  • 3. NFS文件无法写入的权限问题
  • 4. weblogic设置上传文件访问权限
  • 5. 在android上动态实现ichartjs的3D柱形图
  • 6. 使用Oracle trunc 来指定精确的年月日时分秒
  • 7. Quartz 2.1.5 web应用配置
  • 8. LoginAny 使用笔记
  • 9. MyEclipse 无响应的几种解决办法
  • 10. java.sql.SQLException: No more data to read from socket

搜索

  •  

积分与排名

  • 积分 - 402238
  • 排名 - 139

最新评论

  • 1. re: 使用Oracle trunc 来指定精确的年月日时分秒[未登录]
  • 政治
  • --张三
  • 2. re: 干掉流氓软件vrvrf_c.exe,vrvedp_m.exe[未登录]
  • `
  • --1
  • 3. re: 无需刻录DMG光盘,教你在VMWare下安装MAC OS X Snow Leopard 10.6
  • 我走到了换DMG映像的时候,然后就没有反应了,这个是什么情况,是不是我的映像文件有问题,还是。。。。
  • --玉竹常青
  • 4. re: LoginAny 使用笔记
  • 怎么没一个人留言,现在来是不是在挖坟啊
  • --ellipse
  • 5. MSTR web应用的部署[未登录]
  • 请问,如何用oracle Application Server服务器部署mstr web应用?
  • --rocky

阅读排行榜

评论排行榜

Hibernate 的 not is null 和 is not null

在Hibernate2.x里Hql支持 not is null 也支持 is not null  但是你打印出SQL语句就可以发现两者到最后生成的SQL语句都就变成了 is not null 

但是在Hibernate3.x里Hql就不支持 not is null 的写法了,这是公司系统从Hibernate2.x升级到Hibernate3.x时候发现的,所以在Hibernate2.x里还是不要写成 not is null,

免得升到Hibernate3的时候麻烦

posted @ 2009-05-13 10:38 风 阅读(2126) | 评论 (0) | 编辑 收藏

职称、软考、职称资格及三者之间的关系

职称、软考、职称资格及三者之间的关系

软考的指导性政策。由于这个政策的解释不是很清楚,各地在执行政策时的做法也不统一,导致有关软考、职称、职称资格之间的关系问题,一直困扰着所有考生。在此,笔者做一个统一的解释。

  软考

  软考是全国计算机技术与软件专业技术资格(水平)考试的简称,是由国家人事部和信息产业部组织和领导的国家级考试,目的是科学、公正地对全国计算机与软件专业技术人员进行专业技术资格、职业资格认定和专业技术水平测试。

  《计算机技术与软件专业技术资格(水平)考试暂行规定》第十条规定:“通过考试并获得相应级别计算机专业技术资格(水平)证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据《工程技术人员职务试行条例》有关规定和工作需要,从获得计算机专业技术资格(水平)证书的人员中择优聘任相应专业技术职务。取得初级资格可聘任技术员或助理工程师职务;取得中级资格可聘任工程师职务;取得高级资格,可聘任高级工程师职务”。

  
  职称

  具备某个职称资格的人,如果得到了单位的聘用,则其就拥有了相应的职称。例如,某个考生通过了程序员级别的考试(具备了初级职称资格),然后在用人单位根据某些条件聘任了专业技术职务,则其就拥有了技术员或助理工程师职称。例如,根据有关规定(各地不完全一样),对于大学本科以上毕业有初级资格者,可以聘任助理工程师;对于本科以下文化程度的初级资格者,则聘任技术员职称。
职称资格

  职称资格是一种“资历”,根据我国的职称体系,可分为初级、中级和高级三类职称资格,其中高级职称资格又可分为副高和正高(高级工程师职称资格属于副高级)。某人具备某个职称资格,是指他已具备从事相应专业岗位工作的水平和能力。对于具备职称资格的人,由国家人事部门(省/市人事部门)颁发资格证书。

  对于参加软考的人而言,如果通过了初级(例如程序员、网络管理员、信息处理技术员等)的考试,则其就具备了初级职称资格;如果通过了中级(例如软件设计师、网络工程师、数据库系统工程师、信息系统监理师、软件评测师等)的考试,则其就具备了中级职称资格;如果通过了高级(例如系统分析师、信息系统项目管理师等),则其就具备了副高级职称资格。


  三者关联关系

  也就是说,通过了软考,我们所获得的只是一种资格,是否聘任相应的职称,完全取决于各单位的实际情况,国家有关部门并没有直接的规定。事实上,通过评审方法(也就是常说的“评职称”)得到的也只是一个资格,单位既可以不聘用,也可以聘用,还可以高资格低聘用、低资格高聘用。例如,湖南大学的一个教授(既有职称资格,也聘任了相应的职称),如果他到清华大学,则只能聘为副教授或者讲师。相反,如果清华大学的一个副教授调到湖南大学,则会被聘任为教授。

  就目前来看,对于通过软考的人,有些地方、有些单位是聘任相应职称的,而另外一些地方和单位却不聘任。因此,如果我们通过了软考,而当前所在单位又不聘任,可以采取下列两种方法:

  (1)与单位领导据理力争。看本单位通过评审方法获得职称资格的人是否都得到了聘任,如果都得到了聘任,单位就应该聘任你。因为别人有职称资格,就能得到聘任,你也有职称资格,为什么得不到聘任呢?除非你是单位中水平和能力最差的人。

posted @ 2009-04-20 18:21 风 阅读(547) | 评论 (0) | 编辑 收藏

oracle 9i 表空间误删除的恢复方法

昨天老项目的客户来电话说系统有问题了,过去一看是数据库起不来了,看来一下日志。
Errors in file /opt/ora9/admin/xwoa/udump/xwoa_ora_17933.trc:
ORA-01115: 从文件 16 读取块时出现 IO 错误 (块 # 189544)
ORA-27072: skgfdisp: I/O 错误
Linux Error: 25: Inappropriate ioctl for device
Additional information: 189543
靠,数据表空间文件被删除。
好在数据库采用了归档模式。
开始恢复:
 1、SQL>shutdown immediate
备份全部数据文件和控制文件和log以防恢复过程中出现问题。
2、SQL> startup mount;
3、SQL> alter database create datafile '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf'    as '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf'  reuse;
创建误删除的数据文件。
4、recover datafile '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf';

ORA-00279: 更改 57900012 (在 09/19/2007 10:27:05 生成) 对于线程 1 是必需的
ORA-00289: 建议: /opt/ora9/oradata/xwoa/archive/1_863.dbf
ORA-00280: 更改 57900012 对于线程 1 是按序列 # 863 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

输入:AUTO回车
开始恢复过程,这个时间比较长。

5、SQL> select d.file#,d.name,d.status,h.status from v$datafile d,v$datafile_header
 h where d.file#=h.file# ;
查看一下数据文件是否online。
如果没有online,
6、SQL> ALTER DATABASE DATAFILE '/opt/ora9/oradata/xwoa/CHAOYANGJP.dbf' ONLINE;
ok!完成恢复过程。

posted @ 2009-04-01 10:27 风 阅读(1139) | 评论 (0) | 编辑 收藏

干掉流氓软件vrvrf_c.exe,vrvedp_m.exe

用一个叫做虚拟软盘的软件,而且是免费的,当前版本1.5,装上软件,然后选择NTFS的启动img文件,然后重启机器,然后进入DOS,结果出现的是CIA Commander界面,逐级进入C:\windows\system32,然后找到vrv开头的所有的文件,一律F8(删除),但VRVEDP_M.EXE文件不能删除(是不是那个软件公司做的保护措施之一呢?),没关系,我重启试试。

重启进入XP,然后使用奇虎的360安全卫士找到VRVWatchServer服务,暂停,然后进入Windows的服务里面让它disable(我的是英文操作系统,我忘了中文的下面叫什么了),重启,发现这个VRVWatchServer服务已经没有启动了,然后进入cmd,执行命令:

sc delete VRVWatchServer

删除这个 VRVWatchServer服务。

重启,发现噩梦终于结束了,然后我在XP下很容易的就删除了VRVEDP_M.EXE文件,为了干掉这个软件,浪费了我4个小时,MMD!!!

另外记得要将虚拟软盘启动取消!

posted @ 2009-03-26 09:51 风 阅读(11087) | 评论 (1) | 编辑 收藏

获取mstr下的报表列表reportViewMode类型的方法

package net.risesoft.microstrategy;

import com.microstrategy.web.objects.WebDisplayUnit;
import com.microstrategy.web.objects.WebObjectInfo;

/**
 * MSTR报表
 *
 * @author gf
 *
 */
public class MstrReportViewMode {
 public void getReportViewMode(WebDisplayUnit wdu) {
  
  if (wdu instanceof WebObjectInfo) {
   WebObjectInfo wi = (WebObjectInfo) wdu;
   if (wi.getSubType() == 768) {
    // 表
    System.out.println("表:reportViewMode=1");
   } else if (wi.getSubType() == 769) {
    // 图
    System.out.println("图:reportViewMode=2");
   } else {
    // 图表774
    System.out.println("图表:reportViewMode=3");
   }
  }
 }
}

posted @ 2009-03-24 14:07 风 阅读(349) | 评论 (0) | 编辑 收藏

Struts 2中的OGNL

     摘要: EL(Expression Language,以下译为表达式语言)表达式语言主要有以下几大好处:

避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
简单明了地表达代码逻辑,使用代码更可读与便于维护。
Struts 2中的表达式语言
Struts 2支持以下几种表达式语言:

OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;
Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;
Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。   阅读全文

posted @ 2009-03-24 13:31 风 阅读(684) | 评论 (0) | 编辑 收藏

Struts2 iterator标签集合中元素为数组的显示-关于数组和List之间相互转换的方法

     摘要: 1.List转换成为数组。(这里的List是实体是ArrayList) 调用ArrayList的toArray方法。 toArray public <T> T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。假如列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此...  阅读全文

posted @ 2009-03-24 13:27 风 阅读(8542) | 评论 (0) | 编辑 收藏

图片之间的空隙去掉的办法

<style type="text/css">
img{vertical-align:bottom}
</style>
加入 <head>与 </head>就可以了。

posted @ 2009-03-08 12:25 风 阅读(200) | 评论 (0) | 编辑 收藏

开源ETL工具kettle系列之建立缓慢增长维

     摘要: 本文主要介绍使用kettle 来建立一个Type 2的Slowly Changing Dimension 以及其中一些细节问题   阅读全文

posted @ 2009-02-26 19:14 风 阅读(1642) | 评论 (0) | 编辑 收藏

Java实现一元线性回归

       最近在写一个荧光图像分析软件,需要自己拟合方程。一元回归线公式的算法参考了《Java数值方法》,拟合度R^2(绝对系数)是自己写的,欢迎讨论。计算结果和Excel完全一致。

总共三个文件:

DataPoint.java

/**
 * A data point for interpolation and regression.
 */
public class DataPoint
{
    /** the x value */  public float x;
    /** the y value */  public float y;

    /**
     * Constructor.
     * @param x the x value
     * @param y the y value
     */
    public DataPoint(float x, float y)
    {
        this.x = x;
        this.y = y;

    }
}

/**
 * A least-squares regression line function.
 */

import java.util.*;
import java.math.BigDecimal;

public class RegressionLine
 //implements Evaluatable
{
    /** sum of x */     private double sumX;
    /** sum of y */     private double sumY;
    /** sum of x*x */   private double sumXX;
    /** sum of x*y */   private double sumXY;
    /** sum of y*y */   private double sumYY;
    /** sum of yi-y */   private double sumDeltaY;
    /** sum of sumDeltaY^2 */   private double sumDeltaY2;
    /**误差 */
    private double sse; 
    private double sst; 
    private double E;
    private String[] xy ;
   
    private ArrayList listX ;
    private ArrayList listY ;
   
    private int XMin,XMax,YMin,YMax;
   
    /** line coefficient a0 */  private float a0;
    /** line coefficient a1 */  private float a1;

    /** number of data points */        private int     pn ;
    /** true if coefficients valid */   private boolean coefsValid;

    /**
     * Constructor.
     */
    public RegressionLine() {
     XMax = 0;
     YMax = 0;
     pn = 0;
     xy =new String[2];
     listX = new ArrayList();
     listY = new ArrayList();
    }

    /**
     * Constructor.
     * @param data the array of data points
     */
    public RegressionLine(DataPoint data[])
    { 
     pn = 0;
     xy =new String[2];
     listX = new ArrayList();
     listY = new ArrayList();
        for (int i = 0; i < data.length; ++i) {
            addDataPoint(data[i]);
        }
    }

    /**
     * Return the current number of data points.
     * @return the count
     */
    public int getDataPointCount() { return pn; }

    /**
     * Return the coefficient a0.
     * @return the value of a0
     */
    public float getA0()
    {
        validateCoefficients();
        return a0;
    }

    /**
     * Return the coefficient a1.
     * @return the value of a1
     */
    public float getA1()
    {
        validateCoefficients();
        return a1;
    }

    /**
     * Return the sum of the x values.
     * @return the sum
     */
    public double getSumX() { return sumX; }

    /**
     * Return the sum of the y values.
     * @return the sum
     */
    public double getSumY() { return sumY; }

    /**
     * Return the sum of the x*x values.
     * @return the sum
     */
    public double getSumXX() { return sumXX; }

    /**
     * Return the sum of the x*y values.
     * @return the sum
     */
    public double getSumXY() { return sumXY; }
   
    public double getSumYY() { return sumYY; }
   
    public int getXMin() {
  return XMin;
 }

 public int getXMax() {
  return XMax;
 }

 public int getYMin() {
  return YMin;
 }

 public int getYMax() {
  return YMax;
 }
   
    /**
     * Add a new data point: Update the sums.
     * @param dataPoint the new data point
     */
    public void addDataPoint(DataPoint dataPoint)
    {
        sumX  += dataPoint.x;
        sumY  += dataPoint.y;
        sumXX += dataPoint.x*dataPoint.x;
        sumXY += dataPoint.x*dataPoint.y;
        sumYY += dataPoint.y*dataPoint.y;
       
        if(dataPoint.x > XMax){
         XMax = (int)dataPoint.x;
        }
        if(dataPoint.y > YMax){
         YMax = (int)dataPoint.y;
        }
       
        //把每个点的具体坐标存入ArrayList中,备用
       
        xy[0] = (int)dataPoint.x+ "";
        xy[1] = (int)dataPoint.y+ "";
        if(dataPoint.x!=0 && dataPoint.y != 0){
        System.out.print(xy[0]+",");
        System.out.println(xy[1]);       
       
        try{
        //System.out.println("n:"+n);
        listX.add(pn,xy[0]);
        listY.add(pn,xy[1]);
        }
        catch(Exception e){
         e.printStackTrace();
        }               
       
        /*
        System.out.println("N:" + n);
        System.out.println("ArrayList listX:"+ listX.get(n));
        System.out.println("ArrayList listY:"+ listY.get(n));
        */
        }       
        ++pn;
        coefsValid = false;
     }

    /**
     * Return the value of the regression line function at x.
     * (Implementation of Evaluatable.)
     * @param x the value of x
     * @return the value of the function at x
     */
    public float at(int x)
    {
        if (pn < 2) return Float.NaN;

        validateCoefficients();
        return a0 + a1*x;
    }
   
    public float at(float x)
    {
        if (pn < 2) return Float.NaN;

        validateCoefficients();
        return a0 + a1*x;
    }

    /**
     * Reset.
     */
    public void reset()
    {
        pn = 0;
        sumX = sumY = sumXX = sumXY = 0;
        coefsValid = false;
    }

    /**
     * Validate the coefficients.
     * 计算方程系数 y=ax+b 中的a
     */
    private void validateCoefficients()
    {
        if (coefsValid) return;

        if (pn >= 2) {
            float xBar = (float) sumX/pn;
            float yBar = (float) sumY/pn;

            a1 = (float) ((pn*sumXY - sumX*sumY)
                            /(pn*sumXX - sumX*sumX));
            a0 = (float) (yBar - a1*xBar);
        }
        else {
            a0 = a1 = Float.NaN;
        }

        coefsValid = true;
    }
   
    /**
     * 返回误差
     */
    public double getR(){  
     //遍历这个list并计算分母
     for(int i = 0; i < pn -1; i++)    {         
      float Yi= (float)Integer.parseInt(listY.get(i).toString());
      float Y = at(Integer.parseInt(listX.get(i).toString()));
      float deltaY = Yi - Y;   
      float deltaY2 = deltaY*deltaY;
      /*
      System.out.println("Yi:" + Yi);
      System.out.println("Y:" + Y);
      System.out.println("deltaY:" + deltaY);
      System.out.println("deltaY2:" + deltaY2);
      */
          
         sumDeltaY2 += deltaY2;
         //System.out.println("sumDeltaY2:" + sumDeltaY2);
        
     }     
      
     sst = sumYY - (sumY*sumY)/pn;     
        //System.out.println("sst:" + sst);
     E =1- sumDeltaY2/sst;
     
     
     return round(E,4) ;
    }
   
    //用于实现精确的四舍五入
    public double round(double v,int scale){

     if(scale<0){
     throw new IllegalArgumentException(
     "The scale must be a positive integer or zero");
     }
     
     BigDecimal b = new BigDecimal(Double.toString(v));
     BigDecimal one = new BigDecimal("1");
     return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

    }   
   
    public  float round(float v,int scale){

     if(scale<0){
     throw new IllegalArgumentException(
     "The scale must be a positive integer or zero");
     }
     
     BigDecimal b = new BigDecimal(Double.toString(v));
     BigDecimal one = new BigDecimal("1");
     return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).floatValue();

    }   
}

演示程序:

LinearRegression.java

/**
 * <p><b>Linear Regression</b>
 * <br>
 * Demonstrate linear regression by constructing the regression line for a set
 * of data points.
 *
 * <p>require DataPoint.java,RegressionLine.java
 *
 * <p>为了计算对于给定数据点的最小方差回线,需要计算SumX,SumY,SumXX,SumXY; (注:SumXX = Sum (X^2))
 * <p><b>回归直线方程如下: f(x)=a1x+a0   </b>
 * <p><b>斜率和截距的计算公式如下:</b>
 * <br>n: 数据点个数
 * <p>a1=(n(SumXY)-SumX*SumY)/(n*SumXX-(SumX)^2)
 * <br>a0=(SumY - SumY * a1)/n
 * <br>(也可表达为a0=averageY-a1*averageX)
 *
 * <p><b>画线的原理:两点成一直线,只要能确定两个点即可</b><br>
 *  第一点:(0,a0) 再随意取一个x1值代入方程,取得y1,连结(0,a0)和(x1,y1)两点即可。
 * 为了让线穿过整个图,x1可以取横坐标的最大值Xmax,即两点为(0,a0),(Xmax,Y)。如果y=a1*Xmax+a0,y大于
 * 纵坐标最大值Ymax,则不用这个点。改用y取最大值Ymax,算得此时x的值,使用(X,Ymax), 即两点为(0,a0),(X,Ymax)
 *
 * <p><b>拟合度计算:(即Excel中的R^2)</b>
 * <p> *R2 = 1 - E
 * <p>误差E的计算:E = SSE/SST
 * <p>SSE=sum((Yi-Y)^2) SST=sumYY - (sumY*sumY)/n;
 * <p>
 */
public class LinearRegression
{
    private static final int MAX_POINTS = 10;
    private double E;

    /**
  * Main program.
  *
  * @param args
  *            the array of runtime arguments
  */
    public static void main(String args[])
    {
        RegressionLine line = new RegressionLine();

        line.addDataPoint(new DataPoint(20, 136));
        line.addDataPoint(new DataPoint(40, 143));
        line.addDataPoint(new DataPoint(60, 152));
        line.addDataPoint(new DataPoint(80, 162));
        line.addDataPoint(new DataPoint(100, 167));
       
        printSums(line);
        printLine(line);
    }

    /**
  * Print the computed sums.
  *
  * @param line
  *            the regression line
  */
    private static void printSums(RegressionLine line)
    {
        System.out.println("\n数据点个数 n = " + line.getDataPointCount());
        System.out.println("\nSum x  = " + line.getSumX());
        System.out.println("Sum y  = " + line.getSumY());
        System.out.println("Sum xx = " + line.getSumXX());
        System.out.println("Sum xy = " + line.getSumXY());
        System.out.println("Sum yy = " + line.getSumYY());      
       
    }

    /**
  * Print the regression line function.
  *
  * @param line
  *            the regression line
  */
    private static void printLine(RegressionLine line)
    {
        System.out.println("\n回归线公式:  y = " +
                           line.getA1() +
                           "x + " + line.getA0());
        System.out.println("拟合度:     R^2 = " + line.getR());
    }
   
}

posted @ 2009-02-22 17:07 风 阅读(1105) | 评论 (0) | 编辑 收藏

仅列出标题
共20页: First 上一页 2 3 4 5 6 7 8 9 10 下一页 Last 
 
Powered by:
BlogJava
Copyright © 风