Extjs學習筆記——web開發之查詢(連庫操作)

由於剛接觸extjs,所以我還是將所有的增刪改查操作全部做完纔來寫這些博客,來鞏固自己的知識,也分享給大家我的一些見解以及項目中的源碼。
先從查詢開始主要步驟:
前端js:包括
1.定義moodel;
2創建store;
3.創建grid表格;
查詢的話前端只需要這三個步驟就可以完成了
後端主要包括:
1.pojo 實體類
2.dao 方法類
3.servlet 類
數據庫我採用的是mysql

首先是前端代碼,由於我拿eclipse寫的所以前端的界面也是jsp 的格式

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css"
	href="extjs6/build/classic/theme-crisp/resources/theme-crisp-all.css" />
<link rel="stylesheet" type="text/css"
	href="extjs6/build/classic/theme-crisp/resources/theme-crisp-all-debug.css" />
<script src="extjs6/build/ext-all.js"></script>
<script src="extjs6/build/ext-debug.js"></script>
<script src="extjs6/build/classic/locale/locale-zh_CN.js"></script>
<script src="extjs6/ext-bootstrap.js"></script>
<script type="text/javascript " src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
Ext.onReady(function () {
	var data;
    //1.定義Model
    Ext.define("MyApp.model.User", {
        extend: "Ext.data.Model",
        fields: [                                 //這裏主要是定義一些格式與後端的實體類中一致便好
            { name: 'id', type: 'int' },
            { name: 'name', type: 'string' },
            { name: 'email', type: 'string' },
            { name: 'sex', type: 'string' },
            { name: 'bornDate', type: 'string' },
        ]
    });

    //對後端發送請求以及來接收查詢請求所返回的數據
    
     $.ajax({
		url : "${pageContext.request.contextPath}/StudentServlet?method=select",
		async : false,                       //將ajax的異步改爲同步就可以將 局部變量保存下來 
		success : function(res) {
			for ( var p in res) {            
				data=res;
			}
		}
	});
    //2.創建store
    var store = Ext.create("Ext.data.Store", {
        model: "MyApp.model.User",
        data:data
    });
    
    //3.創建grid
    var viewport = Ext.create("Ext.container.Viewport", {
        layout: "fit",            //採用fit佈局
        items: {
            xtype: "grid",                  //表格格式
            model: "MyApp.model.User",
            store: store,
            columns: [                            
                { text: '姓名', dataIndex: 'name' },
                { text: '性別', dataIndex: 'sex' },
                { text: 'email', dataIndex: 'email',width:150 },  //這裏我對郵箱的寬度進行了設置  日期格式也是columns中的屬性
                { text: '出生日期', dataIndex: 'bornDate', xtype: 'datecolumn', format:'Y年m月d日',width:200},
                ],
                }
    });
    
});  
</script>
</head>
<body>

</body>
</html>

接着是後端的代碼我貼出關鍵的部分,其他實體類與數據的表數據有需要的評論就好!
servlet類

/**
	 * @param request
	 * @param response
	 * @return 查詢全部的學生
	 * @throws Exception
	 */
	public String select(HttpServletRequest request,HttpServletResponse response) throws Exception {
		System.out.println("查詢全部學生");
		List<Student> list=new StudentDao().selectA();
		ObjectMapper mapper=new ObjectMapper();
		String json=mapper.writeValueAsString(list);
		response.setContentType("application/json;charset=UTF-8");
		response.getWriter().println(json);
		return null;
	}

dao方法
由於博主將連接方法進行封裝了所以這裏就直接調用了

private static QueryRunner  qr=new QueryRunner();
private static Connection connection=null;

  /**
     * @return
     *   查詢所有信息
     */
    public List<Student> selectA(){
    	String sql="select *from student ";
    	List<Student> list=new ArrayList<Student>();
    	connection=  JdbcUtil.getConnection();
    	try {
    		list=qr.query(connection, sql, new BeanListHandler<Student>(Student.class));
    	} catch (SQLException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally {
    		JdbcUtil.closeConnection(connection);
    	}
    	return list;
    }

總結:主要就是這些,由於博主採用了反射,所以url的地址直接通過方法名來訪問了,有需要反射類的可以評論就好,查詢相對於其他操作來說還是相對簡單的,只要將data 的值修改爲後端傳過來的數據庫的值便好,注意使用ajax 時記得修改ajax的異步爲同步,要不然ajax的局部變量無法賦值給全局變量來使用。

發佈了40 篇原創文章 · 獲贊 6 · 訪問量 4793
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章