You need to retrieve the results on the server side (gs code), put them in an array for example and return to client side. Check this example
Code.gs
function doGet(){
return HtmlService.createTemplateFromFile('datatable').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function getSql(){
var conn = Jdbc.getConnection('jdbc:mysql://sql4.freesqldatabase.com:3306/sql427377', 'sql427377', '');
var stmt = conn.createStatement();
var results = stmt.executeQuery("select name, location, address, phone, fax from person");
Logger.log(results);
var resultsArray = [];
while(results.next()) {
resultsArray.push({'name': results.getString(1),
'location' : results.getString(2),
'address' : results.getString(3),
'phone' : results.getString(4),
'fax' : results.getString(5)});
}
return JSON.stringify(resultsArray);
}
datatable
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type='text/javascript'>
$(function(){
var runner = google.script.run.withFailureHandler(onFailure);
runner.withSuccessHandler(onSuccess).getSql();
});
function onSuccess(data){
var data = JSON.parse(data);
for(var x in data) {
$("#myTable").append("<tr><td>"+data[x].name+"</td><td>"+data[x].location+"</td> <td>"+data[x].address+"</td><td>"+data[x].phone+"</td><td>"+data[x].fax+"</td></tr>");
}
}
function onFailure(data){
alert(data);
}
</script>
<table id="myTable"></table>