文档章节

Hibernate在线考试系统 01

无头骑士
 无头骑士
发布于 2014/10/27 01:54
字数 959
阅读 68
收藏 0
点赞 0
评论 0
package model;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="t_exam")
public class Exam {

    private int id;
    private Student student;
    private Paper paper;
    private int singleScore;
    private int moreScore;
    private int score;
    private Date examDate;
    
    @Id
    @GeneratedValue(generator="_native")
    @GenericGenerator(name="_native",strategy="native")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    @ManyToOne
    @JoinColumn(name="studentId")
    public Student getStudent() {
        return student;
    }
    public void setStudent(Student student) {
        this.student = student;
    }
    @ManyToOne
    @JoinColumn(name="paperId")
    public Paper getPaper() {
        return paper;
    }
    public void setPaper(Paper paper) {
        this.paper = paper;
    }
    public int getSingleScore() {
    return singleScore;
        }
    public void setSingleScore(int singleScore) {
        this.singleScore = singleScore;
    }
    public int getMoreScore() {
        return moreScore;
    }
    public void setMoreScore(int moreScore) {
        this.moreScore = moreScore;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    public Date getExamDate() {
        return examDate;
    }
    public void setExamDate(Date examDate) {
        this.examDate = examDate;
    }
}

package model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name="t_student")
public class Student {

    private String id;
    private String name;
    private String password;
    private String sex;
    private String prefession;
    private String cardNo;
    private String flag="2";
    @Id
    @Column(name="id",unique=true,nullable=false,length=40)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @Column(name="name",length=20)
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name="password",length=20)
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    @Column(name="sex",length=5)
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Column(name="prefession",length=40)
    public String getPrefession() {
        return prefession;
    }
    public void setPrefession(String prefession) {
        this.prefession = prefession;
    }
    @Column(name="cardNo",length=50)
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    @Transient
    public String getFlag() {
        return flag;
    }
    public void setFlag(String flag) {
        this.flag = flag;
    }
}

package model;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="t_paper")
public class Paper {

    private int id;
    private String paperName;
    private Date joinDate;
    private Set<Question> questions=new HashSet<Question>();
    
    @Id
    @GeneratedValue(generator="_native")
    @GenericGenerator(name="_native",strategy="native")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getPaperName() {
        return paperName;
    }
    public void setPaperName(String paperName) {
        this.paperName = paperName;
    }
    public Date getJoinDate() {
        return joinDate;
    }
    public void setJoinDate(Date joinDate) {
        this.joinDate = joinDate;
    }
    @OneToMany(mappedBy="paper",fetch=FetchType.EAGER)
    public Set<Question> getQuestions() {
        return questions;
    }
    public void setQuestions(Set<Question> questions) {
        this.questions = questions;
    }
}

public List<Exam> getExams(Exam s_exam,PageBean pageBean)throws Exception
{
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    StringBuffer hql = new StringBuffer("from Exam exam");
    if(s_exam.getStudent() != null && StringUtil.isNotEmpty(s_exam.getStudent().getId()))
    {
        hql.append(" and exam.student.id = '"+s_exam.getStudent().getId()+"'");
    }
    if(s_exam.getStudent()!=null && StringUtil.isNotEmpty(s_exam.getStudent().getName()))
    {
        hql.append(" and exam.student.name like '%"+s_exam.getStudent().getName()+"%'");
    }
    Query query=session.createQuery(hql.toString().replaceFirst("and", "where"));
    if(pageBean != null)
    {
        query.setFirstResult(pageBean.getStart());
        query.setMaxResults(pageBean.getPageSize());
    }
    @SuppressWarnings("unchecked")
    List<Exam> examList = query.list();
    session.getTransaction().commit();
    return examList;
}


package model;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="t_question")
public class Question {
    private int id;
    private String subject;
    private String type;
    private Date joinTime;
    private String optionA;
    private String optionB;
    private String optionC;
    private String optionD;
    private String answer;
    private String userAnswer;
    private Paper paper;
    @Id
    @GeneratedValue(generator="_native")
    @GenericGenerator(name="_native",strategy="native")
    public int getId() {
    return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Date getJoinTime() {
        return joinTime;
    }
    public void setJoinTime(Date joinTime) {
        this.joinTime = joinTime;
    }
    public String getOptionA() {
        return optionA;
    }
    public void setOptionA(String optionA) {
        this.optionA = optionA;
    }
    public String getOptionB() {
        return optionB;
    }
    public void setOptionB(String optionB) {
        this.optionB = optionB;
    }
    public String getOptionC() {
        return optionC;
    }
    public void setOptionC(String optionC) {
        this.optionC = optionC;
    }
    public String getOptionD() {
        return optionD;
    }
    public void setOptionD(String optionD) {
        this.optionD = optionD;
    }
    @Transient
    public String getUserAnswer() {
        return userAnswer;
    }
    public void setUserAnswer(String userAnswer) {
        this.userAnswer = userAnswer;
    }
    @ManyToOne
    @Cascade(value={CascadeType.SAVE_UPDATE})
    @JoinColumn(name="paperId")
    public Paper getPaper() {
        return paper;
    }
    public void setPaper(Paper paper) {
        this.paper = paper;
    }
    public String getAnswer() {
        return answer;
    }
    public void setAnswer(String answer) {
        this.answer = answer;
    }
}




控制台输出:

Hibernate: select exam0_.id as id1_0_, exam0_.examDate as examDate2_0_, exam0_.moreScore as moreScor3_0_, exam0_.paperId as paperId6_0_, exam0_.score as score4_0_, exam0_.singleScore as singleSc5_0_, exam0_.studentId as studentI7_0_ from t_exam exam0_ limit ?

首先它把exam表的信息全部查询了出来

Hibernate: select paper0_.id as id1_2_0_, paper0_.joinDate as joinDate2_2_0_, paper0_.paperName as paperNam3_2_0_, questions1_.paperId as paperId10_2_1_, questions1_.id as id1_3_1_, questions1_.id as id1_3_2_, questions1_.answer as answer2_3_2_, questions1_.joinTime as joinTime3_3_2_, questions1_.optionA as optionA4_3_2_, questions1_.optionB as optionB5_3_2_, questions1_.optionC as optionC6_3_2_, questions1_.optionD as optionD7_3_2_, questions1_.paperId as paperId10_3_2_, questions1_.subject as subject8_3_2_, questions1_.type as type9_3_2_ from t_paper paper0_ left outer join t_question questions1_ on paper0_.id=questions1_.paperId where paper0_.id=?

t_paper和t_question 左关联查询

Hibernate: select student0_.id as id1_4_0_, student0_.cardNo as cardNo2_4_0_, student0_.name as name3_4_0_, student0_.password as password4_4_0_, student0_.prefession as prefessi5_4_0_, student0_.sex as sex6_4_0_ from t_student student0_ where student0_.id=?

把学生表的所有信息查询了出来


© 著作权归作者所有

共有 人打赏支持
无头骑士
粉丝 6
博文 65
码字总数 30805
作品 1
南京
程序员
网络考试系统--TOMEXAM

TomExam是一款基于Java与MySQL开发的、B/S架构的网络考试系统。它将传统的考试模式与先进的互联网应用相结合,使得用户可以根据自身应用特点快速构建考试平台系统, 高效组织和管理在线考试工...

雪欲飞
2013/09/10
12.3K
10
基于J2EE的实验项目远程管理系统

各位JAVA大神,这是我学校的课程设计,我还没学网络编程就叫我编,求助。 题目1:基于J2EE的实验项目远程管理系统 虚拟化实验是高校实验室的重要实验技术,可以有效降低实验设备成本并提高管...

小鹤
2013/11/27
279
2
TCExam 11.2.011 发布,Web在线考试系统

在线考试系统 TCExam 11.2.011 发布。该版本包括一些安全修复和阿塞拜疆语翻译。 TCExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸...

老枪
2011/07/12
1K
0
MyExam在线开源考试系统 v2.0发布

MyExam在线开源考试系统 v2.0发布 MyExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸笔考试”的一种方法逐步在很多学 校和企 业流行...

myexam123
2013/08/28
10.9K
27
TCExam 12 发布,在线考试系统

TCExam 12 发布了,包含很多新特性和改进,包括集中式图形统计,更好的性能,更智能的认证和权限系统,可重复的测试,增加一个虚拟键盘等。 TCExam是一款基于网络的开源在线考试系统,用于在...

oschina
2013/03/28
1K
2
TCExam 12.0.1 发布,在线考试系统

TCExam 12.0.1 是一个维护版本,主要是小 bug 修复和改进。 TCExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸笔考试”的一种方法逐...

oschina
2013/04/01
3.5K
3
开源在线考试系统 TCExam 11.1 发布

TCExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸笔考试”的一种方法逐步在很多学 校和企 业流行起来,这种方法能够大大简化整个考...

红薯
2010/12/30
2.2K
0
TCExam 10.0.001 发布,在线考试系统

TCExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸笔考试”的一种方法逐步在很多学校和企 业流行起来,这种方法能够大大简化整个考...

红薯
2010/02/13
956
0
在线考试系统 TCExam 9.0.019 发布

TCExam是一款基于网络的开源在线考试系统,用于在线试题的生成、管理等方面。最近,在线考试作为替代传统“纸笔考试”的一种方法逐步在很多学校和企 业流行起来,这种方法能够大大简化整个考...

红薯
2009/07/06
594
1
MyExam开源在线考试系统兼容多浏览器发布

本次改版主要是针对好多热心网友提出的MyExam开源在线考试系统在火狐和IE系列浏览器下的一些兼容性问题的修复,同时再次对于那些对于MyExam不断完善提出宝贵建议网友表示诚挚的谢意,MyExam是...

myexam123
2013/09/14
5.1K
19

没有更多内容

加载失败,请刷新页面

加载更多

下一页

流利阅读笔记29-20180718待学习

高等教育未来成谜,前景到底在哪里? Ray 2018-07-18 1.今日导读 在这个信息爆炸的年代,获取知识是一件越来越容易的事情。人们曾经认为,如此的时代进步会给高等教育带来众多便利。但事实的...

aibinxiao
19分钟前
7
0
第15章FTP服务搭建与配置

15.1FTP介绍 FTP多用于Windows传文件到linux rz sz在文件超过4G,就无法使用了——>安装包yum install -y install lrzsz rz把 window 上的文件传输到 linux 上 sz 把 linux 上的文件传输到 ...

Linux学习笔记
27分钟前
0
0
OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
31分钟前
7
1
Spring Boot Admin 2.0开箱体验

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

CodeSheep
50分钟前
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
今天
0
0
实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部