1 22 23 package org.xquark.mapper.storage; 24 25 import java.sql.PreparedStatement ; 26 import java.sql.SQLException ; 27 28 import org.xquark.mapper.dbms.AbstractConnection; 29 import org.xquark.mapper.dbms.TableInfo; 30 import org.xquark.mapper.metadata.ExtraNode; 31 32 36 public class ExtraDataSaver extends ExtraDataPersistentNode 37 { 38 private static final String RCSRevision = "$Revision: 1.1 $"; 39 private static final String RCSName = "$Name: $"; 40 41 private boolean useStringDelimitor = false; 42 43 public ExtraDataSaver(TableInfo tableInfo) 44 { 45 super(tableInfo); 46 initStatements(); 47 } 48 49 protected void initStatements() 50 { 51 insertStmt = "INSERT INTO " + tableInfo.getName() + " VALUES (?,?,?,?,?,?,?)"; 52 } 53 54 public PreparedStatement getStatement(AbstractConnection connection) 55 throws SQLException 56 { 57 useStringDelimitor = connection.useStringDelimitor(); 58 if (pStmt == null) 60 pStmt = connection.getConnection().prepareStatement(insertStmt); 61 return pStmt; 62 } 63 64 public PreparedStatement setParameters(ExtraNode node) 65 throws SQLException 66 { 67 try 68 { 69 pStmt.setLong(1, node.anchor); 70 pStmt.setShort(2, node.rowNum); 71 pStmt.setShort(3, node.path); 72 pStmt.setShort(4, node.type); 73 pStmt.setShort(5, node.position); 74 pStmt.setInt(6, node.offset); 75 pStmt.setString(7, useStringDelimitor?node.data + STRING_DELIMITOR:node.data); 76 } 77 catch (SQLException e) 78 { 79 pStmt.close(); 80 pStmt = null; 81 throw e; 82 } 83 return pStmt; 84 } 85 } 86 | Popular Tags |