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. 文件的读取与保存(try-with-resource优雅关闭)

    借鉴:https://www.cnblogs.com/itZhy/p/7636615.html 一.背景 在Java编程过程中,如果打开了外部资源(文件.数据库连接.网络连接等),我们必须在这些外部资 ...

  2. 洛谷 T2691 桶哥的问题——送桶

    嗯... 题目链接:https://www.luogu.org/problem/T2691 这道题有一点贪心的思想吧...并且思路与题目是倒着来的(貌似这种思路已经很常见的... 先举个栗子: 引出思 ...

  3. mcast_unblock_source函数

    #include <errno.h> #include <sys/socket.h> #define SA struct sockaddr int mcast_unblock_ ...

  4. apache 配置虚拟目录

    #注释掉apache默认的网站目录地址 #DocumentRoot "c:/Rrogram Files/Apache/htdocs" #配置一个虚拟目录 <ifModule ...

  5. 第三节:Vuejs常用特性2和图书案例

    一. 常用特性2 1. 监听器 用watch来响应数据的变化, 一般用于异步或者开销较大的操作, watch 中的属性 一定是data 中 已经存在的数据!!! 当需要监听一个对象的改变时,普通的wa ...

  6. 代理模式之静态代理,JDK动态代理和cglib动态代理

    代理模式,顾名思义,就是通过代理去完成某些功能.比如,你需要购买火车票,不想跑那么远到火车站售票窗口买,可以去附近的火车票代售点买,或者到携程等第三方网站买.这个时候,我们就把火车站叫做目标对象或者委 ...

  7. win10 设置jdk环境变量

    win10环境变量较为特殊 只需要设置JAVA_HOME和PATH,设置后可以通过java -version 和 javac -version 验证查看jdk得版本号和编译版本号 具体如下图所示:

  8. 【原】php中fastcgi和php-fpm是什么东西

    fastcgi 是一个与平台无关,与语言无关,任何语言只要按照它的接口来实现,就能实现自己语言的fastcgi能力和web server 通讯. PHP-CGI就是PHP实现的自带的FastCGI管理 ...

  9. 了解 Fetch API与Fetch+Async/await

    背景 提及前端与服务器端的异步通信,离不开 Ajax (Asynchronous JavaScript and XML).实际上我们常说的 Ajax 并非指某一项具体的技术,它主要是基于用脚本操作 H ...

  10. c++构造函数的初始化列表(翁恺c++公开课[13])

    初始化列表形式: class Point { private: const float x,y; Point(float xa = 0.0, flato ya = 0.0):y(ya),x(xa) { ...