1. getHibernateTemplate().getSessionFactory().createSQLQuery(insersql).executeUpdate() 直接写 sql 语句进行数据存储。
2. getHibernateTemplate().find(hql); 进行查询
public List findAll() throws Exception { log.debug("finding all User instances"); try { String queryString = "from User"; Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); Query query = session.createSQLQuery("select distinct(workid) workid from work"); List<BigInteger> list = query.list(); String deletesql = "delete from overwork"; System.out.println(deletesql); session.createSQLQuery(deletesql).executeUpdate(); for (BigInteger workid : list){ List<Object> list_time = new ArrayList<Object>(); StringBuffer buffer = new StringBuffer(); list_time.add(workid); buffer.append(workid + ","); for (int i = 1; i < 29; i++){ String day = "2013/02/" + i; String startime = " 16:45:00"; String quer = "from Work where workid = " + workid + " and (worktime between '"+ day + startime + "' and '"+ day +" 23:59:00')"; List<Work> list_1 = getHibernateTemplate().find(quer); //(List<Work>)session.createSQLQuery().list(); if (list_1.size() > 0){ Timestamp total_over = list_1.get(0).getWorktime(); for (Work work : list_1){ if (work.getWorktime().compareTo(total_over) > -1){ total_over = work.getWorktime(); } } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// String end = df.format(total_over); String day1 = String.valueOf(i); if (day1.length() < 2){ day1 = "0" + day1; } String begin = "2013-02-" + i + startime; System.out.println("--------begin: "+ begin + " end:" + end); String time = getTimeSpace(begin, end); list_time.add(time); buffer.append(" '" + time + "',"); } else { list_time.add("''"); buffer.append(" '',"); } } buffer.append("'',"); buffer.append("'',"); buffer.append("'',"); String bufferstr = buffer.toString(); bufferstr = bufferstr.substring(0, bufferstr.length() - 1); String insersql = "insert into overwork values (" + bufferstr + ")"; System.out.println(insersql); session.createSQLQuery(insersql).executeUpdate(); } System.out.println(list.size()); return getHibernateTemplate().find(queryString); } catch (RuntimeException re) { re.printStackTrace(); log.error("find all failed", re); throw re; } }