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. js屏幕上下滚动条

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. proto school tutorial: blog: lesson 1

    https://proto.school/#/blog/01 我们现在希望:把一个post 和他的作者联系起来. 从之前的教程here中,你可以知道, 一个cid 就是代表一个link 比如: { l ...

  3. LeetCode中等题(三)

    题目一: 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明:1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NULL, m ...

  4. 19市赛 树状数组 第k个小的糖果

    int find_kth(int k) { , cnt = , i; ; i >= ; i--)/ { ans += ( << i); if (ans >= maxn|| cn ...

  5. 各大厂商发力5G新机,未来全球手机市场或将呈现新格局

    随着5G商用将正式于今年开启落地,运营商和手机厂商都在为新一代网络制式积极做好准备.对于运营商来说,它们在不断增加5G基站的建设,让5G信号覆盖更广泛的范围.而对于手机厂商来说,它们在努力推出旗下的5 ...

  6. php 基础 PHP保留两位小数的几种方法

    $num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 $format_ ...

  7. LoadRunner的Capture Level

    场景:录制loadrunner的web站点 问题:录制的过程中发现除了页面正常的请求外还有些看不懂的请求(包含乱码),脚本如下: web_url("WebTours", " ...

  8. Atom离线插件安装

    1.下载原始的插件包 2.解压放入atom的packages文件夹中 3.通过nodejs的npm指令进行安装 运行->cmd 4.重启atom就好了.

  9. GIT使用教程——命令详解

    $ git init 当前目录建立GIT可以管理的仓库(版本库),生成一个.git的隐藏文件夹 $ git add <filename> 将工作区的文件修改添加到版本库的暂存区 $ git ...

  10. 怎么HTML表格中的所有字体居中?

    一开始,我在table标签里加入align="center"  发现没什么用.... 后来在css里加入,就可以了 成果如图: