最近一直在做图表,用的方法就是后台的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包,下篇文章中会介绍。