二 Hibernate 改写学生管理系统的业务功能
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 改写学生管理系统的业务功能的更多相关文章
- 第82节:Java中的学生管理系统
第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...
- 第83节:Java中的学生管理系统分页功能
第83节:Java中的学生管理系统分页功能 分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其 ...
- Java实现功能简单的学生管理系统(附带源代码)
这几天Java学了点新的知识,打算要用这些知识做一个比较简单的管理系统,实战一下子,代码中的功能简洁,可能不多,但是作为一个练手来了解一个项目是怎么样一点一点思考的还是不错的 一.代码中要实现的功能 ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- 学生管理系统(springMVC)
<Java Web编程>课程设计 ...
- 学生管理系统-火车订票系统 c语言课程设计
概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...
- 饮冰三年-人工智能-Python-26 Django 学生管理系统
背景:创建一个简单的学生管理系统,熟悉增删改查操作 一:创建一个Django项目(http://www.cnblogs.com/wupeiqi/articles/6216618.html) 1:创建实 ...
- 学生管理系统(Nodejs)
一.项目介绍 ①使用nodejs+bootstrap开发 ②对文件进行合理的模块化 ③实现基本的增删改查功能 二.思路 ①处理模块,处理模块,配置开发静态资源,配置模块引擎 ②路由设计,提取路由模块 ...
- Mybatis高级:Mybatis注解开发单表操作,Mybatis注解开发多表操作,构建sql语句,综合案例学生管理系统使用接口注解方式优化
知识点梳理 课堂讲义 一.Mybatis注解开发单表操作 *** 1.1 MyBatis的常用注解 之前我们在Mapper映射文件中编写的sql语句已经各种配置,其实是比较麻烦的 而这几年来注解开发越 ...
随机推荐
- Web性能测试工具推荐
WEB性能测试工具主要分为三种: 一种是测试页面资源加载速度的: 一种是测试页面加载完毕后页面呈现.JS操作速度的: 一种是总体上对页面进行评价分析. ~~~如果谁有更好的工具也请一起分享下 1. ...
- 一种ui app写法
方法一: $(function(){ // 定义一个对象 var qx={}; qx.ui={}; qx.ui.getleft=function(){ alert('qx.ui.getleft'); ...
- 《JavaScript高级程序设计》读书笔记(二)在html中使用JavaScript
主要内容---使用<script>元素---嵌入脚本与外部脚本---文档模式对JavaScript的影响---考虑禁用JavaScript的场景 <script>元素---向h ...
- C/C++ scanf和gets 区别 , printf和puts区别
ref 1. scanf和gets区别 | 博客园 2. printf和puts区别 | CSDN scanf和gets都能从输入流stdin读取字符串,那么它们有什么区别呢? scanf 留回车:开 ...
- 关于java自学的内容及感受
这周自学了关于java类的知识,进度有点慢,需要抓紧学习剩下的知识,放假后由于自制力差而各种玩没有认认真真的学习,下周要认真的学习之后的进度,争取开学玩全部完成! /** * 动物的类 * */pub ...
- ZOJ4102 Array in the Pocket(2019浙江省赛)
贪心~ #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int b[maxn]; int vis[maxn]; se ...
- day4-1深入理解对象之创建对象
深入理解对象 之创建对象: 工厂模式: 工厂模式虽然解决了创建\多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型) 工厂模式问题:那就是识别问题,因为根本无法 搞清楚他们到底是 ...
- 4 JavaScript异常&debugger&保留关键字
try:语句测试代码块错误 catch:语句处理错误,一般提供一个对象如catch(err)用来存储错误信息 throw: 语句创建自定义错误,抛出的信息可以被catch捕获 JavaScript错误 ...
- 解决:Field xxMapper in xx.service.impl.xxServiceImpl required a bean of type 'xx.mapper.xxMapper'
1.启动 SpringBoot项目报错,使用的是Springboot.Spring.Mybatis连接Mysql数据库,启动SpringBoot项目报错,错误如下所示: _____ .__/\ .__ ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:Oracle数据备份与恢复
run{ allocate channel ch_1 device type disk format = 'd:\oraclebf\%u_%c.bak'; backup tablespace syst ...