detailpagexmlbean.java

来自「java数据库编程源码」· Java 代码 · 共 79 行

JAVA
79
字号
package JavaDatabaseBible.ch15;

import java.io.*;
import java.sql.*;
import javax.sql.*;

public class DetailPageXMLBean{
  protected static String dbUserName = "sa";
  protected static String dbPassword = "dba";
  protected String xmlHeader = "<?xml version=\"1.0\"?>";
  
  protected int id;
  
  public DetailPageXMLBean(){
  }
  public void setId(int id){
    this.id=id;
  }
  public String getXmlString(){
    String xml = new String(getVehicleData());
    return xml.trim();
  }
  public byte[] getVehicleData(){
    String rootTag = "VehicleData";
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try {
		  Class.forName("com.inet.pool.PoolDriver");
      com.inet.tds.TdsDataSource tds = new com.inet.tds.TdsDataSource();
      tds.setServerName( "JUPITER" );
      tds.setDatabaseName( "VEHICLES" );
      tds.setUser( dbUserName );
      tds.setPassword( dbPassword );

      DataSource ds = tds;
		  Connection con = ds.getConnection(dbUserName,dbPassword);
      
      Statement stmt = con.createStatement();
      
      CallableStatement cs = con.prepareCall("{call GET_DETAIL_PAGE (?)}");
      
      cs.setInt(1,id);
      ResultSet rs = cs.executeQuery();
      ResultSetMetaData md = rs.getMetaData();
      
      os.write(xmlHeader.getBytes());
      os.write(("<"+rootTag+">").getBytes());
      
      String xml = "";
      int columns = md.getColumnCount();
      rs.next();
      for(int i=1;i<=columns;i++){
        if(md.getColumnType(i)==Types.VARCHAR){
          xml="<"+md.getColumnLabel(i)+">"+rs.getString(i)+"</"+md.getColumnLabel(i)+">";
          os.write(xml.getBytes());
        }else if(md.getColumnType(i)==Types.INTEGER){
          xml="<"+md.getColumnLabel(i)+">"+rs.getInt(i)+"</"+md.getColumnLabel(i)+">";
          os.write(xml.getBytes());
        }
      }
      os.write(("</"+rootTag+">").getBytes());
    }catch(Exception e){
      e.printStackTrace();
    }
    return os.toByteArray();
  }
  public static void main(String args[]){
    File f = new File("Detail.xml");
    int id = 1000;
    DetailPageXMLBean xmlBean = new DetailPageXMLBean();
    xmlBean.setId(id);
    try {
      FileOutputStream fos = new FileOutputStream(f);
      fos.write(xmlBean.getVehicleData());
    }catch(Exception e){
      e.printStackTrace();
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?