JDBC 模板和 AngularJS 以及 RESTful 网络应用程序
JDBC Template and AngularJS with RESTful web application
我正在尝试使用来自 MS SQL 数据库的数据填充 HTML table。我已经为 sql 服务器设置了我的 app.properties 并在我的 .java 文件中声明了我的 jdbcTemplate。我是 AngularJS 和 jdbcTemplate 的新手。有人可以提供一些示例代码或为我指明正确的方向吗?
提前致谢!!
table.html
<h2>Industry Maintenance SIC Table</h2>
<div ng-controller="tableController">
<p>Click <a ng-click="loadObjects()">here</a> to load data.</p>
<!-- table -->
<table class="table table-bordered table-hover table-condensed">
<tr style="font-weight: bold">
<td style="width:40%">SIC Code</td>
<td style="width:50%">SIC Code Description</td>
</tr>
<tr ng-repeat="object in objects">
<td>{{object.code}}</td>
<td>{{object.description}}</td>
</tr>
</table>
</div>
table.controller.js
(function () {
'use strict';
angular.module('support-dash.pi.table').controller('tableController', tableController);
function tableController($scope, $http){
$scope.objects = [];
$scope.loadObjects = function(){
***DONT KNOW WHAT TO PUT HERE
}
};
})();
HelloResource.java
package supportdash.api;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@Path("hello")
public class HelloResource {
@GET
public String retrieve() {
return "Hello";
}
@Autowired
JdbcTemplate jdbcTemplate;
}
让我们从 Sprin 开始吧。你想要一个 RESTful api 所以示例控制器应该是这样的:
@Controller
@RequestMapping("/hello")
public class ShowController {
@Autowired
private YourRepository yr;
@RequestMapping(value = "/getObjects", method = RequestMethod.GET)
public List<Object> home(Model model) {
List<Object> objects = yr.getObjects();
return objects;
}
}
现在,如果您使用服务并在您的控制器@Autowired 中使用类似 YourService 的服务会更好,您可以在其中调用存储库并对您的数据执行各种逻辑数据库。但是让我们尽可能简单。
现在 YourRepository
应该是这样的:
public interface YourRepository{
public List<Object> getObjects();
}
当然还有我们接口的实现:
@Repository
public class YourRepositoryJdbc implements YourRepository{
@Autowired
private NamedParameterJdbcTemplate jdbcTmpl;
public List<Object> getObjects(){
StringBuilder sql = new StringBuilder();
sql.append("SELECT ob.id, ob.name ");
sql.append("FROM objects ob ");
sql.append("WHERE ob.del_flag = 0 ");
List<Object> allObjects = jdbcTmpl.query(sql.toString(), new ResultSetExtractor<List<Object>>(){
@Override
public List<Object> extractData(ResultSet rs) throws SQLException, DataAccessException {
while(rs.next()) {
Object local = new Object();
local.setId(rs.getIng("id"));
local.setName(rs.getString("name"));
allObjects.add(local);
}
return allObjects;
}
}
}
现在,如果您的 SQL 中有一个名为 OBJECTS 的 table,这将起作用。此外,当您转到浏览器并编写 http://localhost:8080/hello/getObjects 时,您应该使用 Objects.
获得一个 JSON 对象
现在您可以从客户端使用 Ajax 请求来调用 REST 服务:
var getAllObjects = function() {
var request = $http({
url: 'http://localhost:8080/hello/getObjects',
method: 'GET',
params: {
}
});
return request.then(function (data) {
return data;
}, function (error) {
return error;
});
}
$scope.loadObjects = getAllObjects();
它应该看起来像这样。
我正在尝试使用来自 MS SQL 数据库的数据填充 HTML table。我已经为 sql 服务器设置了我的 app.properties 并在我的 .java 文件中声明了我的 jdbcTemplate。我是 AngularJS 和 jdbcTemplate 的新手。有人可以提供一些示例代码或为我指明正确的方向吗?
提前致谢!!
table.html
<h2>Industry Maintenance SIC Table</h2>
<div ng-controller="tableController">
<p>Click <a ng-click="loadObjects()">here</a> to load data.</p>
<!-- table -->
<table class="table table-bordered table-hover table-condensed">
<tr style="font-weight: bold">
<td style="width:40%">SIC Code</td>
<td style="width:50%">SIC Code Description</td>
</tr>
<tr ng-repeat="object in objects">
<td>{{object.code}}</td>
<td>{{object.description}}</td>
</tr>
</table>
</div>
table.controller.js
(function () {
'use strict';
angular.module('support-dash.pi.table').controller('tableController', tableController);
function tableController($scope, $http){
$scope.objects = [];
$scope.loadObjects = function(){
***DONT KNOW WHAT TO PUT HERE
}
};
})();
HelloResource.java
package supportdash.api;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@Path("hello")
public class HelloResource {
@GET
public String retrieve() {
return "Hello";
}
@Autowired
JdbcTemplate jdbcTemplate;
}
让我们从 Sprin 开始吧。你想要一个 RESTful api 所以示例控制器应该是这样的:
@Controller
@RequestMapping("/hello")
public class ShowController {
@Autowired
private YourRepository yr;
@RequestMapping(value = "/getObjects", method = RequestMethod.GET)
public List<Object> home(Model model) {
List<Object> objects = yr.getObjects();
return objects;
}
}
现在,如果您使用服务并在您的控制器@Autowired 中使用类似 YourService 的服务会更好,您可以在其中调用存储库并对您的数据执行各种逻辑数据库。但是让我们尽可能简单。
现在 YourRepository
应该是这样的:
public interface YourRepository{
public List<Object> getObjects();
}
当然还有我们接口的实现:
@Repository
public class YourRepositoryJdbc implements YourRepository{
@Autowired
private NamedParameterJdbcTemplate jdbcTmpl;
public List<Object> getObjects(){
StringBuilder sql = new StringBuilder();
sql.append("SELECT ob.id, ob.name ");
sql.append("FROM objects ob ");
sql.append("WHERE ob.del_flag = 0 ");
List<Object> allObjects = jdbcTmpl.query(sql.toString(), new ResultSetExtractor<List<Object>>(){
@Override
public List<Object> extractData(ResultSet rs) throws SQLException, DataAccessException {
while(rs.next()) {
Object local = new Object();
local.setId(rs.getIng("id"));
local.setName(rs.getString("name"));
allObjects.add(local);
}
return allObjects;
}
}
}
现在,如果您的 SQL 中有一个名为 OBJECTS 的 table,这将起作用。此外,当您转到浏览器并编写 http://localhost:8080/hello/getObjects 时,您应该使用 Objects.
获得一个 JSON 对象现在您可以从客户端使用 Ajax 请求来调用 REST 服务:
var getAllObjects = function() {
var request = $http({
url: 'http://localhost:8080/hello/getObjects',
method: 'GET',
params: {
}
});
return request.then(function (data) {
return data;
}, function (error) {
return error;
});
}
$scope.loadObjects = getAllObjects();
它应该看起来像这样。