package com.qinghuait.hibernate.beans;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.qinghuait.util.Page;
/**
* 考生 DAO 类
* @author 米强
*
*/
public class UserDAO extends HibernateDAO implements IPage {
public UserDAO() {
}
/**
* 持久化一个 User 对象
* @param user User 对象
* @return 事务是否提交成功
*/
public boolean saveUser(User user){
boolean b = false;
Session session = getSession();
Transaction tran = null;
try{
tran = session.beginTransaction();
session.save(user);
tran.commit();
}catch (Exception e) {
if(tran != null){
tran.rollback();
}
}finally{
// 判断事务是否提交成功
b = tran.wasCommitted();
session.close();
}
return b;
}
/**
* 删除数据
* @param id 主键
* @return 事务是否提交成功
*/
public boolean deleteUser(int id){
return deleteUser(queryUser(id));
}
/**
* 删除数据
* @param user User 对象
* @return 事务是否提交成功
*/
public boolean deleteUser(User user){
boolean b = false;
Session session = getSession();
Transaction tran = null;
try{
// 开始事务
tran = session.beginTransaction();
// 删除
session.delete(user);
// 事务提交
tran.commit();
}catch (Exception e) {
if(tran != null){
// 事务回滚
tran.rollback();
}
}finally{
// 获得事务是否提交成功
b = tran.wasCommitted();
session.close();
}
return b;
}
/**
* 更新数据
* @param user User 对象
* @return 事务是否提交成功
*/
public boolean updateUser(User user){
boolean b = false;
Session session = getSession();
Transaction tran = null;
try{
// 开始事务
tran = session.beginTransaction();
// 更新
session.update(user);
// 事务提交
tran.commit();
}catch (Exception e) {
if(tran != null){
// 事务回滚
tran.rollback();
}
}finally{
// 获得事务是否提交成功
b = tran.wasCommitted();
session.close();
}
return b;
}
/**
* 按主键 id 查询
* @param id 主键
* @return User 对象
*/
public User queryUser(int id){
User user = null;
Session session = getSession();
try{
user = (User) session.get(User.class, id);
}catch (Exception e) {
}finally{
session.close();
}
return user;
}
/**
* 按用户名称查询
* @param userName 名称
* @return User 对象
*/
public User queryUser(String userName){
User user = null;
Session session = getSession();
try{
String hql = "from User as u where u.userName=:userName";
Query query = session.createQuery(hql);
query.setString("userName", userName);
// 获取唯一的 User 对象,该列有唯一性约束时使用。
user = (User) query.uniqueResult();
}catch (Exception e) {
}finally{
session.close();
}
return user;
}
/**
* 查询所有数据
* @return 数据 list
*/
@SuppressWarnings("unchecked")
public List<User> queryAll(){
List<User> list = null;
Session session = getSession();
try{
String hql = "from User";
Query query = session.createQuery(hql);
list = query.list();
}catch (Exception e) {
}finally{
session.close();
}
return list;
}
/*
* 需要分页显示所有考生则需要实现接口下的三个方法
* @see com.qinghuait.hibernate.beans.IPage#getPage(int)
*/
@Override
public Page getPage(int pageId) {
// 调用下面的方法重载
return getPage(new Page(pageId));
}
@SuppressWarnings("unchecked")
@Override
public Page getPage(Page page) {
Session session = getSession();
// 返回数据总数的 HQL 语句
String hql = "select count(*) from User";
Query q = session.createQuery(hql);
List<Integer> l = q.list();
if(l.size() > 0){
page.setCountRows(l.get(0));
// 计算 Page 对象的其它值
page.setup();
}
session.close();
return page;
}
@SuppressWarnings("unchecked")
@Override
public List<User> list(Page page) {
List<User> list = null;
Session session = getSession();
String hql = "from User";
Query q = session.createQuery(hql);
// 设置需要获取的第一条记录的位置(由 0 开始)
q.setFirstResult(page.getStartRow());
// 设置需要获取数据的最大条数
q.setMaxResults(page.getPageSize());
list = q.list();
session.close();
return list;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
在线考试系统(struts+spring+hibernate)
共153个文件
java:40个
class:40个
jar:25个
4星 · 超过85%的资源 需积分: 10 38 下载量 84 浏览量
2009-08-21
19:43:26
上传
评论
收藏 6.48MB RAR 举报
温馨提示
这是一个简单的在线考试系统,但用的技术是struts+spring+hibernate,初学者可以借鉴此例学习,希望对你们有所帮助。
资源推荐
资源详情
资源评论
收起资源包目录
在线考试系统(struts+spring+hibernate) (153个子文件)
UserDAO.class 5KB
AddListAction.class 4KB
UserStartAction.class 4KB
TestClassDAO.class 3KB
UserEditPassAction.class 3KB
EditPassAction.class 3KB
UserRegAction.class 3KB
AdminLoginAction.class 3KB
UserLoginAction.class 3KB
TestList.class 3KB
HibernateSessionFactory.class 3KB
DelUserAction.class 3KB
TestItem.class 2KB
TestListDAO.class 2KB
AddTestClassAction.class 2KB
AddListForm.class 2KB
DelListAction.class 2KB
AdminFilter.class 2KB
UserFilter.class 2KB
Page.class 2KB
ShowTestListAction.class 2KB
AdminDAO.class 2KB
UsersAction.class 2KB
EditPassForm.class 2KB
UserRegForm.class 2KB
Test.class 2KB
DelTestClassAction.class 2KB
AdminLoginForm.class 2KB
UserLoginForm.class 2KB
UserTestAction.class 2KB
UserStartForm.class 2KB
TestClass.class 1KB
TestAction.class 1KB
EncodingActionServlet.class 1KB
ExitAction.class 1KB
Admin.class 1KB
User.class 1KB
HibernateDAO.class 536B
IPage.class 398B
IHibernateDAO.class 186B
.classpath 2KB
javafan.gif 3KB
hibernate3.jar 1.94MB
xerces-2.6.2.jar 1023KB
struts.jar 553KB
antlr-2.7.6rc1.jar 442KB
log4j-1.2.11.jar 360KB
antlr.jar 357KB
dom4j-1.6.1.jar 316KB
cglib-2.1.3.jar 291KB
sqljdbc.jar 247KB
jaxen-1.1-beta-7.jar 238KB
commons-beanutils.jar 191KB
commons-collections-2.1.1.jar 182KB
commons-digester.jar 171KB
xml-apis.jar 135KB
jaas.jar 108KB
commons-validator.jar 87KB
jakarta-oro.jar 69KB
ehcache-1.1.jar 49KB
commons-logging.jar 40KB
commons-logging-1.0.4.jar 40KB
asm.jar 28KB
commons-fileupload.jar 25KB
asm-attrs.jar 19KB
jta.jar 11KB
jdbc2_0-stdext.jar 9KB
UserDAO.java 4KB
UserStartAction.java 3KB
AddListAction.java 3KB
HibernateSessionFactory.java 3KB
AddListForm.java 3KB
UserEditPassAction.java 3KB
EditPassAction.java 3KB
TestClassDAO.java 3KB
UserRegAction.java 2KB
UserRegForm.java 2KB
AdminLoginAction.java 2KB
EditPassForm.java 2KB
UserLoginAction.java 2KB
TestListDAO.java 2KB
AddTestClassAction.java 2KB
AdminLoginForm.java 2KB
Page.java 2KB
UserLoginForm.java 2KB
DelUserAction.java 2KB
TestItem.java 2KB
ShowTestListAction.java 2KB
UsersAction.java 2KB
DelListAction.java 2KB
TestList.java 2KB
AdminFilter.java 2KB
UserFilter.java 2KB
DelTestClassAction.java 2KB
UserStartForm.java 1KB
UserTestAction.java 1KB
Test.java 1KB
AdminDAO.java 1KB
TestAction.java 1KB
ExitAction.java 1KB
共 153 条
- 1
- 2
资源评论
- learn_20072014-04-02适合初学者看看
- Java_boy122012-09-23说是ssh,但是没有用到spring!数据库是sqlserver2005的。
JJR1988112
- 粉丝: 50
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功