JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层
2016-03-25 17:30
881 查看
1.
2.
3.
4.
5.
6.
package com.sanqing.dao; import java.util.List; import com.sanqing.po.Student; public interface StudentDAO { public Student findByStudentID(String studentID);//查询方法,根据学生ID查询 public void updateStudent(Student student);//更新学生信息 public List<Student> findByStudentName(String studentName);//根据学生姓名查找学生 public List<Student> findByStudentClass(String sclass);//根据班级查找学生 }
2.
package com.sanqing.dao; import java.util.Iterator; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.sanqing.hibernate.HibernateSessionFactory; import com.sanqing.po.Student; import com.sanqing.po.Subject; public class StudentDAOImpl implements StudentDAO{ public Student findByStudentID(String studentID) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Student student = (Student) session.get(Student.class, studentID); HibernateSessionFactory.closeSession();//关闭Session对象 return student; } public void updateStudent(Student student) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Transaction transaction = null;//声明一个事务对象 try{ transaction = session.beginTransaction();//开启事务 session.update(student);//更新学生信息 transaction.commit();//提交事务 }catch(Exception ex) { ex.printStackTrace(); transaction.rollback();//事务回滚 } HibernateSessionFactory.closeSession();//关闭Session对象 } public List<Student> findByStudentName(String studentName) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Student as stu where stu.studentName = ?"); query.setString(0, studentName); List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession(); //关闭Session对象 return list; } public List<Student> findByStudentClass(String sclass) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Student as stu where stu.sclass = ?"); query.setString(0, sclass); List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession(); //关闭Session对象 return list; } }
3.
package com.sanqing.dao; import java.util.List; import com.sanqing.po.Subject; import com.sanqing.util.Page; public interface SubjectDAO { public void addSubject(Subject subject);//保存方法,用来保存试题 public Subject findSubjectByTitle(String subjectTitle);//根据试题标题查找试题 public List<Subject> findSubjectByPage(Page page);//分页查询试题 public int findSubjectCount();//查询试题总量 public Subject findSubjectByID(int subjectID);//根据试题ID查找试题 public void updateSubject(Subject subject);//更新方法,用来更新试题 public void deleteSubject(int subjectID);//根据试题ID删除试题 public List<Subject> likeQueryByTitle(String subjectTitle,Page page);//根据试题标题模糊查询试题 public int findLinkQueryCount(String subjectTitle);//查询模糊记录数 public List<Subject> randomFindSubject(int number);//随时取出记录 }
4.
package com.sanqing.dao; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.sanqing.hibernate.HibernateSessionFactory; import com.sanqing.po.Student; import com.sanqing.po.Subject; import com.sanqing.util.Page; public class SubjectDAOImpl implements SubjectDAO{ public void addSubject(Subject subject){ Session session = HibernateSessionFactory.getSession();//获得Session对象 Transaction transaction = null;//声明一个事务对象 try{ transaction = session.beginTransaction();//开启事务 session.save(subject);//保存试题信息 transaction.commit();//提交事务 }catch(Exception ex) { ex.printStackTrace(); transaction.rollback();//事务回滚 } HibernateSessionFactory.closeSession();//关闭Session对象 } public Subject findSubjectByTitle(String subjectTitle) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject as sub where sub.subjectTitle = ?"); query.setString(0, subjectTitle); List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession(); //关闭Session对象 if(list.size() == 0) { return null; //返回null }else { return (Subject) list.get(0); //返回第一个试题 } } public List<Subject> findSubjectByPage(Page page) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject"); query.setMaxResults(page.getEveryPage());//设置查询记录数 query.setFirstResult(page.getBeginIndex());//设置查询记录起始位置 List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession();//关闭Session对象 return list; } public int findSubjectCount() { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject"); List list = query.list(); //查询结果保存到list中 int count = list.size(); HibernateSessionFactory.closeSession();//关闭Session对象 return count; } public Subject findSubjectByID(int subjectID) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Subject subject = (Subject) session.get(Subject.class, subjectID); HibernateSessionFactory.closeSession(); //关闭Session对象 return subject; } public void updateSubject(Subject subject) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Transaction transaction = null;//声明一个事务对象 try{ transaction = session.beginTransaction();//开启事务 session.update(subject);//更新试题信息 transaction.commit();//提交事务 }catch(Exception ex) { ex.printStackTrace(); transaction.rollback();//事务回滚 } HibernateSessionFactory.closeSession();//关闭Session对象 } public void deleteSubject(int subjectID) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Subject subject = (Subject) session.get(Subject.class, subjectID); Transaction transaction = null;//声明一个事务对象 try{ transaction = session.beginTransaction();//开启事务 session.delete(subject); transaction.commit();//提交事务 }catch(Exception ex) { ex.printStackTrace(); transaction.rollback();//事务回滚 } HibernateSessionFactory.closeSession();//关闭Session对象 } public List<Subject> likeQueryByTitle(String subjectTitle,Page page) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject as sub where sub.subjectTitle like :title "); query.setString("title","%"+subjectTitle+"%"); query.setMaxResults(page.getEveryPage());//设置查询记录数 query.setFirstResult(page.getBeginIndex());//设置查询记录起始位置 List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession();//关闭Session对象 return list; } public int findLinkQueryCount(String subjectTitle) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject as sub where sub.subjectTitle like :title "); query.setString("title","%"+subjectTitle+"%"); List list = query.list(); //查询结果保存到list中 int count = list.size(); HibernateSessionFactory.closeSession();//关闭Session对象 return count; } public List<Subject> randomFindSubject(int number) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Query query = session.createQuery("from Subject as sub order by rand()"); query.setMaxResults(number);//设置查询记录数 List list = query.list(); //查询结果保存到list中 HibernateSessionFactory.closeSession();//关闭Session对象 return list; } }
5.
package com.sanqing.dao; import com.sanqing.po.Teacher; public interface TeacherDAO { public Teacher findByTeacherID(String teacherID);//查询方法,根据教师ID查询 }
6.
package com.sanqing.dao; import org.hibernate.Session; import com.sanqing.hibernate.HibernateSessionFactory; import com.sanqing.po.Teacher; public class TeacherDAOImpl implements TeacherDAO{ public Teacher findByTeacherID(String teacherID) { Session session = HibernateSessionFactory.getSession();//获得Session对象 Teacher teacher = (Teacher) session.get(Teacher.class, teacherID); HibernateSessionFactory.closeSession();//关闭Session对象 return teacher; } }
相关文章推荐
- Java 学习系列:LinkedList 的实现原理
- 理解Java虚拟机体系结构
- JavaWeb项目开发案例精粹-第3章在线考试系统-002配置文件及辅助类
- (补)环境变量的配置以及eclipse的快捷键
- java多线程小结,及解决应用挂死的问题
- 分析JAVA应用CPU占用过高的问题
- 初探Java8中的HashMap(转)
- Hibernate缓存问题
- java反射获取字段以及获取字段值和设置字段值
- think in java学习笔记
- JAVA运行时问题诊断-工具应用篇
- java获取获得Timestamp类型的当前系统时间
- bzoj 3198 spring
- Java并发编程:synchronized
- JavaWeb项目开发案例精粹-第3章在线考试系统-001设计
- java中字符跟字节转换 总结
- Java8多重注解示例
- 各种排序算法的分析及java实现
- Spring实现AOP的4种方式
- java模式之单例模式