Command xsql


xsql queries a a relational database using jdbc


xsql [ serialization options ] [options]


-cp,-classpath path Specifies an additional classpath to use to load the jdbc driver
-d,-driver class Specifies the jdbc driver classname
-u,-user user Username
-p,-password password Password
-root root Root element for generated xml
-row rowRow element name for generated xml
-attrUse attribute normal form instead of element normal form for column data
-c,-connect stringConnect string for jdbc connections
-q querySQL query to run
-o,-option name=valueSpecifiy additional connection options, may be repeated (-o opt1=value1 -o opt2=value2)
-insertPerform an insert operation instead of a select
-update,-executePerform an Update or Execute instead of select
-table tableThe table to use for insert, otherwise the root element name is used
-tableAttr attrUse the argument ("attr") to indicate which table to insert/update otherwise the element name is used as the table name
-fieldAttr attrUse the argumet ("fieldAttr") to indicate which attribute specifies the field names otherwise the element name is used as the field name
-fetch rowsSets the JDBC Statement fetch size
-fetchmin Equivalent to -fetch Integer.MIN_VALUE which is useful for MySQL to stream results
-pool,-pooldriver driverConnection pool driver classname. Alternative to -driver
-jdbc,-jdbcconnection connectionSpecify a java.sql.Connection object to use for the connection
-cacheMaintain a thread local cache of the driver and connection until -close is supplied
-closeAfter the operation release any cached connection and unregister the driver. (implies -release)
-releaseAfter the operation release the connection
-batch nWith -cache, executes all pending cached statements every 'n' rows. Used with -insert and -update

Supports the standard [ serialization options ]


xsql connects to a database using the java jdbc interface, executes an sql statement and returns the result as an xml document. The xml document is formatted similarly to csv2xml.

Example using the mysql JDBC connector

xsql -cp mysql-connector-java-5.1.7-bin.jar -c jdbc:mysql:// -u xmlsh -p password -d  -q 'select * from books'

Example using the csvjdbc driver from
xsql -cp csvjdbc.jar -d org.relique.jdbc.csv.CsvDriver -c "jdbc:relique:csv:$PWD" "select * from books"

Added suppressHeaders option
xsql -cp csvjdbc.jar -d org.relique.jdbc.csv.CsvDriver  -o suppressHeaders=true -c "jdbc:relique:csv:$PWD" "select * from books"

Oracle Example using ojdbc14.jar with failover
xsql -cp ojdbc14.jar -driver oracle.jdbc.OracleDriver \
	 -connect "jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(" \
	 -user myuser -password mypass \
	 -q "SELECT * from TABLE" > drugs.xml

Create an SQLIte database
xsql -cp $CP -c jdbc:sqlite:sqlite.db -d org.sqlite.JDBC -execute 'CREATE table test (TITLE , AUTHOR , PUBLISHER , `PUB-DATE` , LANGUAGE, PRICE , QUANTITY , ISBN , PAGES , DIMENSIONS , WEIGHT  )' > /dev/null

Add data to a databae
document {
	<TITLE>Pride and Prejudice</TITLE>
	<AUTHOR>Jane Austen</AUTHOR>
	<TITLE>Wuthering Heights</TITLE>
	<AUTHOR>Charlotte Bront</AUTHOR>
	<PUBLISHER>Penguin Classics</PUBLISHER>

xsql -cp $CP -c jdbc:sqlite:sqlite.db -d org.sqlite.JDBC -insert <{_TEST} > /dev/null

Return Value

Returns 0 if the command executed successfully, 1 if there was an error.


There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki