WEB开发网
开发学院数据库DB2 为 DB2 XML 数据开发 Java 应用程序 阅读

为 DB2 XML 数据开发 Java 应用程序

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 如 清单 4 所示,修订后的 INSERT 语句在为 XML 数据指定参数标志符之前调用 XMLValidate 函数,为 DB2 XML 数据开发 Java 应用程序(7),该函数也需要您指定将用于验证的 XML 模式标识符,在这里,本例中为了简单起见,xml 变量定义中的 XML 文档已经进

如 清单 4 所示,修订后的 INSERT 语句在为 XML 数据指定参数标志符之前调用 XMLValidate 函数。该函数也需要您指定将用于验证的 XML 模式标识符。在这里,引用的是前面注册的一个叫做 "user1.mysample" 的模式。


清单 4. 从文件插入 XML 数据时进行验证

String query = "INSERT INTO clients (id, name, status contactinfo) " + 
  "VALUES (?, ?, ?, xmlvalidate(? according to xmlschema id user1.mysample))"; 

如果您的 XML 输入文件包含根据指定模式来说有效的数据,那么 DB2 就会插入行。否则,整个语句失败,不会插入该行的数据。

插入字符串时不进行验证

清单 5 中所示的 insertString() 方法展示了如何将分配给字符串变量的格式良好的 XML 文档插入 DB2 中。逻辑与前一例子中从文件插入数据时的逻辑没有太大的不同。不是使用您的准备语句的 setBinaryStream() 方法,而是使用 setString() 方法。本例中为了简单起见,xml 变量定义中的 XML 文档已经进行了硬编码。

注意:转义字符(反斜杠)包含在是 XML 文档一部分的引号之前(比如下面例子中的 XML 版本号)。


清单 5. 从字符串插入 XML 数据

public static void insertString(){ 
 try { 
  // for simplicity, I've defined variables with input data 
  int id = 1885; 
  String name = "Amy Liu"; 
  String status = "Silver"; 
  String xml = 
   "<?xml version=\"1.0\"?>" + 
   "<Client>" + 
   "<Address> " + 
    "<street>54 Moorpark Ave.</street>" + 
    "<city>San Jose</city>" + 
    "<state>CA</state>" + 
    "<zip>95110</zip>" + 
   "</Address>" + 
   "<phone>" + 
    "<work>4084630110</work>" + 
    "<home>4081114444</home>" + 
    "<cell>4082223333</cell>" + 
   "</phone>" + 
   "<fax>4087776688</fax>" + 
   "<email>sailer555@yahoo.com</email>" + 
   "</Client>"; 
 
  // get a connection 
  Connection conn = Conn.getConn(); 
 
  //  define string that will insert file without validation 
  String query = 
 "insert into clients (id, name, status, contactinfo) values (?, ?, ? ,?)"; 
 
  // prepare the statement 
  PreparedStatement insertStmt = conn.prepareStatement(query); 
  insertStmt.setInt(1, id); 
  insertStmt.setString(2, name); 
  insertStmt.setString(3, status); 
  insertStmt.setString(4, xml); 
 
  // execute the statement 
  if (insertStmt.executeUpdate() != 1) { 
    System.out.println("No record inserted."); 
  } 
  . . . 
  conn.close(); 
 } 
 catch (Exception e) { . . . } 
} 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:DB XML 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接