
You need an XADataSource if you want to execute a Distributed Transaction. You need a Distributed Transaction if you have a transaction with 2 or more different (not equal) DataSources.
You can use all the features of your driver. If you have a JDBC 2.0 driver then you can use the JDBC 2.0 API without Distributed Transactions. That is to say the connection was created with the DriverManager. This is a part of the JDBC 1 API. Therefore, you can also use a JDBC 1 driver with this configuration.