??xml version="1.0" encoding="utf-8" standalone="yes"?> 表结构:(x) create table TB_ORG SQL> select orgid,ORGPARENT from tb_org order by ORGid desc; ORGID ORGPARENT sjgt newsroom --子取?br />select * from tb_org CONNECT BY PRIOR orgparent=orgid START WITH orgid='newsroom' 注意orgid=orgparent 和orgparent=orgid 1. 复制表结构及(qing)其数据:(x) create table table_name_new as select * from table_name_old 2. 只复制表l构Q?/p> create table table_name_new as select * from table_name_old where 1=2; 或者:(x) create table table_name_new like table_name_old 3. 只复制表数据Q?/p> 如果两个表结构一P(x) insert into table_name_new select * from table_name_old 如果两个表结构不一P(x) insert into table_name_new(column1,column2...) select column1,column2... from table_name_old Ҏ(gu) 说明 Restrictions.eq Q? Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt Q? Restrictions.ge Q= Restrictions.lt Q?/p>
Restrictions.le Q= Restrictions.between BETWEEN Restrictions.like LIKE Restrictions.in in Restrictions.and and Restrictions.or or Restrictions.sqlRestriction 用SQL限定查询 QBC常用限定Ҏ(gu) Restrictions.eq --> equal,{于. Restrictions.allEq --> 参数为Map对象,使用key/valueq行多个{于的比?相当于多个Restrictions.eq 的效?/p>
Restrictions.gt --> great-than > 大于 Restrictions.ge --> great-equal >= 大于{于 Restrictions.lt --> less-than, < 于 Restrictions.le --> less-equal <= 于{于 Restrictions.between --> 对应SQL的between子句 Restrictions.like --> 对应SQL的LIKE子句 Restrictions.in --> 对应SQL的in子句 Restrictions.and --> and 关系 Restrictions.or --> or 关系 Restrictions.isNull --> 判断属性是否ؓ(f)I?为空则返回true Restrictions.isNotNull --> 与isNull相反 Restrictions.sqlRestriction --> SQL限定的查?/p>
Order.asc --> Ҏ(gu)传入的字D进行升序排?/p>
Order.desc --> Ҏ(gu)传入的字D进行降序排?/p>
MatchMode.EXACT --> 字符串精匹?相当?like 'value'" MatchMode.ANYWHERE --> 字符串在中间匚w.相当?like '%value%'" MatchMode.START --> 字符串在最前面的位|?相当?like 'value%'" MatchMode.END --> 字符串在最后面的位|?相当?like '%value'"
|上关于WebService的例子,多是一些简单得不能再简单的hello
world的例子,单得以至于你对WebService没有什么感觉。有了WebService的基本知识后Q我一直再惻I可以把什么样的即单又实用
的东东做成WebServiceQ开展示一下其功能特点。今天终于想C个:(x)计数器,计数器用得比较多Q功能比较独立,做成WebService可以一?
气Rؓ(f)不同pȝQ不是JSPqASPQ这是WebService的突Z点)(j)、不同应用节省此cȝ码工作,可以说以后再也不用写计数器了。只要用p
了? 三、计数器服务的编?/strong> try { 四、客L(fng)~写 import org.apache.axis.client.Call; public class CounterServiceClient { public boolean getCounter(String CounterName, String password) { public String getDc() { public String getMc() { public String getTc() { public String getWc() { 到页?test.jsp)上就单了Q我也把它脓(chung)在下面:(x) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"> 五、结束语
(
ORGID VARCHAR2(50) not null,
ORGNAME VARCHAR2(100),
ORGPARENT VARCHAR2(50),
)
----------------- --------------------------------------------------
top_org
newsroom top_org
bgjsyj newsroom
bgjs newsroom
test52 bgjsyj
test36 bgjsyj
test3 bgjs
test2 sjgt
test1 sjgt
tes4t1 bgjs
-----子取父变?Q)(j)
select * from tb_org CONNECT BY PRIOR orgparent=orgid START WITH orgparent='newsroom'
--父取子(l果中没有父q条记录Q?br />select * from tb_org CONNECT BY PRIOR orgid=orgparent START WITH orgparent='newsroom'
-----父取子变形(多了父这一U)(j)
select * from tb_org connect by prior orgid=orgparent start with orgid ='newsroom'
ref:http://blog.csdn.net/kenny1985/article/details/3980583
]]>
Ref:http://www.cnblogs.com/youxinqiang/archive/2008/12/26/1363030.html
]]>
在你定义的域中可以找到如下命令:(x)
/[youHome]/domains/[yourDomain]/startWebLogic.sh
/[youHome]/domains/[yourDomain]/stopWebLogic.sh
启动weblogicQ可以参考如下命令:(x)
nohup ./startWebLogic.sh &
查看后台Qnohup ?x)在当前目录下生成一个nohup.out文g作ؓ(f)输出Q?
tail -f nohup.out
或者:(x) nohup ./startWebLogic.sh >日志文g?&
查看后台 tail -f 日志文g?
关闭weblogicQ我们更們于直接杀掉weblogicq程Q?
ps -ef|grep java
查找到进EID之后Q直接运行如下命令:(x)
kill -9 ID
Ref:http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0822/12969.html
]]>
加法
select sysdate,add_months(sysdate,12) from dual; --?q?nbsp;
select sysdate,add_months(sysdate,1) from dual; --??nbsp;
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --?星期
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --??nbsp;
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --?时
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --?分钟
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --?U?nbsp;
减法
select sysdate,add_months(sysdate,-12) from dual; --?q?nbsp;
select sysdate,add_months(sysdate,-1) from dual; --??nbsp;
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --?星期
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --??nbsp;
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --?时
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --?分钟
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --?U?nbsp;
日期与日期之间不能相?nbsp;
日期与数字就可相?nbsp;
SQL> select sysdate+1 from dual;
日期与日期可以相?nbsp;
SQL> select sysdate-sysdate from dual;
Add_MonthsQDQXQ?nbsp;
q回D日期加上X个月后的日期
Last_DayQDQ?nbsp;
q回包含日期D的月份的最后一天的日期
add_months(sysdate,1)加一个月
add_months(sysdate,-1)减一个月
sysdate+1 加一?nbsp;
-------------------------------------------------------------------------------
Months_BetweenQD1QD2Q?nbsp;
q回D1、D2之间的月份数?nbsp;
New_TimeQDQZ1QZ2Q?nbsp;
q回时区Z1里时间ؓ(f)D时Z2时区的时?nbsp;
Next_DayQDQSQ?nbsp;
q回满条gS的下一?nbsp;
S为星期几
RoundQDQFQ?nbsp;
日期D按照格式Fq行舍入
Sysdate
q回数据库当前时?nbsp;
TruncQDQFQ?nbsp;
按照格式F截断旉D
另外Q日期可以直接加?nbsp;
如:(x)sysdate +1,sysdate -1
------------------------------------------------------------
sysdate+1 加一?nbsp;
sysdate+1/24 ?时
sysdate+1/(24*60) ?分钟
sysdate+1/(24*60*60) ?U钟
Ref:http://elvishehai.iteye.com/blog/1153601
]]>
l合了BA的调研,我们有两个备?PhoneGap和Titanium。说实话PhoneGap到现在我也不是很熟,只知道用jQuery Mobile完全可以完成在上面的开发。需要熟(zhn)jQuery Mobile 的控件库和CSS和用方法?br />
待箋...
]]>
在控制台 mysql/bin
Export: mysqldump -u root -p DATABASE >fil2.sql
]]>
在项目中遇到下面q个exception
Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???];
SQL state [null]; error code [0]; An SQLException was provoked by the following failure:
com.mchange.v2.resourcepool.ResourcePoolException: Attempted to use a closed or
broken resource pool; nested exception is java.sql.SQLException: An SQLException was
provoked by the following failure: com.mchange.v2.resourcepool.ResourcePoolException:
Attempted to use a closed or broken resource pool
分析Q?/strong>
看字面的意思,是连接池出问题。因为对spring的连接池配置不熟Q所以就扑ֈ下面的文章?br />
<引用Q?a >http://hi.baidu.com/javazyw/blog/item/4e668fc7e3557ac039db49c3.html>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:jee="http://www.springframework.org/schema/jee"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
6 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
7 <bean id="dataSource"
8 class="com.mchange.v2.c3p0.ComboPooledDataSource"
9 destroy-method="close">
10 <property name="driverClass">
11 <value>com.mysql.jdbc.Driver</value>
12 </property>
13 <property name="jdbcUrl">
14 <value>jdbc:mysql://192.168.3.110:3306/DBName?useUnicode=true&characterEncoding=GBK</value>
15 </property>
16 <property name="user">
17 <value>root</value>
18 </property>
19 <property name="password">
20 <value>root</value>
21 </property>
22
23 <!--q接池中保留的最连接数?/span>-->
24 <property name="minPoolSize">
25 <value>5</value>
26 </property>
27
28 <!--q接池中保留的最大连接数。Default: 15 -->
29 <property name="maxPoolSize">
30 <value>30</value>
31 </property>
32
33 <!--初始化时获取的连接数Q取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
34 <property name="initialPoolSize">
35 <value>10</value>
36 </property>
37
38 <!--最大空闲时?60U内未用则q接被丢弃。若?则永不丢弃。Default: 0 -->
39 <property name="maxIdleTime">
40 <value>60</value>
41 </property>
42
43 <!--当连接池中的q接耗尽的时候c3p0一ơ同时获取的q接数。Default: 3 -->
44 <property name="acquireIncrement">
45 <value>5</value>
46 </property>
47
48 <!--JDBC的标准参敎ͼ用以控制数据源内加蝲的PreparedStatements数量。但׃预缓存的statements
49 属于单个connection而不是整个连接池。所以设|这个参数需要考虑到多斚w的因素?br />
50 如果maxStatements与maxStatementsPerConnection均ؓ(f)0Q则~存被关闭。Default: 0-->
51 <property name="maxStatements">
52 <value>0</value>
53 </property>
54
55 <!--?0U检查所有连接池中的I闲q接。Default: 0 -->
56 <property name="idleConnectionTestPeriod">
57 <value>60</value>
58 </property>
59
60 <!--定义在从数据库获取新q接p|后重复尝试的ơ数。Default: 30 -->
61 <property name="acquireRetryAttempts">
62 <value>30</value>
63 </property>
64
65 <!--获取q接p|会(x)引v所有等待连接池来获取连接的U程抛出异常。但是数据源仍有?br />
66 保留Qƈ在下ơ调用getConnection()的时候l尝试获取连接。如果设为trueQ那么在试
67 获取q接p|后该数据源将x已断开q永久关闭。Default: false-->
68 <property name="breakAfterAcquireFailure">
69 <value>true</value>
70 </property>
71
72 <!--因性能消耗大请只在需要的时候用它。如果设为true那么在每个connection提交?br />
73 时候都校验其有效性。徏议用idleConnectionTestPeriod或automaticTestTable
74 {方法来提升q接试的性能。Default: false -->
75 <property name="testConnectionOnCheckout">
76 <value>false</value>
77 </property>
78 </bean>
79 <!-- Hibernate SessionFactory -->
80 <bean id="sessionFactory"
81 class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
82 <property name="dataSource">
83 <ref local="dataSource" />
84 </property>
85 <property name="mappingResources">
86 <list>
87 <value>com/xh/hibernate/vo/User.hbm.xml</value>
88 </list>
89 </property>
90 <property name="hibernateProperties">
91 <props>
92 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
93 <prop key="hibernate.show_sql">true</prop>
94 <prop key="hibernate.generate_statistics">true</prop>
95 <prop key="hibernate.connection.release_mode">auto</prop>
96 <prop key="hibernate.autoReconnect">true</prop>
97 </props>
98 </property>
99 </bean>
100 </beans>
应该是配|的原因。然后有扑ֈq篇个说?br />
<引用Qhttp://home.bendixinwen.cn:8080/blog/2010/01/27/1264560312821.html>
<property name="acquireRetryAttempts">
<value>30</value>
</property>
<property name="acquireRetryDelay">
<value>100</value>
</property>
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
- acquireRetryAttempts
Default: 30
Defines how many times c3p0 will try to acquire a new Connection from the database before giving up.
If this value is less than or equal to zero, c3p0 will keep trying to fetch a Connection indefinitely
- acquireRetryDelay
Default: 1000
Milliseconds, time c3p0 will wait between acquire attempts.
- breakAfterAcquireFailure
Default: false
If true, a pooled DataSource will declare itself broken and be permanently closed
if a Connection cannot be obtained from the database after making acquireRetryAttempts to acquire one.
If false, failure to obtain a Connection will cause all Threads waiting for the pool to acquire a Connection
to throw an Exception, but the DataSource will remain valid, and will attempt to acquire again following a
call to getConnection().
再分析:(x)
Z么会(x)?span style="color: #000000;">Attempted to use a closed or broken resource poolQ应该是有链接没关闭。因Z直对<session.save>?lt;geHibernateTemplate().save> q两UDAO实现方式不理解。找C面这文?br />
<引用Qhttp://jeoff.blog.51cto.com/186264/133434>
看看黑体标注的那句话Q再看看E序代码?x)发现确实有很多使用session方式的DAO在最后没有关闭。root cause应该是他了?br />
ȝQ?/strong>
1. 是用session实现DAOQ必要在最后关闭sessionQ不然会(x)Dq接池链接溢?br />
2.可以使用 set breakAfterAcquireFailure =false 来规避这个问题?br />
ַQ?/strong>
set breakAfterAcquireFailure =false 能不能解决问?q需要进一步检验。下回分解?br />
]]>
]]>
如果使用GOOGLE、BAIDU{搜索工P搜烦(ch)WebService的相关知识,可以查到N多的|页Q我是通过q些|页的学?fn),逐渐掌握了些WebService的相关知识。这里对那些无私奉献知识的h一q表C感谢?
说了q么多废话,下面我们开始。本教程介绍一下WebService环境搭徏、服务部|的相关知识Q然后介l一个计数器的开发?
q行图:(x)
二、基工作
1.开发环?br />
我用axis做ؓ(f)Web
Service引擎Q它是Apache的一个开源web service引擎。它目前最为成熟的开源web
service引擎之一。下面我主要介绍一下如何用Axis搭徏web service 服务的环境?
①安装tomcat5.0应用服务器(也可以装5.5Q不q我一直在?.0Q?
②解压下载(
http://ws.apache.org/AxisQ后的axis包,包中axis目录复制到tomcat目录下的webapps目录下;
③将axis/WEB-INF/lib目录下类文g复制到tomcat目录下的common/lib目录下;
④重新启动tomcat,讉Khttp://localhost:8080/axis/happyaxis.jsp,如果能访问,表示安装成功Q?
注意Qaxis有几个可选的包,如email.jar....Q你可以找来攑ֈtomcat目录下的common/lib目录下,如果不用相关的功能也可以不用?
q样Q开发环境就搭徏好了?
2.如何部vWeb Service
部v有三U方式:(x)Dynamic Invocation
Interface(DII)、Stubs方式、Dynamic Proxy方式Q这里就介绍一下简单,也是我用的方式QDII?
DII方式中,先写好服务的JAVA文gQ假讑字ؓ(f)helloworld.javaQ,然后把它Q注意是源文Ӟ(j)拯到webapps/axis目录
中,后缀Ҏ(gu)jws(此时文g名ؓ(f)Qhelloworld.jws)Q然后访问连接http://localhost:
8080/Axis/helloworld.jws?wsdlQ页面显CAxis自动生成的wsdlQ这样一个Web
Service部|好了。怎么P是不是很?
我的计数器服务就是以q种方式部v的,下文中我?x)只说将计数器服务部|好Q你可不要说Q怎么部vQ我不会(x)呀。那在古代就要被打手板了。所以我惻I古代只学四书五经也是件好事呀。现在要学这么多东西Q半天学不会(x)Q手要被打烂了?
计数器大安知道了,比较单。我的计数器也同L(fng)单,有以下功能及(qing)特点Q提供四U计数器QL器、月计数器、周计数器及(qing)日计数器Q;考虑到Web
Service要服务于多种应用Q这个计数器q支持多个用P使用XML文g来记录数据?br />
记录文g名ؓ(f)Qd:"counter.xml。注意,此文件在服务里是编码,如果修改名字Q请在服务程序中也进行相应的修改。文件内Ҏ(gu)式如下:(x)
<?xml version="1.0"
encoding="UTF-8"?>
<counter>
<item>
<name>wallimn</name>
<password>123</password>
<dc>59</dc>
<wc>59</wc>
<mc>59</mc>
<tc>59</tc>
<rt>2007-4-16
16:01:29</rt>
</item>
<counter>
说是计数器服务,其实跟编写普通的JAVA应用没有什么两栗我的计数器代码比较单,我就不做q多的介l了Q把它脓(chung)在下面,源码中有量注释Q相信大家不看注释也看得懂。服务有只有一个接口:(x)Counter(String
name, String
password),以后在客L(fng)拿来用就可以了。还多说一句,我和E序使用Cdom4j解析xml包,要调试的误行准备好j(lu)ar包。部|方法请参照上文?
import java.io.File;
import java.io.FileWriter;
import
java.io.IOException;
import java.text.DateFormat;
import
java.text.ParseException;
import java.util.Calendar;
import
java.util.Date;
import java.util.Iterator;
import
org.dom4j.Document;
import org.dom4j.DocumentException;
import
org.dom4j.Element;
import org.dom4j.io.SAXReader;
import
org.dom4j.io.XMLWriter;
/**
*功能Q提供计数器服务的WebServiceQ可以ؓ(f)多用h供服务?lt;br/>
*
@version : V1.0
* @author : 王力?Email: wallimn@sohu.com QQ: 54871876)
*
@date : 2007-4-16 下午04:32:45
*/
public class WsCounterByWallimn
{
//计数器文档,注意名字名\径?br />
private final String FileN =
"d:/counter.xml";
private final static DateFormat DATEFORMATER =
DateFormat.getDateTimeInstance();
//出错的情况下q回的?br />
private final static String
ERRORINFO="-1;-1;-1;-1";
public WsCounterByWallimn(){
}
/**
*功能Q打开计数器文?lt;br/>
*~码Q王力猛 旉Q?007-4-16
下午04:44:29<br/>
*/
private Document openDocument(){
Document
doc=null;
SAXReader reader = new SAXReader();
try {
File xmlfile = new
File(FileN);
doc = reader.read(xmlfile);
xmlfile=null;
}
catch
(DocumentException e) {
e.printStackTrace();
}
return
doc;
}
/**
*功能Q取指定名称计数器的详细信息Qƈ讄计数器加1?lt;br/>
*~码Q王力猛
旉Q?007-4-16 下午04:49:57<br/>
*/
private synchronized String
countertick( String name, String password){
Document doc =
openDocument();
Date currdt = new java.util.Date();
//mc:month
counter(月计数器); dc: day counter(日计数器);
//tc: total counter(总计数器); wc: week
counter(周计数器);
//rt: registe time登记旉
String
mc="-1",dc="-1",tc="-1",wc="-1",rt="-1";
Element root =
doc.getRootElement();
Element selitem=null,item=null;
for(Iterator it =
root.elementIterator("item"); it.hasNext();){
item =
(Element)it.next();
if(name.equals(item.element("name").getText())){
selitem=item;
String pwd =
item.elementText("password");
if(!password.equals(pwd)){
return
ERRORINFO;//密码不对Q直接返?br />
}
mc=item.element("mc").getText();
dc=item.element("dc").getText();
tc=item.element("tc").getText();
wc=item.element("wc").getText();
rt=item.element("rt").getText();
break;
}
}
//如果selitem为空Q说明没有个名字的计数器。则d一个?br />
if(selitem==null){
//System.out.println("没有扑ֈq个名字的计数器Q?+name);
rt=DATEFORMATER.format(currdt);
selitem
=
doc.getRootElement().addElement("item");
selitem.addElement("name").setText(name);
selitem.addElement("tc").setText("0");
selitem.addElement("mc").setText("0");
selitem.addElement("wc").setText("0");
selitem.addElement("dc").setText("0");
selitem.addElement("rt").setText(rt);
selitem.addElement("password").setText(password);
mc="0";
wc="0";
dc="0";
tc="0";
}
//处理计数器加一操作?br />
Calendar
currcr=Calendar.getInstance();
//L器L??br />
tc
=String.valueOf(Integer.parseInt(tc)+1);
selitem.element("tc").setText(tc);
Date
lastdt = null;
try {
lastdt = DATEFORMATER.parse(rt);
}
catch
(ParseException e) {
lastdt = new java.util.Date();
}
Calendar lastcr =
Calendar.getInstance();
lastcr.setTime(lastdt);
currcr.setTime(currdt);
//System.out.println("上次登记旉Q?+DATEFORMATER.format(lastdt));
//System.out.println("本次登记旉Q?+DATEFORMATER.format(currdt));
if(lastcr.get(Calendar.YEAR)==currcr.get(Calendar.YEAR)){
//月相同,月计数加1
if(lastcr.get(Calendar.MONTH)==currcr.get(Calendar.MONTH)){
mc
=
String.valueOf(Integer.parseInt(mc)+1);
}
else{
mc="1";
}
//日相同,日计数加1
if(lastcr.get(Calendar.DAY_OF_YEAR)==currcr.get(Calendar.DAY_OF_YEAR))
dc
= String.valueOf(Integer.parseInt(dc)+1);
else
dc =
"1";
if(lastcr.get(Calendar.WEEK_OF_YEAR)==currcr.get(Calendar.WEEK_OF_YEAR))
wc
= String.valueOf(Integer.parseInt(wc)+1);
else
wc = "1";
}
else{//q不一P则月计数器、周计数器日计数器肯定也不一栗?br />
mc="1"; dc="1"; wc="1";
}
selitem.element("mc").setText(mc);
selitem.element("wc").setText(wc);
selitem.element("dc").setText(dc);
//登记记录旉
selitem.element("rt").setText(DATEFORMATER.format(currdt));
XMLWriter xw = new XMLWriter(new
FileWriter(FileN));
xw.write(doc);
xw.close();
}
catch (IOException
e) {
e.printStackTrace();
}
return
tc+";"+mc+";"+wc+";"+dc;
}
/**
*功能Q服务暴露的接口Q也是指定名称、密码,q回指定的计敎ͼq将计数器加1?lt;br/>
*~码Q王力猛
旉Q?007-4-17 上午10:05:22<br/>
*/
public String Counter(String name,
String password){
if(password==null || name==null)return ERRORINFO;
return
countertick(name, password);
}
}
客户端是个页面,Z条理清晰Q我先写个调用Web
Service的类Q其内容如下Q?br />
package com.wallimn.WebService;//调试h意包?/p>
import
org.apache.axis.client.Service;
private String counterarr[];
boolean
res = false;
try {
String endpoint =
"http://localhost:8080/axis/WsCounterByWallimn.jws";//此处注意Q请与你的开发环境匹?br />
Service
service = new Service();
Call call = (Call)
service.createCall();
call.setTargetEndpointAddress(new
java.net.URL(endpoint));
call.setOperationName("Counter");
//
填写你要调用的方法名U?br />
String counter = (String) call.invoke(new Object[] { CounterName,
password });
counterarr = counter.split(";");
res = (counterarr != null
&& counterarr.length == 4);
}
catch (Exception e)
{
}
return res;
}
return counterarr[3];
}
return counterarr[1];
}
return counterarr[0];
}
return counterarr[2];
}
}
<%@ page language="java"
import="com.wallimn.WebService.CounterServiceClient"
pageEncoding="GB18030"%>
<%
CounterServiceClient client = new
CounterServiceClient();
client.getCounter("hello","123");
%>
<html>
<head>
<title>计数器测试页?lt;/title>
<meta
http-equiv="pragma" content="no-cache">
<meta
http-equiv="cache-control" content="no-cache">
<meta
http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="wallimn,计数?WebService">
<meta http-equiv="description"
content="计数器用示?>
</head>
<body>
<h2
align="center">计数器详?lt;/h2>
<hr/>
总访问量:<%=client.getTc()%>
<br/>
今天讉K?<%=client.getDc()%>
<br/>
本周讉K?<%=client.getWc()%>
<br/>
本月讉K?<%=client.getMc()%> <br/>
<hr/>
<p>Ƣ迎交流<br/>博客Qhttp://blog.csdn.net/wallimn<br/>?sh)邮Qwallimn@sohu.com</p>
</body>
</html>
]]>
(2)在profile文g末尾加入Q?/p>
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
(3)重新d
注:(x)修改文g后要想马上生效还要运? source /etc/profile不然只能在下ơ重q此用户时生效?/p>
注解Q?/p>
a. 你要?/usr/share/jdk1.5.0_05jdk 改ؓ(f)你的jdk安装目录
b. linux下用冒号“:”来分隔\?/p>
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的??a href="javascript:;" onclick="javascript:tagshow(event, '%C9%E8%D6%C3');" target="_self">讄环境变量时特别要注意不能把原来的值给覆盖掉了Q这是一U常见的错误?/p>
d. CLASSPATH中当前目?#8220;.”不能?把当前目录丢掉也是常见的错误?/p>
e. export是把q三个变量导Zؓ(f)全局变量?/p>
f. 大小写必M格区分?/p>
linux 讄环境变量 http://hi.chinaunix.net/?uid-20290281-action-viewspace-itemid-30027
linux修改pȝ环境变量是否需要重启机?http://wenda.tianya.cn/wenda/thread?tid=51757d7d427012bb
我觉得attributeq是有用的?
1Q应用前提,attribute只有在设|了name后才有意义?
2Qattribute可以实现对象的重用,卛_果设|了attribute属性,在创建actionform是,?x)先L扄应的scope中是否有此对象,如果有,则重用,否则创徏新的对象?
3Q当你将创徏的acitonForm保存到相应的scope中时Q你想用一个更有意义的名字来访问它Ӟ它就有意义了。例如:(x)
配置form.
<form-bean name="employee" type="Employee"/>
配置a(chn)ction:
<action
attribute="validEmployee"
name="employee"
type="EmployeeAction"
scope="request"
path="/employee">
.....
q样可以用validEmployee在JSP面中访问了Q而不是用employee.
q在同一个form 在不同情况下有不同的意义Ӟ意义才很明显?/font>
# hostname # 查看计算机名
# uname -a # 查看内核/操作pȝ/CPU信息
# head -n 1 /etc/issue # 查看操作pȝ版本
# w # 查看zd用户
# id <用户?gt; # 查看指定用户信息
# last # 查看用户d日志
# cut -d: -f1 /etc/passwd # 查看pȝ所有用?/pre>
分析?/sup> |
内部操作步骤 |
WhitespaceAnalyzer |
在空格处q行语汇单元的切?/sup> |
SimpleAnalyzer |
在非字母字符处切分文本,q将其{换ؓ(f)写形式 |
StopAnalyzer |
在非字母字符处切分文本,然后写化,再移除停用词 |
StandardAnalyzer |
Z复杂的语法来实现语汇单元化;q种语法规则可以识别e-mail地址、首字母~写词、汉?/sup>-日语-汉语字符、字母数字等Q小写化QƈU除停用?/sup> |
_PhraseQuery (短语查询) 可以限定两个term之间的距?/code>
|_______RangeQuery (范围查询)
|_______MultiPhraseQuery Q多短语查询Q?br />
|_______FuzzyQuery Q模p查询)(j)
|_______SpanQuery Q跨度查询)(j)
|_______PrefixQuery Q前~查询Q?br />
查询的时候,也会(x)用到上面的Analyzer。根据Analyzer的不同会(x)Ҏ(gu)询的关键词进行一些处理,比如上面的去?a"。然后用处理q的关键词进行查询?br />
5.q里再说一个题外话Q什么时候生成烦(ch)引合适。M能每ơ检索的时候就来一ơ从头到生成索引吧,q显然不合hcdE动力学原理Q呵呵:(x)Q?那初步想法是Q先定你要在那里文仉面搜索,每当你的q些文g有变动时Q就触发对这个文件的索引。比如,新添文g或文件更C。这h索的时候,只检索。看D栯(g)合度也低哈Q)(j)

]]>
在where子句中可以用两U格式的子查询?
W一U格式是使用IN操作W,W二U格式是使用EXIST操作W?/p>
修改的exists形式Q?br />
?/span>links方式安装eclipse插g详细解释
当前配置XP SP1Qeclipse3.0.1
现在假设我的eclipse安装目录是D://eclipseQ新Z个文件夹目录Q?/span>D://eclipse//myplugins?span style="font-size: 10pt; font-family: SimSun;">D://eclipse//links?/span>待安装插件目录是D://eclipse//myplugins Q我要安装LanguagePackFeatureQ语a包)(j)、emf-sdo-xsd-SDK、GEF-SDK、Lombozq四个插件?/span>
先把q四个插件程序全部放?/span>D://eclipse//myplugins目录里,分别解压。如Lomboz3.0.1.zip解压?/span>Lomboz3.0.1目录Q这个目录包含一?/span>plugins目录Q要先在Lomboz3.0.1目录中新Z个子目录eclipseQ然后把plugins目录Ud到刚建立?/span>eclipse目录中,即目录结构要是这L(fng)Q?/span>D://eclipse//myplugins//Lomboz3.0.1//eclipse//plugins
Eclipse 会(x)到指定的目录下去查找 eclipse//features 目录和eclipse//plugins 目录Q看是否有合法的功能部g和(或)(j)插g?/span>也就是说Q目标目录必d含一?/span> eclipse 目录。如果找刎ͼ附加的功能部件和插g在运行期配置是将是可用的Q如果链接文件是在工作区创徏之后d的,附加的功能部件和插g?x)作为新的配|变更来处理?/span>
其它压羃文g解压后若已经包含eclipse//plugins目录Q则不需要徏立eclipse目录?/span>
然后?/span>D://eclipse//links目录中徏立一个link文gQ比?Lomboz3.0.1.linkQ该文g内容?span>path=D://eclipse//myplugins//Lomboz3.0.1 卌个link文g要对应一个刚解压后的插g目录。新插g要新建另外的link文g?br />
说明Q?/span>
1. 插g可以分别安装在多个自定义的目录中?/span>
2. 一个自定义目录可以安装多个插g?/span>
3. link文g的文件名?qing)扩展名可以取Q意名Uͼ比如ddd.txtQ?/span>myplugin都可以?/span>
4. link文g?/span>path=插g目录?/span>path路径分隔要用\\或是//
5. ?/span>links目录也可以有多个link文gQ每?/span>link文g中的path参数都将生效?/span>
6. 插g目录可以使用相对路径(强烈Q!因ؓ(f)你的eclipse文g极有可能被拷来拷?/span>)?/span>
q样对应的的link文g中的内容可以改?/span>path=.//myplugins//Lomboz3.0.1
7. 可以?/span>links目录中徏立一个子目录Q{UL时不用的插g到此子目录中Q加?/span>eclipse启动?/span>
8. 如果安装后看不到插gQ把eclipse 目录下的configuration目录删除Q重启即可。或者添加eclipse启动参数-clean?/span>