OA系统----考勤管理----JDBC,Ajax
1.考勤管理-簽到-前臺代碼實現
(1)jQuery代碼,頁面初始化綁定事件,怎么實現?
$(function(){$("#signin").click(function(){ } })2.考勤管理-簽到-全部功能實現
(1)簡述簽到功能的邏輯?
對簽到按鈕綁定單擊事件,我們點擊按鈕時,向servlet發送簽到請求,servlet將我調用服務層根據id進行調用Dao層簽到方法,Dao層訪問數據庫,首先調用查詢方法,查看是否已經簽到,然后在決定接下來是否進行存入一些簽到信息,,然后返回不同的值,代表簽到成功,失敗,已經簽過。
(2)ajax實現的步驟?
<script type="text/javascript">$(function(){//簽到$("#signin").click(function(){//發送ajax請求/* $.ajax({url:"servlet/SignInOut?method=signIn",type:"POST",dataType:"text",success:function(data){ //0 1 2//顯示簽到的結果if(data==0){$("#result").html("簽到失敗");}else if(data ==1){$("#result").html("簽到成功");}else {$("#result").html("已經簽到,不能重復簽到");}}}); */3.簽退-全部功能實現
(1)簡述簽退邏輯。
對簽退按鈕綁定單擊事件,我們點擊按鈕時,向servlet發送簽到請求,servlet將我調用服務層的簽退方法,在服務層先調用查詢方法,根據返回值判斷是否簽退,如果沒有查到就提示尚未簽退,然后進行數據更新簽退時間,最后返回簽退失敗,簽退成功。
4.通過Ajax獲取查詢條件之部門列表
(1)進入考勤管理頁面之后,如何加載所屬部門下拉列表?
//發送ajax請求,獲取部門$.ajax({url:"servlet/SignInOutServlet?method=selAllDept",type:"POST",success:function(jsonStr){eval("var depts="+jsonStr);var str="<option value='0'>--全部--</option>";for (var i = 0; i < depts.length; i++) {str+='<option value="'+depts[i].deptno+'">'+depts[i].deptName+'</option>';}//寫入到列表中$("#deptno").html(str);}});(2)點擊查詢后,顯示所有簽到信息,如何利用ajax實現,簡述過程?
當我們點擊查詢時,向服務器發送ajax請求,servlet處理請求,調用服務層查詢簽到信息的方法,服務層再調用Dao層查詢方法,訪問數據庫,返回list集合,在調用gson將集合轉為json格式的數據返回,ajax對數據遍歷,拼接,顯示在頁面。
5.考勤管理-使用Ajax查詢考勤信息
(1)按照條件查詢,可以有兩種方式,第一種:點擊查詢按鈕之后,請求后臺servlet,然后從servlet中跳轉到考勤管理頁面,還有一種方式:利用ajax查詢,請問這兩種方式哪一種比較好?優點是什么呢?
Ajax比較好,當我們調用第一種方法時,因為是覆蓋頁面式,所以我們還要返回進行查詢的條件的記憶功能,而ajax方法只是局部刷新,這樣便可以省卻我們記憶功能 的實現,相對而言,我覺得ajax比較簡單,邏輯簡單,代碼量少
6.使用Ajax查詢考勤信息2
(1)如何拼接考勤信息列表字符串?
success:function(data){//將其轉為json對象eval("var list="+data);//字符串的拼接var str="";for (var i = 0; i < list.length; i++) {str+='<tr>'+'<td>'+'<input name="" type="checkbox" value="" />'+'</td>'+'<td>'+list[i].empId+'</td>'+'<td>'+list[i].emp.realName+'</td>'+'<td>'+list[i].emp.dept.deptName+'</td>'+'<td>'+list[i].dtDate+'</td>'+'<td>'+list[i].signinDate+'</td>'+'<td>'+list[i].signoutDate+'</td>'+'</tr>';}//將其加到tbody中$("#data").html(str);}7.考勤管理-使用Ajax查詢考勤信息3
(1)如何在后臺sql中進行條件的拼接?
//創建SQL命令
StringBuilder sql=new StringBuilder(“select dt.*,e.realname,d.deptname,”
+ “d.deptno,e.empid from duty dt "
+ “join employee e on dt.emprid=e.empid”
+ " join dept d on e.deptno=d.deptno where 1=1”);
if (empId!=null & !"".equals(empId)) {
sql.append(“and dt.emprid=’”+empId+"’");
}
if (deptno!=0) {
sql.append(“and d.deptno=”+deptno);
}
if (dtDate!=null) {
DateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);
String sdtDate = sdf.format(dtDate);
sql.append(“and dt.dtDate=”+sdtDate);
}
8.考勤管理-使用POI導出考勤數據到xls1
(1)POI干嘛的?
POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能
(2)POI和JXL的區別?
1、jxl
優點:
Jxl對中文支持非常好,操作簡單,方法看名知意。
Jxl是純javaAPI,在跨平臺上表現的非常完美,代碼可以再windows或者 Linux上運行而無需重新編寫,支持Excel 95-2000的所有版本(網上說目前可以 支持Excel2007了,還沒有嘗試過)生成Excel 2000標準格式支持字體、數字、 日期操作能夠修飾單元格屬性支持圖像和圖表,但是這套API對圖形和圖表的支持 很有限,而且僅僅識別PNG格式。
缺點:效率低,圖片支持不完善,對格式的支持不如POI強大
2、POI
優點:
效率高支持公式,宏,一些企業應用上會非常實用能夠修飾單元格屬性支持 字體、數字、日期操作
缺點:不成熟,代碼不能跨平臺,貌似不少同行在使用工程中還碰到讓人郁悶 的BUG(最近的項目中也是遇到了一些bug,不過目前沒有查出來是代碼的問題還 是POI的問題,總之問題很詭異,數據替代參數總有失敗的。關于不能跨平臺這 一說,我也沒有試驗過,不過Java不是跨平臺嗎?POI是JAVA的一個組件,怎么 就不能跨平臺了呢,總之這些問題還需要在以后的項目中多多實踐,才能比較出 區別之處。)
9.考勤管理-使用POI導出考勤數據到xls2
(1)如何使用POI,簡述步驟?
1、導入jar包,
編寫java類,新建一個實體類,比如我們要導出數據庫的學生的信息,那么就建一個Student實體類。
新建一個寫入excel的方法。
創建操作Excel的HSSFWorkbook對象
創建HSSFSheet對象
創建第一行標題信息的HSSFRow對象
創建標題行中的HSSFCell數組
創建標題數據,并通過HSSFCell對象的setCellValue()方法對每個單元格進行賦值
(2)如何將后臺查到的考勤數據,弄到前臺客戶端下載為excel,代碼如何實現呢?
通過后臺查詢的考勤數據,調用導出表的方法,把查出來的數據按照給定的語法格式寫到Excel表里。然后再響應下載。
(3)簡述給出的OperateExcelUtil.java的功能含義?
導出poi工具類,通過查詢信息傳過來的參數信息,由此工具類接收,根據給定的語法信息,進行excel表的操作,然后進行響應輸出到客戶端下載此表。
10.報銷管理-理解數據庫表和創建實體類
(1)簡述系統中表之間的關系:
報銷單審核表–>報銷單表,報銷單表–>保險單明細表,報銷單表–>支出表。
11.報銷管理-添加報銷單-視圖層
(1)在完成視圖層操作中,有哪些注意事項?
報銷人、審核人自動獲取、不需要輸入
? 報銷時間、報銷總額自動計算和獲取
? 報銷單明細類型采用靜態類型,可以增加報銷單明細類型表
(2)在頁面中,如何利用jQuery完成添加報銷項操作?
var content = $('<tr>'+'<td><div class="vocation"><select class="select1" name="type">'+'<option value="1">通信費用</option><option value="2">辦公室耗材</option><option value="3">住宿費用</option><option value="4">房租水電</option><option value="5">其他</option>'+'</select></div></td>'+'<td><input name="amount" type="text" class="dfinput" /><i></i></td>'+'<td><input name="itemDesc" type="text" class="dfinput" /><i></i></td>'+'<td><input type="button" class="btn" value="刪除" onclick="removeCurrItem(this)"/></td></tr>');在頁面中,如何利用jQuery完成添加圖片操作?
function addPhoto(){ //獲取上傳圖片li var li = KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#?uploadphoto"); …(" "+ “”); //加入到指定位置 li.append(content); }
12.報銷管理-添加報銷單-控制層
(1)頁面中假如添加了多個報銷項,那么在控制層接收數據的思路是什么呢?怎么接收數據呢?
把同一字段放到同一數組里,然后把把他們放到集合里。
(2)為什么在數據庫中有狀態碼字段,這個字段的作用是什么?缺少這個字段可以嗎?
為下面審核報銷單做準備,不可以缺少,因為不知道狀態就無法審核
這部分是用JDBC實現的,其實和MyBatis是差不多,只是把JDBC的Dao層換成MyBatis中的Mapper層,MyBatis實現的更簡單一點而已。
總結
以上是生活随笔為你收集整理的OA系统----考勤管理----JDBC,Ajax的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遥控车Turbo与Boost技术详细解读
- 下一篇: Keil虚拟仿真逻辑仪及SaleaeLo