最近一直在做圖表,用的方法就是後臺的jdbctemplate取數據的方法。
方便快捷,易懂。但是侷限性在於,數據庫改變的時候,會影響整體功能。
但是對於後續修改bug等提供了方便。這部分對oracle數據庫的sql語句要求比較高
不多說,測試代碼如下:
ajax代碼:
$.ajax({
type: "POST",
url: "ajax方法名",
dataType: "json",
data: {
name:$("#name").val()//參數假設是name
},
success: function (data) {
//執行成功後的方法
successFunction(data)
}
});
調用後臺的result數據:
function successFunction(data) {
data = eval(data["result"]);
var data1 = new Array(data.length);
var data2 = new Array(data.length);
for (var i = 0; i < data.length; i++) {
data1[i] = data[i]["A"];//sql語句獲取的直接調用的字段
data2[i] = data[i]["B"];
}
//....此處省略
//直接調用上面的data1和data2,適用於圖表模塊
controller層:TestController.java
@Controller
public class TestController {
private Logger logger = LoggerFactory.getLogger(TestController.class);
@Autowired
private TestService testService;
@RequestMapping(value = "ajax方法名")
@ResponseBody
public Map<String, Object> getTestList(HttpServletRequest request,Model model) {
String name = request.getParameter("name");
Map<String, Object> retMap = new HashMap<>();
try {
List list = testService.getTestList(name);//調用方法,參數爲name,並且爲非必要條件
retMap.put("result", list);
return MessageUtil.buildResponseMap(true, retMap);
} catch (Exception e) {
logger.error(e.getMessage(), e);
return MessageUtil.buildResponseMap(false, MessageUtil.buildSystemErrorMessage(e), retMap);
}
}
}
service層:TestService.java
public interface TestService {
public List getTestList(String name);
}
serviceImplent層:TestServiceImpl.java (重要的部分,此部分包括sql語句,並且必須保證sql語句的正確性)
@Override
public List getTestList(String name) {
String sql_list =
"正確的sql語句";
//如果需要參數的值的時候,sql語句加上下面的片段
if (name.length() > 0) {
sql_list += " AND name like '%" + name + "%' ";
}
List list = jdbcTemplate.queryForList(sql_list);
return list;
}
}
model類:Test.java(必須對應數據庫的所有字段)
@Entity
@Table(name = "數據庫表名")
public class Test {
//必須指定,不管數據庫是否有主鍵
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private String id;
//字段1
@Column(name = "NAME")
private String name;
//get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
簡單易懂,代碼小白也能看懂的代碼,對於數據庫的相關配置,以及需要導入的jar包,下篇文章中會介紹。