dbunit

2013-01-16 11 views
9

के लिए आयात/निर्यात xml हम कैसे आसानी से आयात/निर्यात डेटाबेस डेटा कर सकते हैं जो dbunit निम्नलिखित प्रारूप में ले सकता है?dbunit

<dataset> 
    <tablea cola="" colb="" /> 
    <tableb colc="" cold="" /> 
</dataset> 

मैं अपने यूनिट परीक्षण के लिए डेटाबेस से मौजूदा डेटा निर्यात करने का एक तरीका ढूंढना चाहता हूं।

+0

आपने अभी तक क्या प्रयास किया है? क्या आपने dbunit.org पर प्रलेखन पढ़ा है? –

+0

मैं इसे मैन्युअल रूप से करता हूं या postgresql क्लाइंट का उपयोग करता हूं। बस सोच रहा है कि कोई बेहतर तरीका है या नहीं। @MarkRobinson – blue123

उत्तर

14

ब्लू, यह आपको आपके इच्छित प्रारूप में अपना डेटा निर्यात करने देगा।

public class DatabaseExportSample { 
    public static void main(String[] args) throws Exception { 
     // database connection 
     Class driverClass = Class.forName("org.hsqldb.jdbcDriver"); 
     Connection jdbcConnection = DriverManager.getConnection(
       "jdbc:hsqldb:sample", "sa", ""); 
     IDatabaseConnection connection = new DatabaseConnection(jdbcConnection); 

     // partial database export 
     QueryDataSet partialDataSet = new QueryDataSet(connection); 
     partialDataSet.addTable("FOO", "SELECT * FROM TABLE WHERE COL='VALUE'"); 
     partialDataSet.addTable("BAR"); 
     FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial.xml")); 

     // full database export 
     IDataSet fullDataSet = connection.createDataSet(); 
     FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml")); 

     // dependent tables database export: export table X and all tables that 
     // have a PK which is a FK on X, in the right order for insertion 
     String[] depTableNames = 
      TablesDependencyHelper.getAllDependentTables(connection, "X"); 
     IDataSet depDataSet = connection.createDataSet(depTableNames); 
     FlatXmlDataSet.write(depDataSet, new FileOutputStream("dependents.xml")); 
    } 
} 
+2

@ blue123, वह स्निपेट एफएक्यू से है, जिसमें अन्य जानकारी है जो आपको उपयोगी मिल सकती है: http://www.dbunit.org/faq.html#extract – Paul

+0

इस कॉपी-पेस्ट स्निपेट में वही त्रुटि है एफएक्यू – naXa

+0

उपरोक्त यूआरएल टूटा हुआ है। इसका उपयोग करें: http://dbunit.sourceforge.net/faq.html#extract –

6

निर्यात का पहले से ही उत्तर दिया गया है। उत्तर को पूरा करने के लिए, इस प्रकार आप आयात कर सकते हैं डेटाबेस में अपना डेटासेट। connectionIDatabaseConnection प्रकार का है। मार्क रॉबिन्सन द्वारा पिछले उत्तर (निर्यात का), डेटाबेस कनेक्शन बनाने का तरीका शामिल है।

FlatXmlDataSet dataSet = new FlatXmlDataSet(new FlatXmlProducer(new InputSource(new FileInputStream("dataset.xml")))); 
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet); 
+2

पहली पंक्ति बस 'FlatXmlDataSet डेटासेट = नई FlatXmlDataSet (नई फ़ाइल ("dataset.xml"), सत्य हो सकती है; 'या' FlatXmlDataSet डेटासेट = नया FlatXmlDataSetBuilder()। बिल्ड (नई फ़ाइल ("dataset.xml")); ' –

संबंधित मुद्दे