public class StudentDaoImpl implements StudentDao {

    @Override
/**
* 查询所有学生
*
* @throws SQLException
*/
public List<Student> findAll() throws SQLException {
Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
// HQL查询,面向对象的查询语言,from Student
Query query = session.createQuery("from Student");
List<Student> list = query.list();
transaction.commit();
session.close();
return list;
} @Override
/**
* 需要添加到数据库的学生
*/
public void insert(Student student) throws SQLException {
Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
// HQL查询,面向对象的查询语言
session.save(student);
transaction.commit();
session.close();
} @Override
/**
* 根据id删除学生
*/
public void delete(int sid) throws SQLException {
Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
// HQL查询,面向对象的查询语言
Student student = session.get(Student.class, sid);
session.delete(student);
transaction.commit();
session.close();
} /**
* 根据id查询单个学生
*
* @throws SQLException
*/
@Override
public Student findStudentById(int sid) throws SQLException { Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
// HQL查询,面向对象的查询语言
Student student = session.get(Student.class, sid);
transaction.commit();
session.close();
return student;
} @Override
/**
* 更新学生到数据库
*/
public void Update(Student stu, int sid) throws SQLException { Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
stu.setSid(sid);
session.saveOrUpdate(stu);
transaction.commit();
session.close();
} @Override
/**
* 模糊查询的DAO层实现
*/
public List<Student> SearchStident(String sname, String sgender) throws SQLException {
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Student.class);
Object[] obj = { null, "男", "女" };
detachedCriteria.add(Restrictions.like("sname", "%" + sname + "%"));
detachedCriteria.add(Restrictions.in("gender", obj)); Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction(); Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<Student> list = criteria.list(); transaction.commit();
session.close();
return list;
} @Override
/**
* 分页查询,查询当前页的学生数据并封装成集合
*/
public List<Student> findStudentByPage(int currentPage) throws SQLException {
Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(Student.class);
criteria.setFirstResult(PAGE_SIZE * (currentPage - 1));//起始位置
criteria.setMaxResults(PAGE_SIZE);//每页多少条记录
List<Student> list = criteria.list();
return list;
/*QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
// 第一个?返回记录数量,第二个?偏移量
// 第n页 : 5,5*n-1
return runner.query("select * from students limit ? offset ?", new BeanListHandler<Student>(Student.class),
PAGE_SIZE, PAGE_SIZE * (currentPage - 1));*/
} @Override
/**
* 查询学生记录数
*/
public int findCount() throws SQLException {
Session session = HibernateUtils.oppenSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(Student.class);
criteria.setProjection(Projections.rowCount());
Long num = (Long) criteria.uniqueResult();
return num.intValue();
} }

二 Hibernate 改写学生管理系统的业务功能的更多相关文章

  1. 第82节:Java中的学生管理系统

    第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...

  2. 第83节:Java中的学生管理系统分页功能

    第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...

  3. Java实现功能简单的学生管理系统(附带源代码)

    这几天Java学了点新的知识,打算要用这些知识做一个比较简单的管理系统,实战一下子,代码中的功能简洁,可能不多,但是作为一个练手来了解一个项目是怎么样一点一点思考的还是不错的 一.代码中要实现的功能 ...

  4. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  5. 学生管理系统(springMVC)

    <Java Web编程>课程设计                                                                               ...

  6. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  7. 饮冰三年-人工智能-Python-26 Django 学生管理系统

    背景:创建一个简单的学生管理系统,熟悉增删改查操作 一:创建一个Django项目(http://www.cnblogs.com/wupeiqi/articles/6216618.html) 1:创建实 ...

  8. 学生管理系统(Nodejs)

    一.项目介绍 ①使用nodejs+bootstrap开发 ②对文件进行合理的模块化 ③实现基本的增删改查功能 二.思路 ①处理模块,处理模块,配置开发静态资源,配置模块引擎 ②路由设计,提取路由模块 ...

  9. Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化

    知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越 ...

随机推荐

  1. 洛谷P1991 无线通讯网(最小生成树性质+连通块)

    题目描述 国防部计划用无线网络连接若干个边防哨所.2 种不同的通讯技术用来搭建无线网络: 每个边防哨所都要配备无线电收发器:有一些哨所还可以增配卫星电话. 任意两个配备了一条卫星电话线路的哨所(两边都 ...

  2. XC1263 签到题(哇 ,写得我怀疑人生啊!!!@!@)

    1263: 签到题 时间限制: 1 Sec  内存限制: 128 MB提交: 174  解决: 17 标签提交统计讨论版 题目描述 大家刚过完寒假,肯定还没有进入状态,特意出了一道签到题给各位dala ...

  3. spring boot 配置时区差别

    前提 数据库时区:GMT+8 show variables like '%time_zone%'; 本机电脑时区: 情景一.不指定时区 传递的参数映射到Data不指定时区,连接数据库不指定时区,保存时 ...

  4. nginx、apache和tomcat之间的关系和区别

    Apache/Nginx 应该叫做 HTTP Server,即安装后生成httpd服务. Tomcat 则是一个 Application Server,或者更准确的来说,是一个「Servlet/JSP ...

  5. python中的异常处理:厌而不舍

      什么是异常? ------异常:不正常的情况 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Pytho ...

  6. UIView动画的使用

    下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...

  7. vue element 表单多个验证时,滚动到验证提示的位置

    最近项目有个下单的过程,需要输入很多信息,每次提交都要往下滑,还要去验证,测试后发现体验也不好,element框架也没提供这种滚动方法, 不过提供了一个验证的方法 validate (两个参数:是否校 ...

  8. NB-IoT的介绍最终版 !看明白了吗?(转自 top-iot)

    标签: NB-IOT 1  1G-2G-3G-4G-5G 不解释,看图,看看NB-IoT在哪里? 2  NB-IoT标准化历程 3GPP NB-IoT的标准化始于2015年9月,于2016年7月R13 ...

  9. 吴裕雄--天生自然ORACLE数据库学习笔记:数据表对象

    create table students( stuno ) not null, --学号 stuname ), --姓名 sex ), --性别 age int, --年龄 departno ) n ...

  10. 2019年5月6日A股两百点暴跌行情思考

    原因:特朗普推特发布贸易战消息 盘面:跳空低开,单边下跌,上证指数最大跌幅200点,收盘千股跌停 操作:开盘加仓,盘中加仓,尾盘满仓 总结: 特大黑天鹅事件爆发引发大盘暴跌时,后续必将迎来一个反弹机会 ...