文档章节

Hibernate在线考试系统 01

无头骑士
 无头骑士
发布于 2014/10/27 01:54
字数 959
阅读 72
收藏 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
南京
程序员
私信 提问
迫切需要一份JAVA开发的工作,求收留。

帮朋友发求职,求一份JAVA开发的工作,薪水不是问题。只要能活着,需要一个 锻炼的机会,电话:15807563277 邮件:John_liang.coward@163.com 个人技能 1. 熟悉Linux系统环境,熟练使用常用...

XiaoCon
2014/03/01
630
7
网络考试系统--TOMEXAM

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

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

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

小鹤
2013/11/27
304
2
求java web开发或者web前端开发职位 希望公司在上海张江

当初一位朋友想我带去做SAP,所以辞职去做SAP了,现在已经做了三个月,我感觉自己对SAP一点兴趣都没有。离开有3个月了,才发现自己特别特别喜欢JAVA开发。 找工作,对我以前来说就一直顺风顺...

Mike_Liu
2012/11/12
861
8
突击javaweb项目整合开发

https://github.com/maxliaops/Java_Web_Examples.git Java_Web_Examples 《实战突击:Java Web项目整合开发》源码 01 - 都市供求信息网 02 - 物流配货网 03 - 编程爱好者博客地带 04 - 明日...

guorongjin
2016/10/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
22分钟前
2
0
Python程序员需要知道的30个技巧

1 直接交换两个数字位置 1x, y = 10, 202print(x, y)3x, y = y, x4print(x, y)5#1 (10, 20)6#2 (20, 10) 2 比较运算符的链接 1n = 102result = 1 < n < 203print(result)4# True5result = 1 ......

糖宝lsh
22分钟前
1
0
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
33分钟前
3
0
Android :报错Your project path contains non-ASCII characters.

报错内容如下 Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See ht......

lanyu96
44分钟前
4
0
Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

老菜鸟0217
49分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部