??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合精品成人,亚洲中久无码不卡永久在线观看,国产成人精品曰本亚洲79ren http://m.tkk7.com/yutian727/zh-cn Sun, 11 May 2025 00:00:31 GMT Sun, 11 May 2025 00:00:31 GMT 60 loadrunner监控linux和weblogic安装文档 http://m.tkk7.com/yutian727/archive/2008/02/25/181932.html牛宝?/dc:creator>牛宝?/author>Mon, 25 Feb 2008 03:10:00 GMT http://m.tkk7.com/yutian727/archive/2008/02/25/181932.html http://m.tkk7.com/yutian727/comments/181932.html http://m.tkk7.com/yutian727/archive/2008/02/25/181932.html#Feedback 0 http://m.tkk7.com/yutian727/comments/commentRss/181932.html http://m.tkk7.com/yutian727/services/trackbacks/181932.html 很久没上来活动了(jin)Q一来没什么新的学?fn)东西,q一q有些堕落了(jin)Q二来嘛Q工作就是重复,可能是太W了(jin)Q没什么新的领(zhn)?br />
不过q两天有意思了(jin)Q我学习(fn)?jin)一下压力测试的东西QloadRunnerQ以前听同事们说q,感觉是个很有意思的东西Q可是一直没有机?x)学。现在好?jin),l别人做?jin)回助手Q也?jin)解了(jin)一下loadRunner的一些用?br />
不想在这里讨Z用,我还?sh)够资格Q讲些安装吧Q说一下如何用lr来监控linux和weblogicQ这可是我自q安装?j)得哦?br />
对linux的安装有些来自网上,出处有些C清了(jin)Q反正查?jin)很多,可是多少有些问题Q我做了(jin)下说明,可以参考?br />
一、loadrunner监控linux安装文档
1Q安装rshQ和rsh-server两个服务包?br />
a. 卸蝲rsh
rpm –q rsh----------查看版本?/p>
说明Q如果版本存在,则直接安装rpc.rstatd-4.0.1.tar.gz
如果版本不存在,则在linux安装包下找rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
可能版本不一_(d)但是均可使用
BQ安?/p>
rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
2Q?下蝲q安装rstatdQ这个包在我的共享目录下也有Q?br />
gunzip rpc.rstatd-4.0.1.tar.gz
tar –cvf rpc.rstatd-4.0.1.tar
./configure ---配置
make ---~译
说明Qa.如果在linux下不能解压,则在window下解压,然后拷到l(f)inux下,目录不定Q用户ؓ(f)root用户
b.修改configure文g的用权?br />
chmod 777 configure
c.按照上面的步骤操?/p>
3?打开/etc/xinetd.conf
里面内容是:(x)
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
4Q重启xinetdQ?/p>
A:
service xinetd reload
说明Q可能会(x)有提C出玎ͼ不用处理Q直接进入下一?/p>
6Q在启动rstatdQ?br />
q入你rpc.rstatd-4.0.1.tar.gz的解压文件目?br />
rpc.rstatd
7.查看rstatd是否启动Q?/p>
rpcinfo –p
如果能看刎ͼ(x)
100001 5 udp 618 rstatd
100001 3 udp 618 rstatd
100001 2 udp 618 rstatd
100001 1 udp 618 rstatd
p明rstatd服务已经启动。可以用LRȝ视了(jin)?/p>
二、loadrunner监控weblogic8.1
1.拯weblogic.jar?{lr_home}/classes下,同时Q删除jmxri.jar或者修改jmxri.jarZQ何名U?br />
2.修改${lr_home}/dat/monitors下的WebLogicMon.ini文gQ内容如下:(x)
原始内容为:(x)JVM=javaw.exe JavaVersion=1.4;JavaVendor=Sun Microsystems Inc.
修改后内容ؓ(f)QJVM=D:\bea\jdk141_03\bin\javaw.exe JavaVersion=1.4;JavaVendor=Sun Microsystems Inc.
其中D:\bea\jdk141_03\bin\javaw.exe己本地weblogic的jdk所在位|?br />
javaVersion为weblogic所用的jdk版本?br />
在网上有的要求修改Weblogic=weblogic.jar Port=1112Q要求把PORT修改?001Q但在这里的实际安装q程中,没有做修攏V?br />
3.配置如何监控lr的weblogic(jmx)
打开weglogic(jmx),d度量
其中监控的计机名称为:(x)ip:7001Q如192.168.1.88:7001Q^台选择所写ip的OS
然后点击下面的资源度量的dQ输入登录的用户名和密码Q此处的用户名和密码为:(x)ip所在OS上的weblogic的登录用户名和密?br />
在点ȝ定后?x)出现需要监控的资源信息Q可以选择自己感兴的斚wq行监控
]]>java.lang.String中,match()的用法,即String.match(String pattern) http://m.tkk7.com/yutian727/archive/2007/12/03/164959.html牛宝?/dc:creator>牛宝?/author>Mon, 03 Dec 2007 10:04:00 GMT http://m.tkk7.com/yutian727/archive/2007/12/03/164959.html http://m.tkk7.com/yutian727/comments/164959.html http://m.tkk7.com/yutian727/archive/2007/12/03/164959.html#Feedback 7 http://m.tkk7.com/yutian727/comments/commentRss/164959.html http://m.tkk7.com/yutian727/services/trackbacks/164959.html 阅读全文 ]]> JAVA 处理旉 - java.sql.Date、java.util.Date与数据库中的Date字段的{换方法[转] http://m.tkk7.com/yutian727/archive/2007/11/12/159888.html牛宝?/dc:creator>牛宝?/author>Mon, 12 Nov 2007 02:16:00 GMT http://m.tkk7.com/yutian727/archive/2007/11/12/159888.html http://m.tkk7.com/yutian727/comments/159888.html http://m.tkk7.com/yutian727/archive/2007/11/12/159888.html#Feedback 2 http://m.tkk7.com/yutian727/comments/commentRss/159888.html http://m.tkk7.com/yutian727/services/trackbacks/159888.html
Q、如何将java.util.Date转化为java.sql.Date?
转化Q?br />
java.sql.Date sd;
java.util.Date ud;
//initialize the ud such as ud = new java.util.Date();
sd = new java.sql.Date(ud.getTime());
Q、如果要插入到数据库q且相应的字Dؓ(f)Datecd
那么可以用PreparedStatement.setDate(int ,java.sql.Date)Ҏ(gu)
其中的java.sql.Date可以用上面的Ҏ(gu)得到
也可以用数据库提供TO_DATE函数
比如 现有 ud
TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),
"YYYY-MM-DD HH24:MI:SS")
注意java中表C格式和数据库提供的格式的不?br />
一个实际的例子
sql="update tablename set timer=to_date('"+t+"','yyyymmddhh24miss') where ....."
q里的t为变量ؓ(f)cM:20051211131223
Q、如何将"yyyy-mm-dd"格式的字W串转换为java.sql.Date
Ҏ(gu)Q?/p>
SimpleDateFormat bartDateFormat =
new SimpleDateFormat("yyyy-MM-dd");
String dateStringToParse = "2007-7-12";
try {
java.util.Date date = bartDateFormat.parse(dateStringToParse);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate.getTime());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
------------------------------------------------------------
Ҏ(gu)Q?br />
String strDate = "2002-08-09";
StringTokenizer st = new StringTokenizer(strDate, "-");
java.sql.Date date = new java.sql.Date(Integer.parseInt(st.nextToken()),
Integer.parseInt(st.nextToken()),
Integer.parseInt(st.nextToken()));
java.util.Date和java.sql.Date的异?/div>
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子c(包装c)(j)?
但是Z么java.sql.Datecd的值插入到数据库中Date字段中会(x)发生数据截取呢?
java.sql.Date是ؓ(f)?jin)配合SQL DATE而设|的数据cd?#8220;规范?#8221;的java.sql.Date只包含年月日信息Q时分秒毫秒都会(x)清零。格式类|(x)YYYY-MM-DD。当我们调用ResultSet的getDate()Ҏ(gu)来获得返回值时QjavaE序?x)参?规范"的java.sql.Date来格式化数据库中的数倹{因此,如果数据库中存在的非规范化部分的信息会(x)被劫取?/div>
在sun提供的ResultSet.java中这样对getDateq行注释的:(x)
Retrieves the of the designated column in the current row of this <code>ResultSet</code> object as a “java.sql.Date” object in the Java programming language.
同理。如果我们把一个java.sql.Date值通过PrepareStatement的setDateҎ(gu)存入数据库时QjavaE序?x)对传入的java.sql.Date规范化,非规范化的部分将?x)被劫取。然而,我们java.sql.Date一般由java.util.Date转换q来Q如Qjava.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()).
昄Q这栯{换过来的java.sql.Date往往不是一个规范的java.sql.Date.要保存java.util.Date的精|
我们需要利用java.sql.Timestamp.
Calendar
Calendar calendar=Calendar.getInstance();
//获得当前旉Q声明时间变?nbsp;
int year=calendar.get(Calendar.YEAR);
//得到q?br />
int month=calendar.get(Calendar.MONTH);
//得到月,但是Q月份要加上1
month=month+1;
int date=calendar.get(Calendar.DATE);
//获得日期
String today=""+year+"-"+month+"-"+date+"";
]]> [转]JSF的学?fn)笔记提U?/title> http://m.tkk7.com/yutian727/archive/2007/09/28/149172.html牛宝?/dc:creator>牛宝?/author>Fri, 28 Sep 2007 08:03:00 GMT http://m.tkk7.com/yutian727/archive/2007/09/28/149172.html http://m.tkk7.com/yutian727/comments/149172.html http://m.tkk7.com/yutian727/archive/2007/09/28/149172.html#Feedback 1 http://m.tkk7.com/yutian727/comments/commentRss/149172.html http://m.tkk7.com/yutian727/services/trackbacks/149172.html
使用JSF
一、入?br />
1. hello world
2. Navigation
3. Navigation rules configuration
4. JSF Expression Language
#{param.name} 隐含对象
5. I18N
二、Managed Beans
1. Backing BeanQGlue BeanQ?br />
2. Beans的状态与讄
3. Beans上的List、Map
三、数据{换与验证
1. 标准转换?br />
<f: convertDateTime>
<h: message for="dateField" style="color: red"/>
2. 自定义{换器
3. 标准验证?br />
语法(g)验、语意检?br />
<f: validateLength minimum="6"/>
4. 自定义验证器
5. 错误信息处理
messages.properties
6. 自定义{换、验证标{?br />
Tag Library
四、事件处?br />
1. 动作事g
ActionEvent
actionListener
2. x(chng)事g
immediate="true"
3. 值变?sh)g
valueChangeListener
4. phaseQ分阶段Q事?br />
JSF标签
一、标{օ?br />
1. 介JSF标准标签
2. 输出cL{?br />
1) outputLabel
2) outputLink
3) outputFormat
4) outputText
3. 输入cL{?br />
1) inputText
2) inputTextarea
3) inputSecret
4) inputHidden
4. 命o(h)cL{?br />
1) commandButton
2) commandLink
5. 选择cL{?br />
1) <h: selectBooleanCheckbox>
2) <h: selectOneRadio>?lt;h: selectOneListbox>?lt;h: selectOneMenu>
3) <h: selectManyCheckbox>?lt;h: selectManyListbox>?lt;h: selectManyMenu>
4) <f: selectItem>?lt;f: selectItems>
二、表格处?br />
1. 单的表格
<h: dataTable>?lt;h: column>
2. 表头、表?br />
<f: facetname="header">
<f: facetname="footer">
CSS
3. TableModelcd
数组
java.util.List
java.sql.ResultSet
javax.servlet.jsp.jstl.sql.Result
javax.faces.model.DataModel
参考资料:(x)
http://caterpillar.onlyfun.net/Gossip/JSF/JavaServerFaces.htm
]]> 利用Jakarta Commonslgbeanutils、dbutils化JDBC数据库操作(二)(j) http://m.tkk7.com/yutian727/archive/2007/09/20/146714.html牛宝?/dc:creator>牛宝?/author>Thu, 20 Sep 2007 03:09:00 GMT http://m.tkk7.com/yutian727/archive/2007/09/20/146714.html http://m.tkk7.com/yutian727/comments/146714.html http://m.tkk7.com/yutian727/archive/2007/09/20/146714.html#Feedback 1 http://m.tkk7.com/yutian727/comments/commentRss/146714.html http://m.tkk7.com/yutian727/services/trackbacks/146714.html 二、Jakarta Commons dbutilsQ?/strong>
用JDBC API时最令h讨厌的就是异常处理,也很?ch)琐Q而且很容易出错,本h曾考虑q利用模板进行处理,后来看到?jin)dbutilsQ之后就采用那个dbutilsQ采用模板的方式各位朋友可以参考SpringQSpring的JdbcTemplate不灵z而强大,呵呵Q说句闲话,实在太佩服Rod Johnson?jin),Rod Johnson真的很o(h)人尊敬?br />
Dbutils的QueryRunner把大多数与关闭资源相关的装hQ另外,你也可以使用DbUtilsq行关闭Q当然DbUtils提供的功能当然不止这些,它提q了(jin)几个常用的静(rn)态方法,除了(jin)上述的关闭资源外QDbUtils. commitAndClose(Connection conn)q提供事务提?qing)等操作?br />
q是以一个例子来说说吧,毕竟我不是搞业务的,嘴巴吧嗒吧哒不h啊,呵呵?br />
Z(jin)和采用Beanutils更好的进行对比,q个例子q是实现同样的功能,数据库同样采用前一文章中提到的publish?br />
同样的,用你喜欢的编辑器建立一个类DbutilsJDBCTestQ示例代码如下所C?
package cn.qtone.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapListHandler;
public class DbutilsJDBCTest{
public static void main(String[] args) {
Connection conn = null;
String jdbcURL = "jdbc:mysql://127.0.0.1:3306/publish?useUnicode=true&characterEncoding=GBK";
String jdbcDriver = "com.mysql.jdbc.Driver";
try {
DbUtils.loadDriver(jdbcDriver);
// Username "root". Password "root"
conn = DriverManager.getConnection(jdbcURL, "root", "root");
QueryRunner qRunner = new QueryRunner();
System.out.println("***Using MapListHandler***");
//以下部分代码采用Map存储方式Q可以采用Bean的方式代替进行处?br />
List lMap = (List) qRunner.query(conn,
"select title,authors from books", new MapListHandler());
//以下是处理代码,可以抽取出来
System.out.println("title ------------- authors ");
for (int i = 0; i < lMap.size(); i++) {
Map vals = (Map) lMap.get(i);
System.out.println(vals.get("title")+"-------------"+ vals.get("authors"));
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
怎么?是不是比采用Beanutils的ResultSetDynaTrial和RowSetDynaClass好多?jin)?采用Beanutils令h隄的是关闭那些资源以及(qing)处理那些异常Q而这里采用Dbutils昄代码量减了(jin)很多?br />
上例在处理结果集Ӟ它把数据库中的每一行映成一个MapQ其中列名作为KeyQ该列对应的g为Value存放Q查询的所有的数据一h在一个List里,然后q行处理Q当?dng)一个更明智的处理是直接q回List然后再单独进行处理?br />
事实上上例返回的l果集中的每一行不必放在一个Map里,你可以放在一个Bean里,当然如果你真的很懒,你也可以使用Beanutils的LazyDynaClass和LazyDynaBeanQ不q也许没有必要那么做Q至于原因请看下文?br />
如果使用Bean而不是用MapQ那么,你也?dng)R要徏立一个BeanQ如下:(x)
package cn.qtone.test;
public class Book {
public int id;
public String title;
public String authors ;
public StudentBean() {
}
public String getAuthors() {
return authors;
}
public void setAuthors(String authors) {
this.authors = authors;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
然后单修改一下DbutilsJDBCTest 中的部分代码卛_Q代替之后的源代码如下:(x)
package cn.qtone.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class DbutilsJDBCTest{
public static void main(String[] args) {
Connection conn = null;
String jdbcURL = "jdbc:mysql://127.0.0.1:3306/publish?useUnicode=true&characterEncoding=GBK";
String jdbcDriver = "com.mysql.jdbc.Driver";
try {
DbUtils.loadDriver(jdbcDriver);
// Username "root". Password "root"
conn = DriverManager.getConnection(jdbcURL, "root", "root");
QueryRunner qRunner = new QueryRunner();
System.out.println("***Using BeanListHandler ***");
//以下部分代码采用Map存储方式Q可以采用Bean的方式代替进行处?br />
List lBeans = (List) qRunner.query(conn," select title,authors from books ", new BeanListHandler(Book.class));
//以下是处理代码,可以抽取出来
System.out.println("title ------------- authors ");
for (int i = 0; i < lBeans.size(); i++) {
Book vals = (Book) lBeans.get(i);
System.out.println(vals.getTitle ()+"-------------"+ vals. getAuthors ());
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
q两U法输出的结果应该是一L(fng)。两U处理方式都差不多,但我更愿意采用第一U,因ؓ(f)W一U少写一个beanQ而且我测试过采用Map的方式即W一U方式性能要好的多Q采用Bean性能比较低可能是因ؓ(f)采用反射的缘故,采用反射的东东性能和不采用反射的还是有点差距。也是这个原因,不推荐采用LazyDynaClass和LazyDynaBeanQ因为采用这二者是在运行期动态创建BeancdBean属性,然后再创建Bean对象的,其性能可想而知?jin)(不过我没有测试过啊,所以我说这个话可说是没有根据的Q感兴趣的朋友自己测试一下,记得告诉我结果哦Q呵呵)(j)Q除?jin)MapListHandler以及(qing)BeanListHandler之外QDButilsq提供了(jin)其他的HandlerQ如果这些不能满你的需求,你也可以自己实现一个Handler?br />
最后,也是最大的体会(x),也许是最大的收获吧,那就?对于每一个项?在根据每一个需求获取相应解x(chng)案时,先寻扑ּ源组?看是否已l有满某些功能需求的开源组?如果没有,再考虑自主开发或者向W三方购乎ͼ否则量采用开源组?
请尽量n用开源的力Q尽情的拥抱开源吧?br />
]]> 利用Jakarta Commonslgbeanutils、dbutils化JDBC数据库操作(一Q?/title> http://m.tkk7.com/yutian727/archive/2007/09/20/146712.html牛宝?/dc:creator>牛宝?/author>Thu, 20 Sep 2007 03:08:00 GMT http://m.tkk7.com/yutian727/archive/2007/09/20/146712.html http://m.tkk7.com/yutian727/comments/146712.html http://m.tkk7.com/yutian727/archive/2007/09/20/146712.html#Feedback 2 http://m.tkk7.com/yutian727/comments/commentRss/146712.html http://m.tkk7.com/yutian727/services/trackbacks/146712.html
关键字:(x)beanutils、dbutils、JDBC 数据?br />
摘要Q本文简单介l了(jin)Jakarta Commons旗下beanutils、dbutils在基于JDBC API数据库存取操作中的运用?br />
虽然现在出现?jin)很多ORM框架Q可是还是有很多朋友也许q在使用JDBCQ就像我现在一P除了(jin)学习(fn)的时候在使用Hibernate、SpringcMq些优秀的框Ӟ工作时一直都在用JDBC。本文就单介l一下利用Jakarta Commons旗下beanutils、dbutils化JDBC数据库操作,以抛砖引玉,希望对像我一样在使用JDBC的朋友有所帮助?br />
下面分两部分简单介lbeanutils、dbutils在基于JDBC API数据库存取操作中的运用。第一部分显介lbeanutils在JDBC数据库存取操作中的运用,W二部分介绍dbutils在JDBC数据库存取操作中的运用,最后看看他们的优缺点,谈谈本h在项目运用过E中对他们的一点心(j)得体?x),仅供参考,其中有错误的地方希望大虾不吝赐教Q大家多多交共同进步?br />
一、Jakarta Commons beanutils
Beanutils是操作Bean的锐利武器,其提q的BeanUtils工具cd以简单方便的d或设|Bean的属性,利用DynapdQ还可以在运行期创徏BeanQ符合懒人的?fn)惯Q正如LazyDynaBeanQLazyDynaClass一P呵呵。这些用法已l有很多文章提及(qing)Q也可以参考apache的官Ҏ(gu)档?br />
对于直接利用JDBC API讉K数据库时Q这里针对的是返回结果集ResultSet的查询selectQ,大多数都是采用两U方式,一U是取出q回的结果集的数据存?sh)Map中,另一U方式是Bean里。针对第二种方式QBeanutils里提供了(jin)ResultSetDynaClassl合DynaBean以及(qing)RowSetDynaClassl合DynaBean来简化操作。下面用以个单的例子展示一下beanutils的这两个cdJDBC数据库操作中的运用?br />
请在本机建立数据库publishQ我用的是MySQLQ在publish数据库中建立表book,脚本如下Q?br />
CREATE TABLE book(
id int(11) NOT NULL auto_increment,
title varchar(50) character set latin1 NOT NULL,
authors varchar(50) character set latin1 default NULL,
PRIMARY KEY (id)
)
然后用你喜欢的编辑器建立一个类BeanutilsJDBCTestQ我们先用ResultSetDynaClass来处理,然后再用RowSetDynaClass来实现同L(fng)c,之后看看他们之间有什么不同,用ResultSetDynaClass处理的源代码如下所C?
然后用你喜欢的编辑器建立一个类BeanutilsJDBCTestQ我们先用ResultSetDynaClass来处理,然后再用RowSetDynaClass来实现同L(fng)c,之后看看他们之间有什么不同,用ResultSetDynaClass处理的源代码如下所C?
package cn.qtone.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Iterator;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.beanutils.ResultSetDynaClass;
public class BeanutilsJDBCTest{
public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/publish?useUnicode=true&characterEncoding=GBK";
con = DriverManager.getConnection(url, "root", "hyys");
st = con.createStatement();
rs = st.executeQuery("select * from book");
ResultSetDynaClass rsDynaClass = new ResultSetDynaClass(rs);
Iterator itr = rsDynaClass.iterator();
System.out.println("title-------------authors");
while (itr.hasNext()) {
DynaBean dBean = (DynaBean) itr.next();
System.out.println(PropertyUtils.getSimpleProperty(dBean,"title")+ "-------"+ PropertyUtils.getSimpleProperty(dBean, "authors"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
用RowSetDynaClass处理的源代码如下所C?
package cn.qtone.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.beanutils.RowSetDynaClass;
public class BeanutilsJDBCTest{
public static void main(String[] args) {
List rsDynaClass = rsTest();
System.out.println("title ------------- authors ");
Iterator itr = rsDynaClass.iterator();
while (itr.hasNext()) {
DynaBean dBean = (DynaBean) itr.next();
try {
System.out.println(PropertyUtils.getSimpleProperty(dBean,"name") + "-----"+ PropertyUtils.getSimpleProperty(dBean, "mobile"));
} catch (Exception e) {
// TODO 自动生成 catch ?br />
e.printStackTrace();
}
}
}
private static List rsTest() {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/publish?useUnicode=true&characterEncoding=GBK";
con = DriverManager.getConnection(url, "root", "hyys");
st = con.createStatement();
rs = st.executeQuery("select * from book");
RowSetDynaClass rsdc = new RowSetDynaClass(rs);
return rsdc.getRows();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
q两个方法输出的l果应该是一L(fng)。但是很昄W二U方式比W一U方式要好,它把数据讉K部分抽取出来攑ֈ一个方法中Q显得简单清晰?br />
其实在利用ResultSetDynaClassӞ必须在ResultSet{数据库资源关闭之前Q处理好那些数据Q你不能在资源关闭之后用DynaBeanQ否则就?x)抛出异常,异常是说不能在ResultSet之后存取数据Q具体的异常名我也忘?sh)(jin)?j)Q当然你也可以采用以前的方式一个一个的把数据放到Map里,如果你一定要那样做,q是别用BeanutilsQ因没带l你什么好处。M利用ResultSetDynaClass你的E序的扩展性非帔R好?br />
从第二中方式可以看出Q利用RowSetDynaClass可以很好的解决上qResultSetDynaClass遇到的问题,RowSetDynaClass的getRows()Ҏ(gu)Q把每一行封装在一个DynaBean对象里,然后Q把说有的行攑ֈ一个List里,之后你就可以对返回的List里的每一个DynaBeanq行处理Q此外对于DynaBean你还可以采用标准的get/set方式处理Q当然你也可以用PropertyUtils. getSimpleProperty(Object bean, String name)q行处理?br />
从上面的分析中,你应该可以决定你应该使用ResultSetDynaClassq是RowSetDynaClass?jin)?br />
未完待箋(hu)……
]]> 存储q程生成临时表用从(f)时表中取数据 http://m.tkk7.com/yutian727/archive/2007/07/06/128617.html牛宝?/dc:creator>牛宝?/author>Fri, 06 Jul 2007 08:37:00 GMT http://m.tkk7.com/yutian727/archive/2007/07/06/128617.html http://m.tkk7.com/yutian727/comments/128617.html http://m.tkk7.com/yutian727/archive/2007/07/06/128617.html#Feedback 4 http://m.tkk7.com/yutian727/comments/commentRss/128617.html http://m.tkk7.com/yutian727/services/trackbacks/128617.html q两天工作还?工作的内容就是写存储q程,对于我这个没有写q存储近E的人来?q是有一定困隄.不过q好,在众多资源的帮助?万事OK呀,哈哈.下面是我写的两个存储过E?
其一:Ҏ(gu)据库中的原表q行每天的备?
其二:通过Ҏ(gu)新的备䆾表进行取值操?通过判断,向原表中插入数据.
其实q两个存储过E也没有什么难?一斚w我是q方面的新手,另一斚w要操作一个(f)时表,而且要从中取得数?没有传入?,我在|上找了(jin)一?没有什么成功的例子,所?把我q两天的成果晒一?
先说几个关键?我用的时?没少几个词费脑子)
1. execute Immediate,一个执行动态SQL的东?在每天生成备份表?立下?jin)汉马功?我的表名?原表?yyyymmdd
2. creat table 表名 as select * from 已有?q是一个创,我认为最快的一U方?在创的同?也可以直接把已有表中的数据也一起copyq来,呵呵,很是奇
3. sys_refcursor,q是一个cursor,很怪异的一个cursor,能够生成动态的cursor,可以多用一?
下面我写的存储过E?主要C务逻辑L?主要说一下过E?o:p>
1. 每天生成表备份的存储q程
create or replace procedure P_HOLD_COPY Is --每天l算?为当天的持股做备?br>--得到表名为原表名+yyyymmdd的格?br>table_name Varchar2(20) := 'test'||To_char(Sysdate,'yyyymmdd'); Begin execute Immediate 'Create Table '||table_name||' As Select * From T_STOC_HOLD'; Commit; end P_HOLD_COPY;
2. 从备份表中取得数?然后Ҏ(gu)数据,对原表进行操?/p>
create or replace procedure P__SHARE is --****************************************************************** --存储q程名称QP_SHARE --功能描述Q对备䆾表进行数据操?br>--****************************************************************** balance Number; totalmoney Number; h_amount Number; allot_stock Number; allot_money Number; str Varchar2(1); v_product_oid Varchar2(32); table_name Varchar2(20); sqlstr Varchar2(1000); v_allot_row t_stoc_allot%rowtype; v_hold_row t_stoc_hold%rowtype; Cursor c_allot is select * from t_stoc_allot where to_char(t_stoc_allot.regdate,'yymmdd') < to_char(sysdate+1,'yymmdd') And (t_stoc_allot.is_allot Is Null Or t_stoc_allot.is_allot='1'); c_hold sys_refcursor ; Begin open c_allot; loop fetch c_allot into v_allot_row; table_name := 'T_STOC_HOLD'||To_char(v_allot_row.regdate,'yyyymmdd'); v_product_oid := v_allot_row.product_oid; sqlstr := 'select * from '||table_name||' where stock_code='||v_product_oid; exit when c_allot%NOTFOUND; open c_hold For sqlstr ; loop fetch c_hold into v_hold_row; exit when c_hold%NOTFOUND; end loop; close c_hold; end loop; close c_allot; Commit; end P_SHARE;
]]> eclipse的远E调?jboss+tomcat),已成?/title> http://m.tkk7.com/yutian727/archive/2007/07/06/128591.html牛宝?/dc:creator>牛宝?/author>Fri, 06 Jul 2007 07:22:00 GMT http://m.tkk7.com/yutian727/archive/2007/07/06/128591.html http://m.tkk7.com/yutian727/comments/128591.html http://m.tkk7.com/yutian727/archive/2007/07/06/128591.html#Feedback 3 http://m.tkk7.com/yutian727/comments/commentRss/128591.html http://m.tkk7.com/yutian727/services/trackbacks/128591.html 何ؓ(f)q程调试Q我们一般调试一个web目的java代码Ӟ需要将你的web服务器和你的开发工P比如eclipseQ集成,或需要工L(fng)一些插件支?比如Eclipse下的myclipse{?Q这些方式都是在本地q行Q即你的开发工具和web服务器运行在同一台服务器上,如果你的开发工具和服务器不再一台机器上那就需要实现远E调试功能了(jin)?/p>
下面说明一下在tomcat中的q程调试实现:
在tomcat的catalina.bat文g中加入下面的讄Q当然SET CATALINA_OPTS 变量应该在用它之前。这是在tomcat启动时设|一些虚拟机参数Q服务器允许远E连接功能,address=5888表示q程q接的端口号Q可以设|成L其他不冲H端口?br>SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888
然后说明一下在jboss中的q程调试实现: 在jobss中配|远E调试比较简?他的原理和tomcat一?也是修改一下他的虚拟机参数,形式?端口?787,注意端口不要重复 JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
q样O(jin)k?jin),重启动web服务?可以直接独立启动Q而不用在eclipes的插件中启动。打开eclipse中的debug讄H口Q选择Remote Java Application Q新Z个debug,输入服务器IP和刚才设|端口号Q点ok可以进入debug状态了(jin)。Jbuilder中同样可以设|Remote Java Application?/p>
]]> java.util.TimeTask例子 http://m.tkk7.com/yutian727/archive/2007/06/01/121380.html牛宝?/dc:creator>牛宝?/author>Fri, 01 Jun 2007 08:30:00 GMT http://m.tkk7.com/yutian727/archive/2007/06/01/121380.html http://m.tkk7.com/yutian727/comments/121380.html http://m.tkk7.com/yutian727/archive/2007/06/01/121380.html#Feedback 2 http://m.tkk7.com/yutian727/comments/commentRss/121380.html http://m.tkk7.com/yutian727/services/trackbacks/121380.html java.util.Timer定时器,实际上是个线E,定时调度所拥有的TimerTasks? 一个TimerTask实际上就是一个拥有runҎ(gu)的类Q需要定时执行的代码攑ֈrunҎ(gu)体内QTimerTask一般是以匿名类的方式创建? 一个完整的TimerQ? java.util.Timer timer = new java.util.Timer(true); // true 说明q个timer以daemon方式q行Q优先低, // E序l束timer也自动结束)(j)Q注意,javax.swing // 包中也有一个Timerc,如果import中用到swing包, // 要注意名字的冲突? TimerTask task = new TimerTask() { public void run() { ... //每次需要执行的代码攑ֈq里面? } }; //以下是几U调度task的方法:(x) timer.schedule(task, time); // time为DatecdQ在指定旉执行一ơ? timer.schedule(task, firstTime, period); // firstTime为Datecd,period为long // 从firstTime时刻开始,每隔period毫秒执行一ơ? timer.schedule(task, delay) // delay 为longcdQ从现在赯delay毫秒执行一? timer.schedule(task, delay, period) // delay为long,period为longQ从现在赯delay毫秒以后Q每隔period // 毫秒执行一ơ?nbsp; 下面是一个完整的例子,׃个类l成,一个定制Q?一个调用java.util.Timer 定制d: import java.util.Timer;
public class TimerTaskTest extends java.util.TimerTask{
@Override public void run() { // TODO Auto-generated method stub System.out.println("start"); } } 2.调用java.util.Timer import java.util.Timer;
public class Test { public static void main(String[] args){ Timer timer = new Timer(); timer.schedule(new TimerTaskTest(), 1000, 2000); try{ Thread.sleep(1000); }catch(Exception ex){ timer.cancel(); } } } Ҏ(gu)上面的介l?便可以在1U后,每隔2U执行一ơ程?br>:在用Timer timer = new Timer()?不要用Timer timer = new Timer(true).因ؓ(f)q样,在程序结束后,timer也自动结束了(jin),不利于?br>
]]> 定时执行d的三U方?? http://m.tkk7.com/yutian727/archive/2007/06/01/121372.html牛宝?/dc:creator>牛宝?/author>Fri, 01 Jun 2007 07:49:00 GMT http://m.tkk7.com/yutian727/archive/2007/06/01/121372.html http://m.tkk7.com/yutian727/comments/121372.html http://m.tkk7.com/yutian727/archive/2007/06/01/121372.html#Feedback 0 http://m.tkk7.com/yutian727/comments/commentRss/121372.html http://m.tkk7.com/yutian727/services/trackbacks/121372.html 1Qjava.util.Timer q个Ҏ(gu)应该是最常用的,不过q个Ҏ(gu)需要手工启动你的Q务:(x) Timer timer=new Timer(); timer.schedule(new ListByDayTimerTask(),10000,86400000); q里的ListByDayTimerTaskcdextends TimerTask里面的run()Ҏ(gu)?/p>
2QServletContextListener q个Ҏ(gu)在web容器环境比较方便Q这P在web server启动后就可以 自动q行该Q务,不需要手工操作?br>ListByDayListener implements ServletContextListener接口Q在 contextInitializedҎ(gu)中加入启动Timer的代码,在contextDestroyed Ҏ(gu)中加入cancel该Timer的代码;然后在web.xml中,加入listener: <listener> <listener-class>com.qq.customer.ListByDayListener</listener-class> </listener>
3)org.springframework.scheduling.timer.ScheduledTimerTask 如果你用springQ那么你不需要写TimercM(jin)Q在schedulingContext-timer .xml中加入下面的内容可以了(jin)Q?br><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans> <bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <ref local="MyTimeTask1"/> </list> </property> </bean>
<bean id="MyTimeTask" class="com.qq.timer.ListByDayTimerTask"/>
<bean id="MyTimeTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask"> <ref bean="MyTimeTask"/> </property> <property name="delay"> <value>10000</value> </property> <property name="period"> <value>86400000</value> </property> </bean> </beans>
]]>
վ֩ģ壺
ް鵺̳ |
ٸѾƷ |
ƷƵ |
þѹۿƷ |
AVרӰ |
պƵƵ |
ѹۿaƵ |
ɫ¸avվ |
պһ |
Ƶһ߲ |
ҰĻƵ
|
97ԭѹۿ |
þþƷƷް |
þóaëƬѹۿվ |
þþþþAVר |
hƵѿ |
ƬƵ |
պaëƬѹۿ |
Ʒһ |
͵ۺ |
ĻѹۿƵ |
AVӰԺ߹ۿ |
Ƶ |
ƷպһС˵ |
?vƬ |
99þѹػ |
ٸĻӰ |
ձ |
ɫɫwww |
ƷŮߵӰ
|
ڵƵվ |
ŮڵƵվ |
һҳۺͼƬ |
߹ۿxxxx |
רȷӰ |
ҹվѰ߹ۿ |
2022ѹƷ
|
Ʒ鶼 |
2015պƵ |
͵͵APP |
ۺϾƷ㽶þ |