??xml version="1.0" encoding="utf-8" standalone="yes"?>国产日韩在线播放,久久久久一区二区,久久久亚洲国产http://www.aygfsteel.com/0734w/0734是来自家乡的声音zh-cnWed, 18 Jun 2025 16:01:33 GMTWed, 18 Jun 2025 16:01:33 GMT60ORACLE没有监听器错?/title><link>http://www.aygfsteel.com/0734w/archive/2006/05/28/48594.html</link><dc:creator>sparkwu</dc:creator><author>sparkwu</author><pubDate>Sun, 28 May 2006 07:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/0734w/archive/2006/05/28/48594.html</guid><wfw:comment>http://www.aygfsteel.com/0734w/comments/48594.html</wfw:comment><comments>http://www.aygfsteel.com/0734w/archive/2006/05/28/48594.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/0734w/comments/commentRss/48594.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/0734w/services/trackbacks/48594.html</trackback:ping><description><![CDATA[ <p>一、运行监听器<br />在CMD中输入以下内?<br />C:\>lsnrctl<br />LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 14-3?-2003 14:17<br />:51(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.</p> <p>Ƣ迎来到LSNRCTLQ请键入"help"以获得信息?/p> <p>LSNRCTL> status<br />q接?DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521)))<br />TNS-01103: 地址的协议专用组件指定不正确<br />TNS-12541: TNSQ无监听?br />TNS-12560: TNSQ协议适配器出现错?br />TNS-00511: 无监听器<br />32-bit Windows Error: 61: Unknown error</p> <p>LSNRCTL> start<br />启动tnslsnrQ请E?..</p> <p>Failed to start service, error 3.<br />TNS-12536: TNSQ可能会ȝ*?br />TNS-12560: TNSQ协议适配器出现错?br />TNS-00506: *作可能阻?br />32-bit Windows Error: 997: Unknown error</p> <p>?解决Ҏ<br /><br /><br />修改 listerner.ora(..\ora92\network\admin),文g,保如下:<br />LISTENER =<br />  (DESCRIPTION =<br />    (ADDRESS = (PROTOCOL = TCP)(HOST = tiger)(PORT = 1521))<br />  )</p> <p>SID_LIST_LISTENER =<br />  (SID_LIST =<br />    (SID_DESC =<br />      (GLOBAL_DBNAME = ORCL)<br />      (ORACLE_HOME = E:\oracle\ora92)<br />      (SID_NAME = ORCL)<br />    )<br />  )</p> <p>最后回到CMD中启?br />LSNRCTL> start</p> <img src ="http://www.aygfsteel.com/0734w/aggbug/48594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/0734w/" target="_blank">sparkwu</a> 2006-05-28 15:26 <a href="http://www.aygfsteel.com/0734w/archive/2006/05/28/48594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HP-unix最基本操作http://www.aygfsteel.com/0734w/archive/2006/05/12/45793.htmlsparkwusparkwuFri, 12 May 2006 02:45:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/05/12/45793.htmlhttp://www.aygfsteel.com/0734w/comments/45793.htmlhttp://www.aygfsteel.com/0734w/archive/2006/05/12/45793.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/45793.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/45793.html2. pwd                  查看当前目录
3. ls                   查看当前文g
4. get filename.zip     从FTP中拷贝filename.zip到本?br />5. mkdir  test2         建立test2目录
6. quitQ             ?同byeQ退出ftp会话?br />7. mkdir                建立文g?br />8. rmdir dir-nameQ   ?删除目录?br />9. put local-file[remote-file]Q            ?本地文件local-file传送至q程L
10. cp /etc/passwd.txt   /etc/passwd.bak.txt   复制 (copy) 之指?br />11. cdup                                       q入q程L目录的父目录

sparkwu 2006-05-12 10:45 发表评论
]]>
hp-unix 操作命o!http://www.aygfsteel.com/0734w/archive/2006/05/11/45684.htmlsparkwusparkwuThu, 11 May 2006 09:16:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/05/11/45684.htmlhttp://www.aygfsteel.com/0734w/comments/45684.htmlhttp://www.aygfsteel.com/0734w/archive/2006/05/11/45684.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/45684.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/45684.html操作命o
1-1.处理目录
pwdQ 显C当前工作目?amp;&
cd directory_pathQ 更改目?amp;&
cdQ 更改ؓȝ?amp;&
mkdir directory_nameQ 创建目?amp;&
rmdir directory_nameQ 删除空目录&& 

1-2.处理文g
elmQ 阅读邮?amp;&
lsQ 列丑ֽ前目录下的文件和目录&&
ls -aQ 列举所有文件或目录包括隐藏Ҏ?amp;
lsfQ 列举文件ƈ? 标记目录?amp;
compress filenameQ 压~文?
uncompress filenameQ 解压羃文g
vi file_nameQ 创建或~辑文g
more file_nameQ 显C文件内容?按q 退?
head file_nameQ 显C文件的?0 ?
tail file_nameQ 显C文件的?0 ?
cp file_name file_copyQ 复制文?
mv old_file new_fileQ 将文g重命名ؓ新文件名
cat file1 >> file2Q 将file1 附加到file2 的结֤
rm fileQ 删除file&
rm -rf dir_nameQ 删除目录dir_name 及其所有文?
spell file_nameQ 在文g中检查拼?

1-3.打印
lp file_nameQ 打印文?
lpstat -tQ 确定打印机的状?
cancel request_idQ 取消打印请?

1-4.查找和组l?
find .-name 'x*'Q 在当前目录和子目录中查找以x 开头的文g
grep word *Q 在当前目录下的所有文件中查找word 一词的所有匹?
sort listfileQ 按字母序对listfile q行排序
dateQ 显C日期和旉
aliasQ 列举所有命令的别名
man command_nameQ 查找HP-UX 命o信息
echo $PATHQ 确定PATH 讄
echo $SHELLQ 确定所用的shell 

1-5.安全操作
passwdQ 创建或更改口o
ll file_nameQ 显C文件的权限
ll -d directory_nameQ 显C目录的权限
chmod class=permissions nameQ 更Ҏ件或目录权限
chown user nameQ 更Ҏ件或目录的所有权

1-6.pȝ操作
clearQ 清除屏q?
set -o editor_nameQ 设|命令行~辑?
TERM=term_typeQ 设|终端类型(?usr/lib/terminfo 中选择term_typeQ?amp;
ps -efQ 列丑ֽ前进E状态和PID&
kill PIDQ 终止进E?
passwdQ 创建或更改口o
command < infileQ 将输入从文仉定向到命?
command1 | command2Q 用管道连接两个进E?br />



sparkwu 2006-05-11 17:16 发表评论
]]>
(?Java + XML = JDOMhttp://www.aygfsteel.com/0734w/archive/2006/04/06/39650.htmlsparkwusparkwuThu, 06 Apr 2006 10:19:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/04/06/39650.htmlhttp://www.aygfsteel.com/0734w/comments/39650.htmlhttp://www.aygfsteel.com/0734w/archive/2006/04/06/39650.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/39650.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/39650.htmlq就是JDOM设计者的目标。如果你曄使用q烦人的SAX或是DOM来处理XMLQ你׃知道Z? 要有JDOM或者是JAXB。在今年Q?002Q的JavaOne会议上JDOM的主要创始hJason Hunter有一精彩的演讲介绍了JDOM技 术,题目是JDOM Makes XML Easy。?br />获得q安装JDOM 
在http://jdom.org可以下蝲JDOM的最? 版本。以JDOM beta8?q制版本Z。下载后解压~,JDOM的jar文g是build目录下的文gjdom.jarQ将之加入类路径。另? JDOMq需要lib目录下那些jar文g如xerces.jar,jaxp.jar的支持。如果在使用中出C下错误: 
java.lang.NoSuchMethodError 
或?br />java.lang.NoClassDefFoundError: org/xml/sax/SAXNotRecognizedException 
你需要保证xerces.jar文g在CLASSPATH中位于其他XMLc,如JAXP或Crimson之前Q这些类文gQ包括以前老版本的xercesQ可能不支持SAX2.0或DOM Level 2。于是导致了上面的错误。?br />
一个简单的例子 
JDOM的处理方式有些类gDOMQ但它主要是用SAX实现的,你不必担心处理速度和内存的问题。另外,JDOM中几乎没有接口,的类全部是实实在在的c,没有cd厂类的?br />
下面是实例用的XML文g:

<?xml version="1.0" encoding="GBK"?>
<书库>
<?gt;
<书名>Java~程入门</书名>
<作?gt;张三</作?gt;
<出版C?gt;电子出版C?lt;/出版C?gt;
<h>35.0</h>
<出版日期>2002-10-07</出版日期>
</?gt;
<?gt;
<书名>XML在Java中的应用</书名>
<作?gt;李四</作?gt;
<出版C?gt;希望出版C?lt;/出版C?gt;
<h>92.0</h>
<出版日期>2002-10-07</出版日期>
</?gt;
</书库>

下面是操作XML文g的Bean:
package xml;
/**
* XML的读写操作Bean
*/
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class XmlBean{
private String bookname,author,pub,price,pubdate;
public String getbookname() { return bookname;}
public String getauthor() { return author;}
public String getpub() { return pub;}
public String getprice() { return price;}
public String getpubdate() { return pubdate;}
public void setbookname(String bookname) { this.bookname =bookname ; }
public void setauthor(String author) { this.author =author; }
public void setpub(String pub) { this.pub =pub ; }
public void setprice(String price) { this.price =price ; }
public void setpubdate(String pubdate) { this.pubdate =pubdate ; }
public XmlBean(){}
/**
* dXML文g所有信?br />*/
public Vector LoadXML(String path)throws Exception{
Vector xmlVector = null;
FileInputStream fi = null;
try{
fi = new FileInputStream(path);
xmlVector = new Vector();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元?br />List books = root.getChildren(); //得到根元素所有子元素的集?br />Element book =null;
XmlBean xml =null;
for(int i=0;i<books.size();i++){
xml = new XmlBean();
book = (Element)books.get(i ); //得到W一本书元素
xml.setbookname(book.getChild("书名").getText());
xml.setauthor(book.getChild("作?).getText());
xml.setpub(book.getChild("出版C?).getText());
xml.setprice(book.getChild("h").getText());
xml.setpubdate(book.getChild("出版日期").getText());
xmlVector.add(xml);
}
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
}
catch(Exception e){
e.printStackTrace();
}
}
return xmlVector;
}
/**
* 删除XML文g指定信息
*/
public static void DelXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
int xmlid=Integer.parseInt(request.getParameter("id"));
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元?br />List books = root.getChildren(); //得到根元素所有子元素的集?br />books.remove(xmlid);//删除指定位置的子元素
String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
* dXML文g指定信息
*/
public static void AddXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元?br />List books = root.getChildren(); //得到根元素所有子元素的集?br />String bookname=request.getParameter("bookname");
String author=request.getParameter("author");
String price=request.getParameter("price");
String pub=request.getParameter("pub");
String pubdate=request.getParameter("pubdate");
Text newtext;
Element newbook= new Element("?);
Element newname= new Element("书名");
newname.setText(bookname);
newbook.addContent(newname);
Element newauthor= new Element("作?);
newauthor.setText(author);
newbook.addContent(newauthor);
Element newpub= new Element("出版C?);
newpub.setText(pub);
newbook.addContent(newpub);
Element newprice= new Element("h");
newprice.setText(price);
newbook.addContent(newprice);
Element newdate= new Element("出版日期");
newdate.setText(pubdate);
newbook.addContent(newdate);
books.add(newbook);//增加子元?br />String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 修改XML文g指定信息
*/
public static void EditXML(HttpServletRequest request)throws Exception{
FileInputStream fi = null;
FileOutputStream fo = null;
try{
String path=request.getParameter("path");
int xmlid=Integer.parseInt(request.getParameter("id"));
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); //得到根元?br />List books = root.getChildren(); //得到根元素所有子元素的集?br />Element book=(Element)books.get(xmlid);
String bookname=request.getParameter("bookname");
String author=request.getParameter("author");
String price=request.getParameter("price");
String pub=request.getParameter("pub");
String pubdate=request.getParameter("pubdate");
Text newtext;
Element newname= book.getChild("书名");
newname.setText(bookname);//修改书名为新的书?br />Element newauthor= book.getChild("作?);
newauthor.setText(author);
Element newpub= book.getChild("出版C?);
newpub.setText(pub);
Element newprice= book.getChild("h");
newprice.setText(price);
Element newdate= book.getChild("出版日期");
newdate.setText(pubdate);
//books.set(xmlid,book);//修改子元?br />String indent = " ";
boolean newLines = true;
XMLOutputter outp = new XMLOutputter(indent,newLines,"GBK");
fo=new FileOutputStream(path);
outp.output(doc,fo);
}
catch(Exception e){
System.err.println(e+"error");
}
finally{
try{
fi.close();
fo.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}

下面是操作的jsp文g:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.util.*,xml.*"%>
<html>
<head>
<title>dXML文g资料</title>
</head>
<body>
<h3 align="center">JDOM操作XML文g</h3>
<p align="center">dXML文g中的所有资?lt;/p>
<center>
<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" width="80%" id="AutoNumber1">
<tr>
<td align="center" width="92">书名</td>
<td align="center" width="92">作?lt;/td>
<td align="center" width="92">出版C?lt;/td>
<td align="center" width="92">h</td>
<td align="center" width="92">出版日期</td>
<td align="center" width="94">操作</td>
</tr>
</table>
<%
String path = application.getRealPath("/test/xml/")+"testC.xml";
XmlBean xml=new XmlBean();
Vector xmlall=xml.LoadXML(path);
for(int i=0;i<xmlall.size();i++){
xml=(XmlBean)xmlall.elementAt(i );
/**out.println("书名:"+xml.getbookname()+"<br>");
out.println("作?"+xml.getauthor()+"<br>");
out.println("出版C?"+xml.getpub()+"<br>");
out.println("h:"+xml.getprice()+"<br>");
out.println("出版日期:"+xml.getpubdate()+"<br><br>");
*/
%>
<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" width="80%" id="AutoNumber2">
<tr>
<td align="center" width="92"><%=xml.getbookname()%></td>
<td align="center" width="92"><%=xml.getauthor()%></td>
<td align="center" width="92"><%=xml.getpub()%></td>
<td align="center" width="92"><%=xml.getprice()%></td>
<td align="center" width="92"><%=xml.getpubdate()%></td>
< td align="center" width="94"><a href="xmlok.jsp?act=del&id=< %=i%>&path=<%=path%>">删除</a></td>
</tr>
</table>
<%}%>
</center>
<form method="POST" action="xmlok.jsp">
<p align="center">
<input type="radio" value="add" checked name="act">d资料 <input type="radio" value="edit" name="act">~辑资料
序 号:<select size="1" name="id">
<%for(int i=0;i<xmlall.size();i++){%>
<option value="<%=i%>">W?lt;%=i+1%>?lt;/option>
<%}%>
</select><br>
书 名:<input type="text" name="bookname" size="20"><br>
作 ?<input type="text" name="author" size="20"><br>
出版C?<input type="text" name="pub" size="20"><br>
价 格:<input type="text" name="price" size="20"><br>
日 期:<input type="text" name="pubdate" size="20"></p>
<input type="hidden" name="path" value="<%=path%>">
< p align="center"><input type="submit" value="提交" name="B1">< input type="reset" value="重置" name="B2"></p>
</form>
</body>
</html>

下面是处理上一文g提交的jsp文g:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="xml.*"%>
<%if(request.getParameter("act")!=null && request.getParameter("act").equals("add")){
XmlBean.AddXML(request);
out.println("<p align='center'><br><br>d成功<br><br><a href=''>q回</a>");
}
else if(request.getParameter("act")!=null && request.getParameter("act").equals("del")){
XmlBean.DelXML(request);
out.println("<p align='center'><br><br>删除成功<br><br><a href=''>q回</a>");
}
else if(request.getParameter("act")!=null && request.getParameter("act").equals("edit")){
XmlBean.EditXML(request);
out.println("<p align='center'><br><br>修改成功<br><br><a href=''>q回</a>");
}
else{out.print("<p align='center'><br><br>非法操作<br><br><a href=''>q回</a>");}

sparkwu 2006-04-06 18:19 发表评论
]]>
(收藏)用JDOM处理XML文档http://www.aygfsteel.com/0734w/archive/2006/04/06/39649.htmlsparkwusparkwuThu, 06 Apr 2006 10:18:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/04/06/39649.htmlhttp://www.aygfsteel.com/0734w/comments/39649.htmlhttp://www.aygfsteel.com/0734w/archive/2006/04/06/39649.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/39649.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/39649.html 用JDOM处理XML文档

 用JDOM处理XML文档(转蝲)
关键词:Java、JDOM、XML、JAXB 

Q一QJDOM的介l以及与JAXB的比较?br />
Java + XML = JDOM Q?br />q? 是JDOM设计者的目标。如果你曄使用q烦人的SAX或是DOM来处理XMLQ你׃知道Z么要有JDOM或者是JAXB。在今年Q?002Q的 JavaOne会议上JDOM的主要创始hJason Hunter有一精彩的演讲介绍了JDOM技术,题目是 JDOM Makes XML Easy。?br />在那文档里QJDOM被拿来与DOM比较Q而我更愿意拿它同JAXB比较。因为JAXB和JDOM 都是Z在Java中提供比DOM和SAX更ؓ方便的XML处理接口而开发的Qƈ且通过完全不同的途径来解册个问题。JDOM的处理方式是与DOMcM 的树操作。而JAXB通过DTD和绑定模式来生成讉KXML文档的Java代码Q将XML映射成了Java对象来操作。你可以Ҏ目的需要和个h喜好? 军_采用哪一个。?br />JDOM与JAXB的比较,从本w的特点来看Q?br />1) JDOM比JAXB更容易上手。用JAXB首先要会~写DTDQ然后还要会~写l定模式。JDOM没有q样的要求,如果你会Java和XMLQ甚臛_以说光是看JDOM的javadoc文档p够用JDOM。?br />2) JAXB~写好DTD和绑定模式以后,XML文档被映成了Java对象Q其数据是Java对象的属性,q数据类型都做好了{换,因此Q访问XML文档比JDOM要简便,可以说是一x逸。?br />3) JAXB由某个DTD和绑定模式生成的代码只能讉K该DTD所U束的文档。如果想要访问其他XML文档Q需要再~写DTD和绑定模式。JDOM可以处理MXML文档Q包括受U束的和不受U束的。?br />
? 前JDOM和JAXB都没有正式版本。JDOM的最新版本是beta8QJAXB?.0 early accessQ其规范版本?.21。相对而言Q? JDOM更成熟一些。例如JAXB不支持名字空间、不能向XML文档写入处理指oQ有时我们需要保留的换行W和首尾I格在JAXB中自动过滤掉了,p? ?lt;![CDATA[ 和 ]]>里面也不能幸免。JDOM没有这些限制。如果说以上?Ҏ较是JDOM和JAXB本n的特Ҏ军_的, 几乎不可能改变,那么q里表明QJAXBq需要更多的工作。?br />
Q二Q获得ƈ安装JDOM 
在http://jdom.org可以 下蝲JDOM的最新版本。以JDOM beta8?q制版本Z。下载后解压~,JDOM的jar文g是build目录下的文gjdom.jarQ将 之加入类路径。另外JDOMq需要lib目录下那些jar文g如xerces.jar的支持。如果在使用中出C下错误: 
java.lang.NoSuchMethodError 
或?br />java.lang.NoClassDefFoundError: org/xml/sax/SAXNotRecognizedException 
你需要保证xerces.jar文g在CLASSPATH中位于其他XMLc,如JAXP或Crimson之前Q这些类文gQ包括以前老版本的xercesQ可能不支持SAX2.0或DOM Level 2。于是导致了上面的错误。?br />
Q三Q一个简单的例子 
JDOM的处理方式有些类gDOMQ但它主要是用SAX实现的,你不必担心处理速度和内存的问题。另外,JDOM中几乎没有接口,的类全部是实实在在的c,没有cd厂类的。其最重要的一个包org.jdom中主要有以下c: 
? Attribute 
? CDATA 
? Comment 
? DocType 
? Document 
? Element 
? EntityRef 
? Namespace 
? ProcessingInstruction 
? Text 
数据输入要用到XML文档要通过org.jdom.input包,反过来需要org.jdom.output。如前面所_x看API文档p够用。?br />我们的例子读入XML文gexampleA.xmlQ加入一条处理指令,修改W一本书的h格和作者,q添加一条属性,然后写入文gexampleB.xmlQ?br />//exampleA.xml 
<?xml version="1.0" encoding="GBK"?> 
<bookList> 
   <book> 
       <name>Java~程入门</name> 
       <author>张三</author> 
       <publishDate>2002-6-6</publishDate> 
       <price>35.0</price> 
   </book> 
   <book> 
       <name>XML在Java中的应用</name> 
       <author>李四</author> 
       <publishDate>2002-9-16</publishDate> 
       <price>92.0</price> 
   </book> 
</bookList> 

 
 
---------------------------------------------------
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.io.*;
public class cute{

public static void main(String args[]){
try{

org.jdom.input.SAXBuilder sb=new org.jdom.input.SAXBuilder();
//创徏文档
org.jdom.Document    doc=sb.build(new FileInputStream("c:\\example.xml");
//加入一条处理指?br />org.jdom.ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet","href=\"bookList.html.xsl\" type=\"text/xsl\"";
//把这条处理指令,加入文档?br />doc.addContent(pi);
//获得q个文档得跟元素
org.jdom.Element el=doc.getRootElement();
//获得q个跟元素,的所有子元素
java.util.List ls=el.getChildren();
//得到W一个子元素
org.jdom.Element book=(Element)ls.get(0);
//l这个字元素d一条属?br />org.jdom.Attribute attr=new Attribute("hot","true";
book.setAttribute(attr);

//获得q个元素的子元素Q(指定Q?br />org.jdom.Element el2=book.getChild("author";
//输出q个元素的?br />System.out.println(el2.getName());
//l这个元素的值改个名?br />el2.setText("cute";

//再指定元素获得这个?br />org.jdom.Element el3=book.getChild("price";
//l这个值换个?br />el3.setText(Float.toString(50.0f));
String a="";
boolean bool=true;

org.jdom.output.XMLOutputter xml= new org.jdom.output.XMLOutputter(a,bool,"gb2312";
xml.output(doc,new FileOutputStream("c:\\cute.xml");

}catch(Exception e){
System.out.println(e.getMessage());

}



}
}


sparkwu 2006-04-06 18:18 发表评论
]]>
(?应用JDOM处理数据库到XML转换的JSP实现http://www.aygfsteel.com/0734w/archive/2006/04/06/39529.htmlsparkwusparkwuThu, 06 Apr 2006 02:18:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/04/06/39529.htmlhttp://www.aygfsteel.com/0734w/comments/39529.htmlhttp://www.aygfsteel.com/0734w/archive/2006/04/06/39529.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/39529.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/39529.html阅读全文

sparkwu 2006-04-06 10:18 发表评论
]]>
(?JDBC应用http://www.aygfsteel.com/0734w/archive/2006/03/11/34840.htmlsparkwusparkwuSat, 11 Mar 2006 09:47:00 GMThttp://www.aygfsteel.com/0734w/archive/2006/03/11/34840.htmlhttp://www.aygfsteel.com/0734w/comments/34840.htmlhttp://www.aygfsteel.com/0734w/archive/2006/03/11/34840.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/34840.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/34840.html

使用JDBCq行讉K数据库,首先要确保安装和q行了您选择的数据库Qƈ且驱动程序可用?可以?http://industry.java.sun.com/products/jdbc/drivers 下蝲 JDBC 驱动E序)
Java与数据库交互通常׃下几步组成:
     1.装入数据库驱动程?(JDBC 驱动E序?JDBC-ODBC ? ?
     2.创徏数据库的 Connection?
     3.创徏一?Statement 对象。该对象实际执行 SQL 或存储过E?
     4.创徏一?ResultSetQ然后用执行查询的结果填充(如果目标是检索或直接更新数据Q?
     5.?ResultSet 索或更新数据?

一、实例化驱动

讉K数据库,先装?JDBC 驱动E序Q然后由 DriverManager创徏与数据库相应的驱动程序的q接来确定。用Class.forName() 直接装入Q向 DriverManager 注册
CZQ?BR>public class Pricing extends Object {

   public static void main (String args[]){

       String driverName = "JData2_0.sql.$Driver";

      try {
         Class.forName(driverName);
      } catch (ClassNotFoundException e) {
         System.out.println("Error creating class: "+e.getMessage());
      }
   }
}

二、创建Connection

CZQ?BR>import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Pricing extends Object {
   public static void main (String args[]){
      String driverName = "JData2_0.sql.$Driver";
      String connectURL = 
      "jdbc:JDataConnect://127.0.0.1/pricing";
      Connection conn = null;   
      try
      {
         Class.forName(driverName);
         conn = DriverManager.getConnection(connectURL);
      } catch (ClassNotFoundException e) {
         System.out.println("Error creating class: "+e.getMessage());
      } catch (SQLException e) {
          System.out.println("Error creating connection:"+e.getMessage());
      }
      finally {
         System.out.println("Closing connections...");
         try {
            conn.close();
         } catch (SQLException e) {
            System.out.println("Can't close connection.");
         }
      }

   }
}
各种数据库用JDBCq接的方?BR>//DB2
String driverName = "com.ibm.db2.jcc.DB2Driver";
String connectURL = "jdbc:db2://localhost:5000/sample";
Class.forName(driverName);
Connection conn = DriverManager.getConnection(connectURL,”user?”password?;

//OracleQthin模式Q?BR>Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);

//SQL
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

//Sybase
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);

//MySQL
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" Connection conn= DriverManager.getConnection(url);

//ACCESS
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver(*.mdb)};DBQ="+application.getRealPath("/Data/MyDb.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

三、创?Statement 对象

Statement 对象用于?SQL 语句发送到数据库中。有三种 Statement 对象Q它们都作ؓ在给定连接上执行 SQL 语句的包容器QStatement、PreparedStatementQ它从Statement l承而来Q和 CallableStatementQ它?PreparedStatement l承而来Q。它们都专用于发送特定类型的 SQL 语句Q?Statement 对象用于执行不带参数的简单SQL 语句QPreparedStatement 对象用于执行带或不带 IN 参数的预~译 SQL 语句(当要反复执行某一特定查询ӞPreparedStatement 可能最有用)QCallableStatement 对象用于执行Ҏ据库已存储过E的调用。CallableStatement ?PreparedStatement之间的一个区别是Q除了通常创徏?ResultSet 之外QCallableStatement q可以提?OUT 参数

Statement实例:
在程序中增加
import java.sql.Statement;
在程序生成Connection对象后,利用该对象生成Statement 对象
Statement statement = null;
      try {
         statement = conn.createStatement();
      } catch (SQLException e) {
         System.out.println("SQL Error: "+e.getMessage());
      }

PreparedStatement实例
...
 statement = conn.prepareStatement("select * from test where "+ "id < ? and id > ?");
 statement.setInt(1, 5);
 statement.setInt(2, 10);
 resultset = statement.executeQuery(); 
...
CallableStatement实例

四、执行Statement

Statement 接口提供了三U执?SQL 语句的方法:executeQuery、executeUpdate 和execute。用哪一个方法由 SQL 语句所产生的内容决定?

  Ҏ executeQuery 用于产生单个l果集的语句Q例?SELECT 语句?
  Ҏ executeUpdate 用于执行 INSERT、UPDATE ?DELETE 语句以及 SQL DDLQ数据定义语aQ语句,例如 CREATE TABLE ?DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整敎ͼ指示受媄响的行数Q即更新计数Q。对?CREATE TABLE ?DROP TABLE {不操作行的语句QexecuteUpdate 的返回值Mؓ零?
  Ҏ execute 用于执行q回多个l果集、多个更新计数或二者组合的语句?BR>
CZQ?BR>import java.sql.ResultSet;
ResultSet Rs = null;
在生成Statement后执?BR>Rs = statement.executeQuery("SELECT * FROM test");

五、ResultSet

ResultSet 被创Z后,它就有一个引用数据集内相对位|的“指针”。在 ResultSet语句q回之后Q即使表为空Q,该指针正好位于第一行的“上面”。要到达实际数据的第一行,应用E序调用 next() Ҏ。该Ҏq回一?Boolean |指出在新位置处是否有行存在。如果没发现数据Q则 next() q回 false?BR>Getxxx()与wasNull()
ResultSet.getXXX Ҏ获取常见?JDBC 数据cd
寚w常大的行g用流
getBinaryStream q回只提供数据库原字节而不q行M转换的流?BR>getAsciiStream q回提供单字?ASCII 字符的流?BR>getUnicodeStream q回提供双字?Unicode 字符的流?BR>wasNull() Ҏ来确定是否有特定的数据片为空
while (resultset.next()) {
//Ҏ字段?BR>System.out.print(resultset.getString("id"));
//Ҏ索引
System.out.print(resultset.getString(2));
…?BR>}
通过ResultSetMetaDatac还可以获取元数?BR>...
import java.sql.ResultSetMetaData;
public class Pricing extends Object {
...
      Statement statement = null;
      ResultSet resultset = null;
      ResultSetMetaData resultmetadata = null;
      try {
         statement = conn.createStatement();
         resultset = statement.executeQuery("select * from products"); 
  
         //Get the ResultSet information
         resultmetadata = resultset.getMetaData();
         //Determine the number of columns in the ResultSet
         int numCols = resultmetadata.getColumnCount();
  
         while (resultset.next()) {
            for (int i=1; i <= numCols; i++) {
               //For each column index, determine the column name
               String colName = resultmetadata.getColumnName(i);
               //Get the column value
               String colVal = resultset.getString(i);
               //Output the name and value
               System.out.println(colName+"="+colVal);
            }
            //Output a line feed at the end of the row
            System.out.println(" ");
         }
...
不必关闭 ResultSetQ当产生它的 Statement 关闭、重新执行或用于从多l果序列中获取下一个结果时Q该 ResultSet 被 Statement 自动关闭?BR>



sparkwu 2006-03-11 17:47 发表评论
]]>
工作之余Q不忘记贴一些笑?/title><link>http://www.aygfsteel.com/0734w/archive/2006/02/05/29595.html</link><dc:creator>sparkwu</dc:creator><author>sparkwu</author><pubDate>Sun, 05 Feb 2006 07:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/0734w/archive/2006/02/05/29595.html</guid><wfw:comment>http://www.aygfsteel.com/0734w/comments/29595.html</wfw:comment><comments>http://www.aygfsteel.com/0734w/archive/2006/02/05/29595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/0734w/comments/commentRss/29595.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/0734w/services/trackbacks/29595.html</trackback:ping><description><![CDATA[<H4>一个MM和他h友的情话</H4> <HR> <P align=left><span id="wmqeeuq" class=content id=posttext2972685>lLGl围巄时候不知ؓ何事与LG争辩Q一气之下告诉他Q“围巾不l你l了Q?BR><BR>    “那你给谁织Q”LG瞪我?BR><BR>    “管得着Q就是捐献灾Z不给你!?BR><BR>    “捐献灾区?“LG׃q_“我一个h嫌弃你的手艺也就|了Q何必连累灾Zh民。?BR><BR>什么类?BR><BR>    和LG一L电视Q广告中一出现女LG便两眼放光:“美女~~~?BR><BR>    在他WNơ两眼放光时Q我忍不住问他:“你到底喜欢什么类型的女啊??BR><BR>    他很努力的想。我提示他:“是不是很妩媚的那种Q你不是最喜欢COCO嘛。?BR>   LG拼命点头Q“对啊对啊~~咦,不对Q我q喜Ƣ李鞍啊Q她不是妩媚型的。?BR><BR>    “那我属于什么类型啊Q?BR><BR>    “你啊……属于ؕ七八p型。?BR><BR>    “你再说一ơ试试看……?BR><BR>    “不是的Q你是属于……属于……“LG惛_十分辛苦的样子,我瞪着他?BR><BR>    “对啦~~~你是属于--MIKE喜欢型~~嘿嘿~~?BR><BR><BR><BR><BR><BR>  减肥?BR><BR><BR>    LGH然跟我_“我觉得你胖了。?BR><BR>    吓了一大蟩Q赶紧去UC一下体重,50KGQ比以前胖了1KG。恨恨地瞪了LG一|<BR><BR>    “TMDQ才两斤肉啊Q我都没感觉你居然就知道了。?BR><BR>    于是军_减肥?BR><BR>    “我要去买根l_。“我对LG宣布?BR><BR>    LG大ؓ紧张Q“宝宝不要这么想不开啊,是胖了点,不需要寻短见吧……?BR>    一脚踹了过去:“你巴不得我dQ我只是惌l_肥!?BR><BR>    “哦--“LG松了口气Q然后瞅瞅四周:“老婆你真打算跳啊,我怕你会把D塌了……?BR><BR>    恶狠狠的一口咬下去Q“死子Q我?00斤,你当我是100公斤啊!Q!Q?BR>    因ؓ~少q动l胞加上懒惰Q最l决定节食,也因Z班忙,常常忘了吃早饭,有一 天胃痛,赖在床上不肯上班?BR><BR>    LG在电话里iQ叨叨Q“老婆d院看看啊Q我是叫你运动减肥啊Q谁让你不吃饭的Q看看现在胃病都出来了,跳Ҏ把楼跛_你可以练呼啦圈啊……?BR><BR>   q死子Q到q时候了居然q在取笑我。怒从心头P“你敢嫌我胖啊!?BR><BR>    LGq在不知L的l游_“老婆l呼啦圈嘛~~~?BR><BR>    “你q嫌我胖Q!Q!Q?BR><BR>    “哦Q不嫌弃的不嫌弃的。“他l于听出我的怒气?BR><BR>    “哼Q不嫌弃q让我减肥!现在好了Q都折腾病来了,你赔你赔你赔Q!Q?BR><BR>    “好好好Q我赔!?BR><BR>    “赔什么啊Q?BR><BR>    LG想了惻I做痛下决心状Q“我׃w相许吧Q?逛街<BR><BR><BR>    LG喜欢逛街。这Ҏ一直觉得他有异于别的男孩子Q虽然他逛街看美女的旉比看衣服多?BR><BR>    和LG逛街听到他说的最多的话就是:“刚才过M个美女……“(怽口水的声韻I<BR><BR>    我通常是头也不回:“看到帅哥记得告诉我。?BR><BR>    他马上把脸凑到我眼前Q“看吧!帅哥Q?BR><BR>    我和LG都喜Ƣ逛礼品店Q喜Ƣ可爱或者奇异的玩意?BR><BR>    很多店都会把很可q猫狗猪挂在店堂上方做装饰。我通常一q店门就会和LG_“你跑这么高挂上面做什么。“然后LG׃在众多小动物中仔 l搜索,直到发现一只小猪挂在上面,回头怒视我:“明明是你!“(我都觉得奇怪,q么多小动物Q他Z么一定认为我是拿那只猪形容他呢Q)<BR><BR>    此后LG和我逛街只要看到猪造型的玩P他就会和我抢着_“这个是你。“说得比我慢了就怒目相向Q好象被我一说他真的成了那只小猪,说得比我快了得意洋z,好象我就成了那只猪?BR><BR>    一ơ我看中一只抱qQ在柜台的最上面Q我正想叫他帮我拿,却见他指着自己前面一只超可爱的小猪扑满念忉|辞:“这个是你……?BR><BR>    我扯扯他的衣服:“把上面那只抱抱熊拿q来。?BR><BR>    他把抱抱熊拿l我后又指着那只猪扑满最后确认似的跟我重复了一ơ:“这个是你!?BR><BR>    ……EQ…?*$Q^&&*$##<BR><BR><BR>  关于“猪?BR><BR><BR><BR>    我喊他小猪?BR><BR>    他颇有意见:“我哪里象猪了??BR><BR>    敲他的头Q“笨啊,只是q嘛,你要象猪谁要你啊。?BR><BR>    他若有所思的看我Q“我觉得你倒蛮象小猪的Q这么懒q么能吃q这么能睡。?BR><BR>    我恶狠狠的瞪他:“你说谁Q?Q?BR><BR>    “没有没有,不是说你……“他W容满面?BR><BR>    刚一转nQ听见他声嘀咕:“这q头Q说真话不保险啊……?BR><BR>    看杂志的时候看C调查,奛_子大都喜Ƣ喊自己的爱人“小猪“?BR><BR>    大喜Q急忙拿给他看Q“是潮流哦,原来q么多MM英雄所见略同啊。?BR><BR>    得意中…?BR><BR>    却见他不解的看我Q“你们女孩子都这么喜Ƣ做母猪Q?BR><BR>    K%…?*$Q^&&*$##<BR><BR>    他加班到很晚Q回家已是困的睁不开眹{听见我喊他猪Q他在床上开始嘀咕:“还是做猪比较幸哦Q每天可以吃了睡睡了吃,什么事都不用做。?BR><BR>    “是呀Q最后被送到屠宰场。“我拍拍他的头?BR><BR>    “那太惨了点Q“他H然睁开眼睛十分清醒的说Q“还是做U猪比较好!?BR><BR>    {我反应q来他已l睡得象只死猪…?BR><BR><BR>  p怎么说出?BR><BR><BR><BR>    “你是不是不喜欢我了Q“我问他?BR><BR>    “谁说的。“他看杂志,头也不抬?BR><BR>    “我说的Q?BR><BR>    “有什么证据??BR><BR>    “那你爱我吗Q?BR><BR>    “恩Q?BR><BR>    “恩是什么意思??BR><BR>    “L-O-V-E“(每个字母分开念)<BR><BR>    “不许说鸟语。?BR><BR>    他想了想“W-O A-I N-I“(按英语字母的发音Ql每个字母分开念)<BR><BR>    “听不懂Q?BR><BR>    没辙?BR><BR>    “爱Q?BR><BR>    “爱谁??BR><BR>    “你Q?BR><BR>    “把话说完整了!?BR><BR>    沉默…?BR><BR>    “说不说Q不说不许吃饭不许睡觉!?BR><BR>    妥协?BR><BR>    “我׃Q?BR><BR>    胜利!<BR><BR>    “这可是你自愿说的哦Q我可没g哦。?BR><BR>    K%…?*$Q^&&*$##<BR><BR><BR>  卖玫瑰的女?BR><BR><BR><BR>    和LGȝ知了酒吧。在门口被一卖花的小奛_拦住?BR><BR>    “哥哥买束玫瑰送给你的x友吧。?BR><BR>    无视?BR><BR>    女孩不屈不挠:“哥哥,买束玫瑰送给你的x友吧Q鲜花送美奛_。?BR><BR>    LG马上停下脚步四下张望Q“啊Q美奻I女呢?在哪Q?/SPAN><BR><BR>Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=<BR><BR><span id="wmqeeuq" class=content id=posttext2937234>1. 猎h打猎Q看树上有两只鸟QD枪打下一只,发现是只没毛的,正纳P另一只鸟飞下来大骂猎人:?的,老子刚哄Ҏ衣服脱光Q你把Ҏ下来了。。?BR><BR>2.农夫要杀公鸡却逮不着Q于是抓h鸡对公鸡_再不下来让你当光儿Q公鸡:你他妈以为我dQ我下去她就成寡妇了。。?BR><BR>3.一ơ军事演习中Q一颗炮弹偏dq,z֎查看的士兵发玎ͼ炮弹落在农田里,C正站着你,你衣衫破满面漆黑饱含热泪地_偷颗白菜犯得着用炮弹蘪Q?Q?BR><BR>4.京九铁\通RQ沿U市民\边观看,车上一奛_换卫生巾后扔出窗外,q面贴一市民怸Q市民拿下后_?**Q这车就是快Q飘张纸都能把E子打来!Q!<BR><BR>5.有两个造假钞的不小心造出面?5元的假钞Q两人决定拿到偏q山掉,当他们拿一?5元买?元的p葫芦后Q他们哭了,农民找了他们两张7块的(7块的!!...)<BR><BR>6.农民赉q城Q遇到无赖,无赖Q吃饭没Q农民说Q吃了。无赖:我问的是驴。农民一听,转n寚w扇两耛_Q妈的,城里有亲戚也不说一?/SPAN><BR>Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?BR><BR><span id="wmqeeuq" class=content id=posttext3016335>文革串联时期Q火车异常拥挤,某君停车将屁股伸出车窗外大ѝR启动时Q列车员作最后E视时大喊Q秃头叨雪茄烟的那小子,把脑袋羃回去Q?BR><BR>蛔虫父子在屁眼向外看,儿子问蓝色的什么,Ӟ蓝天Q儿Q那l色的呐Q父Q大地。儿Q外面的世界真美好,Z么我们要呆在屁眼里?父庄严地_因ؓq是我们的祖国!<BR><BR><BR>悬崖上一只小老鼠挥舞着短短的前爪,一ơ又一ơ蟩下去Q努力学习飞,旁边母蝙蝠看着它摔的头破血,忧心的说Q它爹,要不告诉它,它不是咱亲生的!<BR><BR>林里三只小动物在聊天,猪_现在行用昵Uͼ你后你们叫我小猪猪。小兔说Q好Q那我就叫做兔兔。小鸡一怸高兴_我还有事Q先CQ?BR><BR>有个人第一ơ在集市上卖冰棍Q不好意思叫卖,旁边有一个h正高声喊Q卖冰棍Q,他只好喊道:我也是?BR><BR>母蛤蟆ؓw避一q求她的公蛤蟆而躲q狗z里Q公蛤蟆耐心的守在洞口,不一会从狗洞d一只耗子Q公蛤蟆伤心的说Q难怪你不爱我了Q原来狗l你买貂皮了?BR><BR>拉登与萨辑֧在vҎ步,忽然有记者拍照,一见镜_拉登做了V字手形,萨达姆问Q登哥,我们胜利了吗Q拉d声曰Q胜利个屁,我是告诉国Q别怺Q就剩我们俩了啊!<BR><BR>一个士늻习爬树,忽然他从树上掉下来,军官问他Z么掉下来Q他说有两只N跑到他裤裆里MQ这我还忍了Q可是他们进M?׃把果子分了吧Q?BR><BR><BR>你蹲在v滩上拾贝壻I见一乌龟在沙坑中卵,朋友Z拍下相片Q归来你大笔一挥写道:我、王八、蛋Q?BR><BR>某学校学生趁下课十分钟出校门Q买2杯奶茶和2个芋头。眼见上N快响了,情急之下就对老板_老板我要两个奶头Q?BR><BR>老鳖调戏沌Q河蚌很生气Q张嘴咬住老鳖Q老鳖忍痛拖着沌来回爬,青蛙见了敬佩地说Q乖乖,鳖哥混大了,出入都夹着公文包了?BR><BR>一人给猴喂qQ猴L往屁眼塞一下然后再吃,那h不解问管理员Q答Q它d吃了个大桃,费好大劲才把核拉出来Q所以现在它吃什么都得先量量?BR><BR>瘸子和瞎子同骑一辆R外出。瞎子骑Q瘸子看路。突然瘸子发现前面有一条深沟,急呼Q沟沟沟Q瞎子回唱到Q噢嘞噢嘞噢?二h一h入沟中。。。?/SPAN><BR><BR></P><img src ="http://www.aygfsteel.com/0734w/aggbug/29595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/0734w/" target="_blank">sparkwu</a> 2006-02-05 15:08 <a href="http://www.aygfsteel.com/0734w/archive/2006/02/05/29595.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多对多测?/title><link>http://www.aygfsteel.com/0734w/archive/2005/10/21/16235.html</link><dc:creator>sparkwu</dc:creator><author>sparkwu</author><pubDate>Fri, 21 Oct 2005 01:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/0734w/archive/2005/10/21/16235.html</guid><wfw:comment>http://www.aygfsteel.com/0734w/comments/16235.html</wfw:comment><comments>http://www.aygfsteel.com/0734w/archive/2005/10/21/16235.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/0734w/comments/commentRss/16235.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/0734w/services/trackbacks/16235.html</trackback:ping><description><![CDATA[<P>package com.dsii.eservice.creationservice.dao.test;</P> <P>import junit.framework.TestCase;<BR>import net.sf.hibernate.HibernateException;<BR>import org.apache.commons.logging.Log;<BR>import org.apache.commons.logging.LogFactory;</P> <P>import com.dsii.eservice.creationservice.dao.ArtDAO;<BR>import com.dsii.eservice.creationservice.po.ArtPO;<BR>import com.dsii.eservice.creatorservice.po.CreatorPO;</P> <P>public class ArtDAOTests extends TestCase {</P> <P><BR> private Log log = LogFactory.getLog(ArtDAOTests.class);</P> <P> private static Integer pInsertKey1;<BR> private static Integer pInsertKey2;<BR> private static Integer pInsertKey3;<BR> private static Integer pInsertKey4;<BR> private static Integer pInsertKey5;<BR> private static Integer pInsertKey6;</P> <P> public ArtDAOTests(String arg0) {<BR>  super(arg0);<BR> }</P> <P> /*<BR>  * @see TestCase#setUp()<BR>  */<BR> protected void setUp() throws Exception {<BR>  super.setUp();<BR> }</P> <P> /*<BR>  * @see TestCase#tearDown()<BR>  */<BR> protected void tearDown() throws Exception {<BR>  super.tearDown();<BR> }</P> <P> /**<BR>  * <BR>  * <p><code>testInsertObject</code></p><BR>  * <BR>  * @authorspark 2005-8-3<BR>  * @since?.0<BR>  */<BR> public void testInsertObject() throws HibernateException {</P> <P>  log.debug("----------testInsertObject start-------------");<BR>  ArtPO artPO1 = new ArtPO();<BR>  artPO1.setArtId(new Integer(1));<BR>  artPO1.setArtTypeId(new Integer(6));<BR>  artPO1.setArtName("spark");<BR>  <BR>  ArtPO artPO2 = new ArtPO();<BR>  artPO2.setArtId(new Integer(2));<BR>  artPO2.setArtTypeId(new Integer(7));<BR>  artPO2.setArtName("spark2");<BR>  <BR>  ArtPO artPO3 = new ArtPO();<BR>  artPO3.setArtId(new Integer(3));<BR>  artPO3.setArtTypeId(new Integer(8));<BR>  artPO3.setArtName("spark3");</P> <P>  CreatorPO creatorPO1 = new CreatorPO();<BR>  creatorPO1.setArtCreatorId(new Integer(31));<BR>  CreatorPO creatorPO2 = new CreatorPO();<BR>  creatorPO2.setArtCreatorId(new Integer(32));<BR>  CreatorPO creatorPO3 = new CreatorPO();<BR>  creatorPO3.setArtCreatorId(new Integer(37));<BR>  //artPO1<BR>  artPO1.getCreatorSet().add(creatorPO1);<BR>  artPO1.getCreatorSet().add(creatorPO2);<BR>  artPO2.getCreatorSet().add(creatorPO2);<BR>  artPO2.getCreatorSet().add(creatorPO3);<BR>  artPO3.getCreatorSet().add(creatorPO1);<BR>  artPO3.getCreatorSet().add(creatorPO3);<BR>  //creatorPO1<BR>  creatorPO1.getArtSet().add(artPO1);<BR>  creatorPO1.getArtSet().add(artPO2);<BR>  creatorPO2.getArtSet().add(artPO2);<BR>  creatorPO2.getArtSet().add(artPO3);<BR>  creatorPO3.getArtSet().add(artPO1);<BR>  creatorPO3.getArtSet().add(artPO3);</P> <P>  //  artPO.setArtsize("big");<BR>  //  artPO.setArtCreatedYear("CreatedYear1");<BR>  //  artPO.setArtDrawedBird("DrawedBird1");<BR>  //  artPO.setOriginal("original1");<BR>  //  artPO.setDepostion("top");<BR>  //  artPO.setIntroduction("china1");<BR>  //  artPO.setArtFileURL("<A );<BR>  //  artPO.setModifyDate(TimeUtils.getCurrentTimestamp());<BR>    try {<BR>     log.info("----------pInsertKey1 insertObject(artPO1) start-------------");<BR>     pInsertKey1 = (Integer) ArtDAO.getInstance().insertObject(artPO1);<BR>     pInsertKey2 = (Integer) ArtDAO.getInstance().insertObject(artPO2);<BR>     pInsertKey3 = (Integer) ArtDAO.getInstance().insertObject(artPO3);<BR>     pInsertKey4 = (Integer) ArtDAO.getInstance().insertObject(creatorPO1);<BR>     pInsertKey5 = (Integer) ArtDAO.getInstance().insertObject(creatorPO2);<BR>     pInsertKey6 = (Integer) ArtDAO.getInstance().insertObject(creatorPO3);<BR>     log.debug("--------pInsertKey ==---------------" + pInsertKey1);<BR>    } catch (Exception e) {<BR>     e.printStackTrace();<BR>    }<BR> }</P> <P> /**<BR>  * <p><code>testFindByPrimeryKey</code></p><BR>  */<BR> // public void testFindByPrimeryKey() {<BR> //  log.debug("--------testFindByPrimeryKey start---------------");<BR> //<BR> //  Integer pk = pInsertKey;<BR> //  try {<BR> //   ArtPO po = (ArtPO) ArtDAO.getInstance()<BR> //     .findByPrimeryKey(new Integer(1));<BR> //   assertEquals("1", po.getArtId());<BR> //   assertEquals("inCreator", po.getCreator());<BR> //   log.debug("--------BirdsPO==---------------" + po);<BR> //  } catch (Exception e) {<BR> //   e.printStackTrace();<BR> //  }<BR> //  log.debug("--------testFindByPrimeryKey end---------------");<BR> // }</P> <P>}</P><img src ="http://www.aygfsteel.com/0734w/aggbug/16235.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/0734w/" target="_blank">sparkwu</a> 2005-10-21 09:45 <a href="http://www.aygfsteel.com/0734w/archive/2005/10/21/16235.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Blob字段http://www.aygfsteel.com/0734w/archive/2005/09/01/11790.htmlsparkwusparkwuThu, 01 Sep 2005 13:57:00 GMThttp://www.aygfsteel.com/0734w/archive/2005/09/01/11790.htmlhttp://www.aygfsteel.com/0734w/comments/11790.htmlhttp://www.aygfsteel.com/0734w/archive/2005/09/01/11790.html#Feedback0http://www.aygfsteel.com/0734w/comments/commentRss/11790.htmlhttp://www.aygfsteel.com/0734w/services/trackbacks/11790.html 从CSDN上看到的感觉挺有用的

      最q几ơ碰到这个问题,需求是一个文件或者文件流存储到Oracle数据库里Q?BR>Oracle8提供了Blob和Clob用来存储二进制大对象数据Q可是它和Java.sql.里面的Blob
不兼容,l常DBlob字段无法锁定或者操作失败,M我ȝ了一些经?BR>大家׃n
首先建立试数据?BR> drop table filelist;
 commit;
 
 CREATE TABLE SYSTEM.FILELIST (
 "FILENAME" VARCHAR2(50) NOT NULL,
 "FILESIZE" NUMBER(20)  NULL,
 "FILEBODY" BLOB  NULL, 
 PRIMARY KEY("FILENAME"), UNIQUE("FILENAME")) ;
 commit;


       试q程Q首先将盘文gd数据库,然后再读出到盘的另一个新文g里,原码如下Q?/P>


/**
* @author U南(Ryan)
* @email  guoyf@sinosoft.com.cn
* @version 2002 1 14
*/
import java.io.*;
import java.util.*;
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
import java.text.*;

public class test
{
 public static void main(String args[]) throws java.io.IOException,java.sql.SQLException
 {
  dbBean db1=new dbBean();
  /**
  *q里是我的数据联接Bean
  *大家可以用自qq接Bean
  */
  byte a[]=null;//**测试文件test.docd此字节数l?BR>  java.io.FileInputStream fin=null;
  java.io.FileOutputStream fout=null;
  oracle.jdbc.OracleResultSet ors=nullQ?/**q里rs一定要用Oracle提供?BR>  oracle.jdbc.driver.OraclePreparedStatement opst=null;//**PreparedStatement?/P>

                                                                              //Oracle提供?BR>   
  try
  {
   
   java.io.File f1=new java.io.File("c:/temp/test.doc");
   java.io.File f2=new java.io.File("c:/temp/testout.doc");//**从BLOBd的信息写

                                                                 //入该?Ӟ和源文gҎ试?BR>   fin=new java.io.FileInputStream(f1);
   fout=new java.io.FileOutputStream(f2);
   
   
   int flength=(int)f1.length();//**d文g的字节长?BR>   System.out.println("file length::"+flength);
   a=new byte[flength];
   
   int i=0;int itotal=0;
   /**文件读入字节数l?BR>   for (;itotal<flength;itotal=i+itotal )
   {
    
    i=fin.read(a,itotal,flength-itotal);
    
   }
   fin.close();
   
   System.out.println("read itotal::"+itotal);
  /**注意Oracle?BLOB一定要用EMPTY_BLOB()初始?nbsp;
  String mysql="insert into filelist (FileName,FileSize,FileBody) values (?,?,EMPTY_BLOB())";
  opst=(oracle.jdbc.driver.OraclePreparedStatement)db1.conn.prepareStatement(mysql);
         opst.setString(1,"wordtemplate");
           opst.setInt (2,flength);
         opst.executeUpdate();
         opst.clearParameters();
         /**插入其它数据后,定位BLOB字段
           mysql="select filebody from filelist where filename=?";
           opst=(oracle.jdbc.driver.OraclePreparedStatement)db1.conn.prepareStatement(mysql);
           opst.setString(1,"wordtemplate");
           ors=(oracle.jdbc.OracleResultSet)opst.executeQuery();
           if (ors.next())
           {
          
           oracle.sql.BLOB blob=ors.getBLOB(1);/**得到BLOB字段          
           int j=blob.putBytes(1,a);/**字节数l写入BLOB字段
           System.out.println("j:"+j);
                     
           db1.conn.commit();
           ors.close();
           }        
          
     System.out.println("insert into ok");
    
    byte b[]=null;/**保存从BLOBd的字?BR>    opst.clearParameters();
           mysql="select filebody from filelist where filename=?";
           opst=(oracle.jdbc.driver.OraclePreparedStatement)db1.conn.prepareStatement(mysql);
           opst.setString(1,"wordtemplate");
           ors=(oracle.jdbc.OracleResultSet)opst.executeQuery();
           if (ors.next())
           {
           oracle.sql.BLOB blob2=ors.getBLOB(1); 
          
           System.out.println("blob2 length:"+blob2.length());
           b=blob2.getBytes(1,flength);/**从BLOB取出字节数?BR>           System.out.println("b length::"+b.length);
           db1.conn.commit();
           } 
           ors.close();
           /**从BLOBd的字节写入文?BR>           fout.write(b,0,b.length);
           fout.close();  
    
     System.out.println("write itotal::"+b.length);
                
   
  }
  catch(Exception e)
  {
   System.out.println("errror :"+e.toString() );
   e.printStackTrace();
   
  }
  finally
  { /**关闭所有数据联?BR>   stmt.close();
   db1.closeConn();
  }
  

  
 }
}
    ~译q行在TomCat下调试通过?BR>    需要注意的是Blob存取的过E,一般先存入和BLOB相关的控制数据,如文件的名字Q?BR>    然后查询定位BLOB字段Q利用OracleBlob提供的方法:
    public int putBytes(long pos,byte bytes[])
    public byte[]  getBytes(long pos,byte bytes[])
    或者利?BR>    public OutputStream getBinaryOutputStream() throws SQLException
    public InputStream  getBinaryStream() throws SQLException
   因ؓ利用输入输出dq是利用到字节数l缓冲流Q所以就不D例子了?/P>

sparkwu 2005-09-01 21:57 发表评论
]]>
վ֩ģ壺 | | ̨| | | Ƥ| Т| ɽ| | ¸| ̨| | ̨| ƽ½| Ӫ| | ͼ| | | | | | | | Ϫ| °Ͷ| ׼| | ͭɽ| ƶ| ٺ| û| | | | | ¡| | | | |