新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Java, J2SE, J2ME, J2EE, 以及Eclipse, NetBeans, JBuilder等Java开发环境,还有JSP, JavaServlet, JavaBean, EJB以及struts, hibernate, spring, webwork2, Java 3D, JOGL等相关技术。
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Java/Eclipse 』 → help ! it is about JDOM 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4186 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: help ! it is about JDOM 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     jackeyzeng 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:15
      积分:140
      注册:2003/10/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jackeyzeng发送一个短消息 把jackeyzeng加入好友 查看jackeyzeng的个人资料 搜索jackeyzeng在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jackeyzeng的博客楼主
    发贴心情 help ! it is about JDOM

    我在编译这个文件时候出错,请教高手指点。
    C:\dev\b2b2c>javac CartBean.java
    CartBean.java:234: cannot find symbol
    symbol  : method setTrimText(boolean)
    location: class org.jdom.output.XMLOutputter
    outputter.setTrimText(true);
             ^
    Note: CartBean.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: CartBean.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    1 error

    源程序:

    package b2b2c;
    import java.util.Hashtable;
    import java.util.Vector;
    import java.util.Enumeration;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.jdom.output.XMLOutputter;
    import java.io.*;
    import java.net.*;
    import java.sql.*;
    import java.lang.System;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class CartBean {
    Hashtable params=new Hashtable();
    Vector items = new Vector();
    private static final String DEFAULT_SAX_DRIVER_CLASS ="org.apache.xerces.parsers.SAXParser";
    private String saxDriverClass;
    private SAXBuilder builder;
    private Document doc;
    private Element root;  

    // 輸出訂單到這個文件
    private String xmldoc = "/xml/order.xml";
    private String orderNo;
    //... JDBC ....
    private Connection con;
    private PreparedStatement pstmt_update_stock_qty;
    private PreparedStatement pstmt_select_stock_qty;
    private PreparedStatement pstmt_insert_order;
    private PreparedStatement pstmt_insert_orderitem;
    //-----------------------------------
    public CartBean() { System.out.println("start CartBean."); }
    /* // for debug
    public static void main(String args[]) {
    CatalogBean catalog = new CatalogBean();
    CartBean cart = new CartBean();
    catalog.startParse();
    cart.addItem( catalog.getItem(1) );
    cart.addItem( catalog.getItem(2) );
    cart.toXML();
    }
    */
    // 處理網頁傳遞的參數, 存到Hashtable中
    public void processRequest(HttpServletRequest req) {
    Enumeration en = req.getParameterNames();
    while (en.hasMoreElements()) {
    String varName = (String)en.nextElement();  
    String[] varValues = req.getParameterValues(varName);
    if (varValues.length > 1) {
    params.put(varName, varValues);
    }
    else {
    params.put(varName, varValues[0]);
    System.out.println("req:"+varName+"="+varValues[0]);
    }
    }
    }
    public String getParam(String key) {
    return (String)params.get(key);
    }
    public void setParam(String key, String value) {
    if (params.containsKey(key))
    params.put(key, value);
    else
    System.out.println("no such key:"+key+" in param Hashtable");
    }
    public String[] getParamArr(String key) {
    return (String[])params.get(key);
    }
    //...............................................
    //.... 起始CartBean的準備工作
    public void init() {
    // 清除Cart資訊
    items.clear();
    }
    // 加入有輸入購買數量的項目到購物車
    public void addItems(Vector items) {
    // items為商品目錄的所有項目  

    String qtyParamValue;
    //int qty;
    Item item;
    for (int i=0; i<items.size(); i++) {
    qtyParamValue = getParam("qty_"+ new Integer(i).toString() );
    if (qtyParamValue!=null && !qtyParamValue.equals(""))
    {
    item= (Item)items.get(i);
    item.setQty(qtyParamValue); // String
    addItem(item);
    }
    }
    }
    // 加入項目到購物車Vector
    public void addItem(Item item) {
    items.add(item);
    // modify warehouse database stock table
    if (con == null) {
    createConnection();
    }
    modifyStock(item.getId(), Integer.parseInt(item.getQty()));
    System.out.println("item:"+item.getItemname());
    }
    // 取得購物車內的所有項目
    public Vector getItems() {
    return items;
    }
    // 取得購物車內的單一項目
    public Item getItem(int index) {
    return (Item)items.get(index);  

    }
    // 取得購物車內的項目數
    public int getCartSize() {
    return items.size();
    }
    // 取得訂單編號
    public String getOrderno() {
    return orderNo;
    }
    //.... JDBC ......
    // 修改庫存資料庫
    public void modifyStock(String id, int qty) {
    try {
    int oldQty = 0;
    pstmt_select_stock_qty.setString(1, id);
    ResultSet rs = pstmt_select_stock_qty.executeQuery();
    if (rs.next()) {
    oldQty = rs.getInt(1);
    System.out.println("old QTY="+oldQty);
    }
    int newQty = oldQty - qty;
    pstmt_update_stock_qty.setInt(1, newQty);
    pstmt_update_stock_qty.setString(2, id);
    pstmt_update_stock_qty.executeUpdate();
    rs.close();
    } catch (SQLException ex) {
    System.out.println(ex.toString());
    }
    catch (Exception ex) {
    System.out.println(ex.toString());
    }
    }
    // 修改訂單資料庫
    public void modifyOrder(String name, String address)  

    {
    try {
    pstmt_insert_order.setString(1, name);
    pstmt_insert_order.setString(2, address);
    pstmt_insert_order.setString(3, orderNo);
    pstmt_insert_order.executeUpdate();
    }
    catch (SQLException ex) {
    System.out.println(ex.toString());
    }
    catch (Exception ex) {
    System.out.println(ex.toString());
    }
    }
    // 修改訂單項目資料庫
    public void modifyOrderItem(Item item)
    {
    try {
    pstmt_insert_orderitem.setString(1, item.getId());
    pstmt_insert_orderitem.setInt(2,
    Integer.parseInt(item.getQty()));
    pstmt_insert_orderitem.setString(3, orderNo);
    pstmt_insert_orderitem.executeUpdate();
    }
    catch (SQLException ex) {
    System.out.println(ex.toString());
    }
    catch (Exception ex) {
    System.out.println(ex.toString());
    }
    }  

    // 建立資料庫連結及prepared statement
    public void createConnection() {
    try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    }
    catch (Exception E) {
    System.err.println("Unable to load driver.");
    E.printStackTrace();
    }
    try {
    con = DriverManager.getConnection("jdbc:mysql://localhost/warehouse?user=growbal&password=javaxml");
    pstmt_update_stock_qty = con.prepareStatement("update stock set qty=? where id=?");
    pstmt_select_stock_qty = con.prepareStatement("select qty from stock where id=?");
    pstmt_insert_order = con.prepareStatement("insert into customorder (name, address, orderno) values (?,?,?)");
    pstmt_insert_orderitem = con.prepareStatement("insert into customorderitem (id, qty, orderno) values (?,?,?)");
    }
    catch (SQLException ex) {
    System.out.println(ex.toString());
    }
    catch (Exception ex) {
    System.out.println(ex.toString());  

    }
    }
    // 輸出訂單XML到檔案/xml/order.xml, 並關閉資料庫
    public void close()
    throws IOException, JDOMException {
    doc.setRootElement(root);
    startOutputXML(new FileOutputStream(xmldoc));
    //.... close database .....
    try {
    pstmt_update_stock_qty.close();
    pstmt_select_stock_qty.close();
    con.close();
    }
    catch (SQLException ex) {
    System.out.println(ex.toString());
    }
    catch (Exception ex) {
    System.out.println(ex.toString());
    }
    }
    private void startOutputXML(OutputStream out)
    throws IOException, JDOMException {
    // Create an outputter with default formatting
    XMLOutputter outputter = getXMLOutputter();
    outputter.output(doc, out);
    }
    private XMLOutputter getXMLOutputter()
    throws IOException, JDOMException {
    // Create an outputter with certain encoding
    XMLOutputter outputter = new XMLOutputter(" ", true, "Big5");
    outputter.setTrimText(true);
    outputter.setExpandEmptyElements(true);
    return outputter;  

    }
    // 增加項目到XML文件
    private void addToXML(Item item) {
    // add one element to XML file
    Element curItem = new Element("item");
    Element curItemname = new Element("itemname");
    curItemname.addContent(item.getItemname());
    Element curId = new Element("id");
    curId.addContent(item.getId());
    Element curQty = new Element("qty");
    curQty.addContent(item.getQty());
    curItem.addContent(curItemname);
    curItem.addContent(curId);
    curItem.addContent(curQty);
    root.addContent(curItem);
    }

    // 輸出訂單到XML文件, 並修改資料庫
    public void toXML(String name, String address) {
    this.saxDriverClass = DEFAULT_SAX_DRIVER_CLASS;
    builder = new SAXBuilder(saxDriverClass);
    Item item;

    // build new XML doc
    root = new Element("order");
    doc = new Document(root);

    // add timestamp as order's serial number
    Element elemOrderNo = new Element("orderno");
    orderNo = String.valueOf( java.lang.System.currentTimeMillis() );
    elemOrderNo.addContent( orderNo );
    root.addContent(elemOrderNo);

    //System.out.println("add elements to root");
    for (int i=0; i<getCartSize(); i++) {  

    item = (Item)getItem(i);
    System.out.println("add one item: "+item.getItemname());

    // save to XML file
    addToXML(item);

    // modify customorderitem table
    modifyOrderItem(item);
    }

    //..... modify customorder table
    modifyOrder(name, address);

    //System.out.println("add ok!");
    try {
    close();
    }
    catch (JDOMException e) {
    System.out.println(e.toString());
    }
    catch (IOException e) {
    System.out.println(e.toString());
    }
    }
    }  


    classpath设置如下:

    .;c:\jdk1.5.0\lib;c:\jdk1.5.0\lib\tools.jar;c:\jdk1.5.0\lib\dt.jar;
    c:\jdk1.5.0\jre\lib\dt.jar;C:\dev\sax2\sax2.jar;
    C:\jdom-b9\build\jdom.jar;
    C:\dev\soap-2_3_1\lib\soap.jar;C:\dev\xerces-1_2_0\xerces.jar;
    C:\dev\xerces-1_2_0\xercesSamples.jar;C:\Tomcat 5.0\common\lib\servlet-api.jar;
    C:\Tomcat 5.0\bin;C:\dev\xt\sax.jar;C:\dev\xt\xt.jar;
    C:\dev\jaxp parser\Jaxp1.0.1\parser.jar


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/2 20:29:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Java/Eclipse 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/2/2 4:16:51

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    61.523ms