??xml version="1.0" encoding="utf-8" standalone="yes"?>
1。windows下安装postgresqlQ最好在安装前先建立“limit”权限的用户postgresQ当Ӟ看见报错的时候再加也来的及呀Q?br>
2。在fedora 4 下安装,要么用rpm安装低版本的postgresqlQ要么用source逐步安装最新版本的。用rpm比较单,不说了;
如果安装sourceQ不要到|上到处扑ָ助,直接在postgresql的网站上扑ֈ权威文档pQ?a >http://www.postgresql.org/docs/8.2/static/installation.html?我觉得很实用。按照它的步骤做下来Qok?其是,注意看里?4.2中关于requirments的说明,?font face="Courier New">configure?/font>记得使用--without-readline optionQ否则会出错的?br>
出处Qhihi的网?/font>http://home.fego.cn/loading.html?aspxerrorpath=/members/hihi/m_Article/Detail.aspx
|
|
|
pstmt.setLong(1, 123456789); pstmt.setLong(2, 100000000); |
pstmt.setString(1, "Hi"); for (int i = 0; i < 10; i++) { pstmt.setInt(2, i); int rowCount = pstmt.executeUpdate(); } |
pstmt.setShort(2, 44); |
DOM适合于当今流行的各种语言Q包括Java,JavaScripte,VB,VBScriptQPerl,C,C++{。它了ؓHTML和XML文档提供了一个可应用于不同^台的~程接口。W3C DOM的最C息可从http://www.w3.org/TR2001/WD-DOM-Lever-3-Core-20010913查阅。微软在http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmconxmldomuserguide.asp上也有DOM的详l技术信息?/p>
DOM的设计ؓ了适用于不同的语言Q它保留了不同语a中非常相似的API。但是它q不适合于Java~程者的习惯。而JDOM作ؓ一U轻量API被制定,它最核心的要求是以JavaZ心,只适合于Java语言Q它遵@DOM的接口主要规则,除去了DOM中ؓ了兼容各语言而与Java习惯的不同?/p>
二、用JDOM的前提条?br /> 要有SAX、DOM解析器的cLӞJDOM只是一U适合JavaE序员来使用的Java XML解析器,目前行的Java XML解析器还有:Apache Xerces Java、JAXP?br />Xerces Java解析器是完全用Java~写的XML解析器,最新版本是2.5Q它支持以下标准和APIQ?br />Q?Q?XML1.0规范Q第二版本)
Q?Q?XML命名I间规范
Q?Q?DOM2核心标准规范
Q?Q?SAX2核心扩展
Q?Q?JAXP1.2 Q是Sun提供的用Java处理XML的接口API?br />Q?Q?XML Schemal构和数据类型标?/p>
q有最好的是它开放源代码Q我们可以在http://xml.apache.org/dist/xerces-j/ 处去下蝲。下载文件Xerces-J-bin.2.5.0.zip?br />解压下蝲文gQ得到四个压~包加到目的\径中Q其实不要全加,但不熟的情况下考虑q么做)?br />JDOM的二q制版本下蝲Qhttp://www.jdom.org/downloads/index.html
把解压后的jdom.jar文g加到目的类路径中,另外便于调试Q还要下载它的源代码?/p>
三、用JDOM解析XML
好了Q现在该是正题了。下面通过一个简单的例子说明一下怎么用JDOMq一适合JavaE序员习惯的工具包来解析XML文档?br />Z单,我用了如下XML作ؓ要解析的XML文gQ?br /><?xml version="1.0" encoding="gb2312"?>
<books>
<book email="zhoujunhui">
<name>rjzjh</name>
<price>60.0</price>
</book>
</books>
够简单的吧,但它对于我们兛_的东襉K有了Q子节点Q属性?br />下面是用于解析这个XML文g的Java文gQ?br />
1 public class JDomParse { 2 public JDomParse(){ 3 String xmlpath="library.xml"; 4 SAXBuilder builder=new SAXBuilder(false); 5 try { 6 Document doc=builder.build(xmlpath); 7 Element books=doc.getRootElement(); 8 List booklist=books.getChildren("book"); 9 for (Iterator iter = booklist.iterator(); iter.hasNext();) { 10 Element book = (Element) iter.next(); 11 String email=book.getAttributeValue("email"); 12 System.out.println(email); 13 String name=book.getChildTextTrim("name"); 14 System.out.println(name); 15 book.getChild("name").setText("alterrjzjh"); 16 17 } 18 19 XMLOutputter outputter=new XMLOutputter(); 20 outputter.output(doc,new FileOutputStream(xmlpath)); 21 22 } catch (JDOMException e) { 23 e.printStackTrace(); 24 } catch (IOException e) { 25 e.printStackTrace(); 26 } 27 } 28 public static void main(String[] args) { 29 new JDomParse(); 30 } 31}不到30行代码,现在我对代码解释一下:
首先要了解java默认的序列化行ؓQjava一切关于对象的信息都保存了下了Q也是_有些时候那些不需要保存的也被保存了下来。一般情况下Q我们仅仅需要保存逻辑数据可以了。不需要保存的数据我们可以用关键字transient标出?br />
例如Q?br />
import java.io.*;
public class Serial implements Serializable {
int company_id;
String company_addr;
transient boolean company_flag;
}
其中的company_flag字段不会参与序列化与反序列化,但同时也增加了ؓ它初始值的责Q。这也是序列化常常导致的问题之一。因为序列化相当于一个只接受数据的public构造函敎ͼq种对象构造方法是语言之外的。但他仍然是一UŞ式上的构造函数。如若你的类不能够通过其他斚w来保证初始化Q则你需要额外的提供readObjectҎQ首先正常的反序列化Q然后对transient标示的字D进行初始化?
在不适合的时候,使用java默认的序列化行ؓ可能会带来速度上的影响Q最p糕的情冉|Q可能导致溢出。在某些数据l构的实CQ经怼充斥着各种的@环引用,而java的默认序列化行ؓQƈ不了解你的对象结构,其结果就是java试图通过一U昂늚“图遍历”来保存对象状态。可惌知Q不但慢而且可能溢出。这时候你p提供自己的readObjectQ来代替默认的行为?
note: http://developer.51cto.com/art/200601/20017.htm
2、在conf/catalina/localhost下找C“项目名.xml”文ӞE序名是webapps目录下的目文g夹名U。在此文件中?<context> 标记之间d以下资源链接Q?
<ResourceLink name="jdbc/blue" type="javax.sql.DataSource" global="jdbc/blue"/>
注意Q一定要加在q个文g中,而不是在目文g多w的web.xml中。至我q样做时l果不对?br />
3?接下来就是测试了。测试程序很重要Q尽量用单的了。以下是我的试E序Q?br />
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*,javax.sql.DataSource,javax.naming.*"%>
<html>
<head><title>test.jsp</title></head>
<body bgcolor="#ffffff">
<%
Context initCtx=new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/blue");
try
{
out.println("test! <br>");
Connection conn=ds.getConnection();
out.println("data from database:<br>");
Statement stmt=conn.createStatement();
ResultSet rs =stmt.executeQuery("select * from dept");
while(rs.next())
{
out.println(rs.getString(1));
out.println(rs.getString(2));
}
rs.close();
stmt.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</body>
</html>
Good Luck!