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. System.getProperty() 获取系统变量

    例:获取用户当前的工作目录 String CONFPREFIXURL = System.getProperty("user.dir"); System.out.println(CO ...

  2. 「CQOI2009」中位数

    「CQOI2009」中位数 传送门 这道题将会用到一点桶的思想. 首先我们可以在排列中先找到 \(b\) 的位置(找不到的话就直接输出 \(0\)). 然后我们从 \(b\) 的位置(设为 \(p\) ...

  3. lable 语句

    var is = 20; loop: while(is > 10){ console.log(is); if(is % 7 == 0){ break loop; } is --; } 结果: b ...

  4. 关于java自学的内容以及感受

    这周主要学习了关于数组方面的知识包括一维数组以及多维数组(他们所储存数据默认值为0),以下为我根据相关知识编写的简单程序: public class test { public static void ...

  5. spark实验(二)--scala安装(1)

    一.实验目的 (1)掌握在 Linux 虚拟机中安装 Hadoop 和 Spark 的方法: (2)熟悉 HDFS 的基本使用方法: (3)掌握使用 Spark 访问本地文件和 HDFS 文件的方法. ...

  6. unique() 函数详解

    简介 顾名思义,unique,独一无二的.这个函数可以对容器中的元素进行"去重". 但是需要注意,这里的"去重",并没有把重复的元素删除,只是不重复的元素放到了 ...

  7. C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别

    写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...

  8. 基于Modelsim的视频流仿真

    一.前言 最近在看牟新刚写的<基于FPGA的数字图像处理原理及应用>,书中关于FPGA数字图像处理的原理的原理写的非常透彻,在网上寻找了很久都没有找到完整的源代码工程,因此尝试自己做了补充 ...

  9. 在这之后的两天又出现了w3wp进程找不到的情况了

    在这之后的两天又出现了w3wp进程找不到的情况了,我做了什么操作呢?无非就是vs中给一个过程附加删除了了一些dll,然后不停的重新生成解决方案,生成成功后,要调试,发现进程又没了. 实验了上面的方法, ...

  10. android悬浮按钮(Floating action button)的两种实现方法

    原文: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1028/1857.html 最近android中有很多新的设计规范被引入 ...