sql查询语句中的like条件

2006年9月27日 | 作者: 挨踢开发一点通 | 浏览: 1,411

字体 -

数据库查询时,我们经常用到like作通配符(wildcards)查询。sql的通配符主要有两个: % 和 _

% :  可以匹配任何长度的字符串, 包括长度是0; _  :  可以匹配任何一个字符;

举例: 查询book_title以Howto起头的纪录, 比如 ‘Howto fix computer’:

SELECT * FROM books WHERE book_title like ‘Howto%’

查询book_title中包含有 fix 字样的纪录,  比如 ‘Howto fix computer’;

SELECT * FROM books WHERE book_title like ‘%fix%’

查询book_code象0009*的纪录, 比如 ‘00091’,‘00092’:

SELECT * FROM books WHERE book_title like ‘0009_’

如果你想查询字符串中包含‘%’或‘_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符串’99%’的纪录:

SELECT * FROM books WHERE book_title like ‘%99!%%’ escape ‘!’

后面的escape ‘!’是定一个转义字符‘!’, 指明紧跟着转义字符’!'后的%不再是统配符。

分享博文至:

如何在java程序内运行另一个java程序

2006年9月26日 | 作者: 挨踢开发一点通 | 浏览: 1,288

字体 -

前些天改写了一个java写的tomcat的监控程序(monitor)。 这个程序的旧功能是监控一个tomcat是否在运行,如果没有运行,就发email通知管理员。 改写后的功能是:如果发现tomcat没有运行,发email通知管理员并让tomcat重新运行(restart tomcat)起来。

大家都知道,运行tomcat就是一个批处理文件,文件中会有java -cp classpath ***.jar这样的语句,所以说这就是要在一个java程序(tomcat monitor)中运行另一个java程序(tomcat本身)。

具体程序其实很简单。 在监控程序中,当触发重启tomcat的逻辑中,加入这样一行:

try{ Runtime.getRuntime().exec(”cmd /K start d:\\apps\\jakarta-tomcat-5.5.4\\bin\\startup.bat “); }catch(…){…}

这样,监控程序会打开一个新的窗口启动tomcat。cmd 和 start 具体的参数可以参考 cmd /? 和 start /? .

当然,上述是在windows 2000+环境下,linux环境估计也是雷同,希望大家讨论。

分享博文至:

用 apache 的 mod_jk 建立多个tomcat的负载均衡( load balance )

2006年9月25日 | 作者: 挨踢开发一点通 | 浏览: 672

字体 -

1. 下载安装apache: http://httpd.apache.org/ 2. 下载安装 jk connector :http://tomcat.apache.org/connectors-doc/ 3. linux下,可能apache和jk connector 都需要重新编译安装, windows 下不需要, 直接copy mod_jk.so到相应的目录 4. 修改httpd.conf, 增加如下

###IT开发一点通: 启用 jk 模块

LoadModule jk_module modules/mod_jk.so

###IT开发一点通: 设置 jk 模块的一些参数

JkWorkersFile “D:/apps/Apache_2.2.3-Openssl_0.9.8b-Win32/conf/workers.properties” JkLogFile “D:/apps/Apache_2.2.3-Openssl_0.9.8b-Win32/logs/mod_jk.log” JkLogLevel info JkLogStampFormat “[%a %b %d %H:%M:%S %Y] “

###IT开发一点通: 指定默认的文件访问路径, 如果这些文件不在balance的匹配模式中, apache会直接访问,不通过tomcat

JkAutoAlias “D:/web/NewWEB”

###IT开发一点通: 指定哪些文件(html, css, js, gif, jpg etc. )不通过balance和tomcat访问

JkUnMount /*.gif loadbalancer JkUnMount /*.jpg loadbalancer JkUnMount /*.js loadbalancer JkUnMount /*.html loadbalancer JkUnMount /*.htm loadbalancer JkUnMount /*.css loadbalancer

###IT开发一点通: 指定balance访问的匹配模式

JkMount /MYWeb/* loadbalancer

###IT开发一点通: 设置查看jk状态的网页, 可选,用<location>是为了安全,只准某个ip的访问

<Location /jkmanager/> JkMount jkstatus Order deny,allow Deny from all Allow from 192.168.0.104 </Location>

5. 修改conf/workers.properties ###IT开发一点通: 设定WORKER, 有两个

worker.list=loadbalancer, jkstatus

###IT开发一点通: 设定多个TOMCAT,每一个是一个worker,

# ———————— # First tomcat server # ———————— worker.tomcat1.port=8009 worker.tomcat1.host=192.168.0.104 worker.tomcat1.type=ajp13 # Specify the size of the open connection cache. #worker.tomcat1.cachesize # Specifies the load balance factor when used with # a load balancing worker. # Note: # —-> lbfactor must be > 0 # —-> Low lbfactor means less work done by the worker. worker.tomcat1.lbfactor=100

# ———————— # Second tomcat server # ———————— worker.tomcat2.port=8009 worker.tomcat2.host=192.168.0.45 worker.tomcat2.type=ajp13 # Specify the size of the open connection cache. #worker.tomcat2.cachesize # Specifies the load balance factor when used with # a load balancing worker. # Note: # —-> lbfactor must be > 0 # —-> Low lbfactor means less work done by the worker. worker.tomcat2.lbfactor=100

###IT开发一点通: 设定Load Balancer

# ———————— # Load Balancer worker # ———————— # The loadbalancer (type lb) worker performs weighted round-robin # load balancing with sticky sessions. # Note: # —-> If a worker dies, the load balancer will check its state # once in a while. Until then all work is redirected to peer # worker. worker.loadbalancer.type=lb worker.loadbalancer.balanced_workers=tomcat1, tomcat2

###IT开发一点通: 设定 Status worker

# ———————— # Status worker # ———————— # Define a ‘jkstatus’ worker using status worker.jkstatus.type=status

6. 修改tomcat1的server.conf文件, tomcat2的也要作相应的修改 <!–IT开发一点通: 定义 AJP 1.3 Connector on port 8009, 当然端口8443上要有个instance –>

<Connector port=”8009″ enableLookups=”false” redirectPort=”8443″ protocol=”AJP/1.3″ />

<!–IT开发一点通: 在Engine中加一个属性 :  jvmRoute=”tomcat1″, 名字与conf/workers.properties中的一致 –>

<Engine jvmRoute=”tomcat1″ name=”Catalina” defaultHost=”localhost”>

7. 重启所有的server 8. 现在可以从 192.168.0.104 用 http://someweb.com/jkmanager/ 查看负载均衡的状态,当然可以动态的调整负载, 比如停止某个tomcat, 给某个tomcat多一些负载等等   jkmanager.gif

分享博文至:

DB2关于时间的一些函数

2006年9月25日 | 作者: 挨踢开发一点通 | 浏览: 624

字体 -

得到当前时间的年份、月份、天、小时等等:

YEAR (current timestamp) MONTH (current timestamp) DAY (current timestamp) HOUR (current timestamp) MINUTE (current timestamp) SECOND (current timestamp) MICROSECOND (current timestamp)

分别得到当时的日期和时间

DATE (current timestamp) TIME (current timestamp)

关于时间的一些计算:

current date + 1 YEAR current date + 3 YEARS + 2 MONTHS + 15 DAYS current time + 5 HOURS - 3 MINUTES + 10 SECONDS

计算两个日期之间有多少天:

days (current date) - days (date(’1999-10-22′))

得到去除毫秒的当前时间:

CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS

将时间转换成字符串:

char(current date) char(current time) char(current date + 12 hours)

将字符串转换成时间:

TIMESTAMP (’2002-10-20-12.00.00.000000′) TIMESTAMP (’2002-10-20 12:00:00′) DATE (’2002-10-20′) DATE (’10/20/2002′) TIME (’12:00:00′) TIME (’12.00.00′)

分享博文至:

如何让OpenSSL得到JKS格式的keystore中的public and private key

2006年9月21日 | 作者: 挨踢开发一点通 | 浏览: 1,718

字体 -

从一个JKS的keystore中导出public key (certificate)

keytool -export -alias mykey -keystore keystore -file exported.crt

转换成PEM格式,这个格式使用更广

openssl x509 -out exported-pem.crt -outform pem -text -in exported.crt -inform der

导出private key(请参考): 下载文件ExportPriv.java,编译后运行

javac ExportPriv.java

java ExportPriv <keystore> <alias> <password> > exported-pkcs8.key

上述得到的private key是PKCS#8 PEM格式,使用如下命令才能转换成apache可以使用的RSA格式

openssl pkcs8 -inform PEM -nocrypt -in exported-pkcs8.key -out exported.key

现在可以把得到的public key(certificate) 和private key打包在一起,转换成windows平台常用的PKCS12格式

openssl pkcs12 -export -out exported.pfx -inkey exported.key -in exported-pem.crt

分享博文至:

如何用keytool给JDK安装安全证书(Certificate)

2006年9月21日 | 作者: 挨踢开发一点通 | 浏览: 1,115

字体 -

– 导入证书

>cd D:\BEA\j2sdk1.4.2_10\bin 

>keytool -import -keystore ../jre/lib/security/cacerts -alias SomeCompanyAPI -file ../jre/lib/security/theCom.cer

– 查看已有证书

>keytool -list -keystore ../jre/lib/security/cacerts

– 删除证书

>keytool -delete -keystore ../jre/lib/security/cacerts -alias SomeCompanyAPI

分享博文至:

如何找出导致 DB2 dead lock的应用程序

2006年9月19日 | 作者: 挨踢开发一点通 | 浏览: 555

字体 -
标签:

先得到数据库DB_NAME的dead lock snapshot的list 

get snapshot for locks on DB_NAME

然后根据标出的dead lock的agentid,运行

get snapshot for application agentid 8888

分享博文至:

如何得到所有account在某个时间点后最近一次交易的类型

2006年9月19日 | 作者: 挨踢开发一点通 | 浏览: 327

字体 -
标签:

假设table transaction 中有 acc_id, transaction type, and lock

select a.acc_id, a.type    from transaction a,            (select acc_id,max(trans_id) maxTrans                 from transaction                 where lock>’2006-08-25-00.00.00′                       and type=’1′ group by acc_id) b

   where a.acc_id=b.acc_id and a.trans_id=b.maxTrans

分享博文至:

如何在db2cmd下运行一个sql 的script文件

2006年9月19日 | 作者: 挨踢开发一点通 | 浏览: 561

字体 -
标签:

如何在db2cmd下运行一个sql的script文件

假设文件名是HS.SQL

>DB2 -TVF HS.SQL

分享博文至:

建立本地机与DB2数据库的连接

2006年9月19日 | 作者: 挨踢开发一点通 | 浏览: 480

字体 -
标签:

假设数据库名是DB_NAME,运行在192.168.0.111的50000端口上:

建立数据库连接的NODE:

>db2 catalog tcpip node NODE_NAME remote 192.168.0.111 server 50000

建立数据库的别名: 

>db2 catalog database DB_NAME as ALIAS_DB_NAME at node NODE_NAME

分享博文至: