好久没有更新文章了,废话不多说,先直接上效果图
这次是要用jquery+java仿照一个google日历的功能,从数据库中读取任务显示在画面上,可以直接新建任务,或者编辑删除任务
在Eclipse中新建一个web project 。这次我们采用struct+spring+hibernate框架,实现起来可能有些难度。这里就不一一解释了
一)UI层处理
1)页面样式
2)导入jquery库和json2库文件
3)画面代码如下,可以看代码注释
<%@ page contentType="text/html; charset=utf-8" language="java" %> <%@ taglib prefix="s" uri="/struts-tags" %>
日程表 日程表
加载数据中...
二)业务层
定义下列变量及其属性,用于记录单条任务的信息
private int singleId;
private String singleTask;
private Date singleBuildDate;
定义下列变量及其属性,用于记录多条任务的信息
private List id;
//任务内容
private List task;
//任务日期
private List buildDate;
定义变量month及其属性,用于记录当前的月份和年份
三)dao层,对数据库中任务表的增删改查,部分代码如下(scheduleModel是数据库中任务表对应的实体类)
/** * 获取目标月份任务信息 * @param month 月份 * @return */ public List getTasks(String month) { DateFormat df =new SimpleDateFormat("yyyy-MM"); String a = null; try { a = df.format(df.parse(String.valueOf(month))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return localDb.find("from scheduleModel where CONVERT(varchar(100),buildDate, 23) like '"+a+"%' order by id asc"); } public List all() { return localDb.find("from scheduleModel"); } /** * 添加新任务 并获取新任务的任务编号 * @param newsch * @return */ public int addTask(scheduleModel newsch) { int newId = -1; //用于保存新任务编号 Session session = this.localSessionFactory.getCurrentSession(); try { session.save("db.scheduleModel", newsch); String hql = "select max(id) from scheduleModel "; Query query = session.createQuery(hql); List lst = query.list(); if (lst.size()>0) { newId = (Integer) lst.get(0); //获取新id } } catch (Exception e) { e.printStackTrace(); } return newId; } /** * 删除任务 * @param taskId * @return */ public Boolean delTask(int taskId) { Session session = this.localSessionFactory.getCurrentSession(); try { String hql = " delete from scheduleModel where id=:tid"; Query query = session.createQuery(hql); query.setInteger("tid", taskId); int flag=query.executeUpdate(); if(flag>0) { return true; } return false; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 更新任务 * @param newsch * @return */ public Boolean updateTask(scheduleModel newsch) { Session session = this.localSessionFactory.getCurrentSession(); try { //localDb.update("scheduleModel", newsch); String hql = " update scheduleModel set task=:task where id=:tid"; Query query = session.createQuery(hql); query.setInteger("tid", newsch.getId()); query.setString("task", newsch.getTask()); int flag=query.executeUpdate(); if(flag>0) return true; else return false; } catch (Exception e) { e.printStackTrace(); return false; } }