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;
}
}