CentOS 5.3快速搭建Apache+PHP5+MySQL完美Web服务器 suny

LAMP是Linux, Apache, MySQL, PHP组合的简称,本文旨在CentOS 5.3 i386/x86_64上快速安装Apache2 Web服务器,还有PHP、MySQL等支持组件,另外,再简单地介绍一下MySQL管理利器phpMyAdmin的安装。

1. 一些说明
本文将和大家一起在Ubuntu 9.04 Server上快速搭建支持Apache2、PHP5、MySQL的最佳Web服务器。文中使用的一些基础配置信息如下: 

  • hostname:server1.example.com 
  • IP地址:192.168.0.100 

实际应用中,改为自己的相应配置即可。

2. 安装MySQL 5.0
安装MySQL 5.0,我们在终端中执行如下命令, 

yum install mysql mysql-server

  CentOS中安装完MySQL默认是不启动的,而且系统随机启动项里也不会自动添加mysqld的项,不过,还好这些都不是什么问题,简单的两个命令就能搞定它们: 

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start 

使用过Debian/Ubuntu的朋友可能已经注意到,CentOS下安装MySQL不像Debian/Ubuntu那样,安装过程中就要求给mysql 的root用户设定密码。而在CentOS中,安装完毕后,我们还要使用下面的命令给mysql的root用户设定密码:  

...

SQL Server数据库ntext字段内容追加 suny

今天在编写一个触发器的时候,遇到要更新一个表的ntext字段,开始使用常规的语句:
Update table set content = content + @info where id=@id
会报错:对数据类型而言运算符无效。运算符为 add,类型为 ntext。

后来经过百度谷歌得知,SQL Server专门提供了处理text,ntext,image字段的函数,他们是:TEXTPTR
TEXTVALID、READTEXT、UPDATETEXT、WRITETEXT

最后得到解决方法:

...

JFreeChart中文API cloudy

JFreeChart类:
void setAntiAlias(boolean flag) 字体模糊边界
void setBackgroundImage(Image image) 背景图片
void setBackgroundImageAlignment(int alignment) 背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义)
void setBackgroundImageAlpha(float alpha) 背景图片透明度(0.0~1.0)
void setBackgroundPaint(Paint paint) 背景色
void setBorderPaint(Paint paint) 边界线条颜色
void setBorderStroke(Stroke stroke) 边界线条笔触
void setBorderVisible(boolean visible) 边界线条是否可见

-----------------------------------------------------------------------------------------------------------

TextTitle类:
void setFont(Font font) 标题字体
void setPaint(Paint paint) 标题字体颜色
void setText(String text) 标题内容

...

删除Oracle某数据库下的所有表 suny

今天使用imp导入dmp格式的数据库备份的时候,发现导入出错,提醒对象已经存在,才记起来要先删除所有表才能导入,如果数据库有几十上百个表的话,一个一个去删除真浪费时间。为了方便,就写了一条语句来查询所有表和生成批量删除的语句:

select 'drop table '||table_name||';' as sqlscript from user_tables;

SQLSCRIPT
--------------------------------------------
drop table LO_CASEINFO;
drop table LO_HARMONIZECASE;
drop table LO_LAWCHECK;
drop table LO_LEGISLATIONITEM;
drop table LO_TRAINBATCH;
drop table OA_IMPRESS;
drop table OA_SYSGROUP;

...

解决webLogic无法使用jasperreports生成报表的问题 cloud

Linux下webLogic无法使用jasperreports(iReport)生成报表的问题解决方法

今天在Linux下的webLogic部署一个项目后,发现报表无法导出了(但是在Windows开发环境下正常),后台报错如下:

java.lang.InternalError: Can´t connect to X11 window server using ´:0.0´ as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay()V(X11GraphicsEnvironment.java:???)
        at sun.awt.X11GraphicsEnvironment.<clinit>()V(X11GraphicsEnvironment.java:134)
        at jrockit.vm.Classes.forName0(Ljava.lang.String;ZI)I(Unknown Source)
        at jrockit.vm.Classes.forName(Ljava.lang.String;ZLjava.lang.ClassLoader;)Ljava.lang.Class;(Unknown Source)
        at java.lang.Class.forName(Ljava.lang.String;I)Ljava.lang.Class;(Unknown Source)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()Ljava.awt.GraphicsEnvironment;(GraphicsEnvironment.java:62)
        at net.sf.jasperreports.engine.util.JRGraphEnvInitializer.initializeGraphEnv()V(JRGraphEnvInitializer.java:58)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;Lnet.sf.jasperreports.engine.fill.JREvaluator;Lnet.sf.jasperreports.engine.fill.JRBaseFiller;)V(JRBaseFiller.java:307)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;Lnet.sf.jasperreports.engine.fill.JREvaluator;Lnet.sf.jasperreports.engine.fill.JRBaseFiller;)V(JRVerticalFiller.java:92)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(Lnet.sf.jasperreports.engine.JasperReport;)V(JRVerticalFiller.java:74)
        at net.sf.jasperreports.engine.fill.JRFiller.createFiller(Lnet.sf.jasperreports.engine.JasperReport;)Lnet.sf.jasperreports.engine.fill.JRBaseFiller;(JRFiller.java:147)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(Lnet.sf.jasperreports.engine.JasperReport;Ljava.util.Map;Lnet.sf.jasperreports.engine.JRDataSource;)Lnet.sf.jasperreports.engine.JasperPrint;(JRFiller.java:83)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(Lnet.sf.jasperreports.engine.JasperReport;Ljava.util.Map;Lnet.sf.jasperreports.engine.JRDataSource;)Lnet.sf.jasperreports.engine.JasperPrint;(JasperFillManager.java:601)
 ...

经过左问Baidu,右问Google,加上验证得到Debug方法如下:

在startWebLogic.sh中加一行:JAVA_OPTIONS = -Djava.awt.headless=true
如果已有JAVA_OPTIONS配置行,则可以追加
-Djava.awt.headless=true

重启webLogic,问题解决!

JavaWind关闭半年,重出江湖啦! suny

      一时头脑发热,租用了一个月的VPS试试。从昨晚折腾到今天下午,才算完整架设完运行环境。破DNS,javawind.com解析5分钟就生效了,javawind.net目前还没全面生效,断断续续的,郁闷死。

      破VPS也真够慢的,比色冰以前提供的慢了N倍,程序的执行时间以前都是保持在2位数毫秒级,现在倒好了,都是三位毫秒级偶尔甚至跑出四位数来。变态的是,VPS还装有关键字过滤软件,一不小心发了啥关键字,该页面就OVER了,只有老老实实去数据库Replace了。这个月内如果没有明显改善的话,是不会打算续费滴。

PS:拍死群里逍遥自在的色冰,色猿,天天折腾网站,把我也带起来了!

...

PLSQL Developer + Oracle客户端简易安装方法 cloudy

之前一直都是用eclipse自带的Data Source Explorer访问Oracle数据库,可是只能简单地查看,而且很多字段不兼容。
今天开始使用PLSQL Developer连接远程Oracle数据库的时候,提示我没有安装Oracle客户端,才知道PLSQL Developer不是独立的软件,是要基于Oracle客户端运行的。

下面就介绍一下没有安装Oracle数据库的情况下,单独安装一个客户端。

1、到Oracle官方网站下载一个客户端:http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html

...

Struts2标签和EL表达式混合使用会导致乱码 suny

今晚在配置Struts2环境的时候,遇见了中文乱码啦。配置了struts.i18n.encoding和SetCharacterEncodingFilter还是不行,最后发现如下规律:

Struts2标签和EL表达式混合使用会导致乱码:

如图所示,如果s2标签的值用el表达式代替的话,会导致中文乱码。

中文乱码:<s:param name="el">${c.cname}</s:param>,但是如果${c.cname}直接在页面上显示出来的话,是不会乱码的!
中文正常:<s:param name="cname"><s:property value="cname"/></s:param>

注意查看浏览器地址栏,虽然值一样,但是编码后都不同了:

javawind.net

   xhtml代码
  1. <%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%> 
  2. <%@ taglib prefix="s" uri="/struts-tags" %> 
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  4. <html> 
  5. <head> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  7. <title>Insert title here</title> 
  8. </head> 
  9. <body> 
  10.  
  11. <s:iterator id="c" value="category"> 
  12.     <s:url id="url" action="index"> 
  13.         <s:param name="cid">${c.cid}</s:param> 
  14.         <s:param name="el">${c.cname}</s:param> 
  15.         <s:param name="cname"><s:property value="cname"/></s:param> 
  16.     </s:url> 
  17.     <s:a href="%{url}">${c.cid}.${c.cname}.<s:property value="cname"/></s:a> 
  18. </s:iterator> 
  19.  
  20. <br/><br/> 
  21. you chose:  
  22. cid=${param.cid}<br/> 
  23. el=${param.el}<br/> 
  24. cname=${param.cname}<br/> 
  25. </body> 
  26. </html> 

Struts 2框架的两个核心配置文件详解 suny

    struts.xmlstruts.properties

    其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。除此之外,Struts 2框架还包含一个struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。

     struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每个key就是一个Struts 2属性,该key对应的value就是一个Struts 2属性值。

      struts.properties文件通常放在Web应用的WEB-INF/classes路径下。实际上,只要将该文件放在Web应用的CLASSPATH路径下,Struts 2框架就可以加载该文件。

      其实,struts.properties文件的内容均可在struts.xml中以<constant name="" value=""></constant>加载。

下面将该文件的配置参数详细列举出来,方便大家查看;

...

Oracle 分页和排序问题探讨 cloud

1、在ORACLE中,rownum是一个伪列,对于这个列,只能使用"<"或者"<="这两个操作符
2、它一定是从1开始的,不能跨过1;
3、不能用:>,>=,=,Between...and。由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录。执行总是显示:未选定行。

如果要使用  >,>=,=,Between...and 操作符,可以使用子查询把rownum转为实际列:
select namef from (select rownum r,namef from tablename)t where r > 10;
select namef from (select rownum r,namef from tablename)t where r between 10 and 20;

Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。
SQL> select rownum ,id,name from student order by name;
     ROWNUM ID      NAME
---------- ------ ---------------------------------------------------
          3 200003 李三
          2 200002 王二
          1 200001 张一
          4 200004 赵四
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询
SQL> select rownum,id,name from (select * from student order by name);
     ROWNUM ID      NAME
---------- ------ ---------------------------------------------------
          1 200003 李三
          2 200002 王二
          3 200001 张一
          4 200004 赵四
这样就成了按name排序,并且用rownum标出正确序号。


Total:132|‹23456789101112›|14 Pages