I am apologize. I forget jdbcClient.java
package restletdatasourcespackage;
import org.antlr.stringtemplate.StringTemplate;
import org.json.JSONException;
import org.json.JSONObject;
import org.restlet.Client;
import org.restlet.data.Preference;
import org.restlet.data.Request;
import org.restlet.data.Response;
import java.io.File;
import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import org.restlet.data.MediaType;
import org.restlet.data.Protocol;
import org.restlet.representation.ObjectRepresentation;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import restletconfigurationpackage.Configuration;
import restletutilitiespackage.IOClass;
import restletutilitiespackage.Service;
import org.restlet.ext.jdbc.JdbcClientHelper;
import org.restlet.ext.jdbc.JdbcResult;
import org.restlet.ext.jdbc.RowSetRepresentation;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sql.rowset.WebRowSet;
/**
* <b>To access to a database</b>
* <p>
* Provides methods to open, request and close a database connection <br />
* DatabaseConnection object is characterized by the following information:
* <ul>
* <li>A Connection object</li>
* <li>A Statement object</li>
* <li>A boolean to know if the connection is started or not</li>
* <li>An JdbcClientConfiguration object to provide information about "how to
* connect"</li>
* </ul>
* </p>
*/
public class JdbcClient {
private JdbcClientConfiguration jdbcConfiguration;
private Configuration configuration;
private IOClass ioClass;
// private Configuration configuration;
/**
* Constructor JdbcClient
* <p>
* Creates a new DatabaseConnection object with the specified
Configuration
* object
* </p>
*
*/
public JdbcClient(Configuration configuration) {
this.configuration = configuration;
ioClass = new IOClass(configuration);
}
/**
* Creates and sends the query using pool connection
*
* @param query
* the SQL query
* @return the result of the request
* @throws JSONException
*/
public ResultSet performRequest(Service service, String query) {
StringTemplate queryTemplate = new StringTemplate(ioClass
.loadFile(new
File(configuration.getUrlXMLTemplateQuery())));
jdbcConfiguration = service.getJdbcClientConfiguration();
// Makes the SQL query
queryTemplate.setAttribute("user", jdbcConfiguration.getUser());
queryTemplate.setAttribute("password",
jdbcConfiguration.getPassword());
queryTemplate.setAttribute("query", query);
ResultSet result=null;
Client client = new Client(Protocol.JDBC);
JdbcClientHelper helper = new JdbcClientHelper(client);
try {
Class.forName(jdbcConfiguration.getDriver());
} catch (ClassNotFoundException e) {
Logger.getLogger(JdbcClient.class.getName()).log(Level.SEVERE,
"ERROR: Can not find the driver", e);
}
Representation req = new
StringRepresentation(queryTemplate.toString()
, MediaType.TEXT_XML);
Request request=JdbcClientHelper.create(jdbcConfiguration.getURL(),
req);
request.getClientInfo().getAcceptedMediaTypes()
.add(new Preference(MediaType.TEXT_PLAIN));
Response response = new Response(request);
helper.handle(request, response);
//RowSetRepresentation output =
// (RowSetRepresentation)response.getEntity();
/*RowSetRepresentation output =
(RowSetRepresentation)response.getEntity();
try {
JdbcResult jdbcResult =
(JdbcResult)output.getJdbcResult();
result = jdbcResult.getResultSet();
} catch (SQLException e) {
e.printStackTrace();
}
*/
Connection con=null;
try {
con = DriverManager.getConnection(
jdbcConfiguration.getURL(),
jdbcConfiguration.getUser(),
jdbcConfiguration.getPassword());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PreparedStatement stmt =null;
//Statement stmt=null;
try {
stmt = con.prepareStatement(query);
//con.prepareStatement (query);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
//stmt.execute();
//result=stmt.getResultSet();
result=stmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*Response response = new Response(request);
helper.handle(request, response)*/
// response.setEntity(req);
// WebRowSet rowSet= ((RowSetRepresentation)
response.getEntity())
//.getWebRowSet();
/*RowSetRepresentation rset = new
RowSetRepresentation(rowSet);
//rowSet.setType(WebRowSet.TYPE_SCROLL_SENSITIVE);
//} catch(Exception e) {
/* Logger
.getLogger(JdbcClient.class.getName())
.log(
Level.SEVERE,
"ERROR: Can not cast
the result from WebRowSet to ResultSet",e);
}*/
//}
return result;
}
}