完整的jdbctemplate後臺代碼

最近一直在做圖表,用的方法就是後臺的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包,下篇文章中會介紹。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章