zoukankan      html  css  js  c++  java
  • 暑期项目经验(十二)--hibernate

                      Hibernate

    1.写一个BaseDao,写好CURD,再写一个其他DAO,继承他。

    public void save(Object obj) {
            getSession().save(obj);
        }
        
        public void update(Object obj) {
            getSession().update(obj);
        }
        
        public void delete(Object obj) {
            getSession().delete(obj);
        }

    2.按主键ID查找对应实体 用getSession().get(Entity.class, id)

    public Teacher findTeacherByTeacherId(int teacherId) {
            return (Teacher)getSession().get(Teacher.class, teacherId);
        }

    3.几种查询

    //查询返回多个结果
    List<Entity> lists = query.list();
    
    //查询返回单个结果
    Entity entity = (Entity)query.uniqueResult();

    4.使用count(*)取表中记录总数

    String hql = "select count(*) from FeedbackInfo where sendTeacherId=?";
    Query query = getSession().createQuery(hql);
    query.setParameter(0,teacherId);
    int row = 0;
    //重点下面这句
    row = ((Number)query.uniqueResult()).intValue();

    5.查询单独几个属性,并在Action中使用.  查询一个实体中的几个属性,查询结果的返回的是List<Object>集合,可以创建相应实体,将值保存.

    package com.pl.pojo;
    
    public class SumInfo {
        private String teacherId;
        private double workloadSum;
        public String getTeacherId() {
            return teacherId;
        }
        public void setTeacherId(String teacherId) {
            this.teacherId = teacherId;
        }
        public double getWorkloadSum() {
            return workloadSum;
        }
        public void setWorkloadSum(double workloadSum) {
            this.workloadSum = workloadSum;
        }
        
    }
    
    /------------************-------------------/
    public List<SumInfo> findWorkloadAccountSumByTime(int startSchoolYear, int endSchoolYear) {
            String hql = "select teacherWorkId,round(sum(workload), 1) as workloadsum from TempWorkloadAccount where (schoolYear = ? and schoolTerm=2) or (schoolYear = ? and schoolTerm=1) group by teacherWorkId";
            Query query = getSession().createQuery(hql);
            query.setParameter(0, startSchoolYear);
            query.setParameter(1, endSchoolYear);
            List objs = query.list();
            List<SumInfo> sumInfos = new ArrayList<SumInfo>();
            for(Object obj:objs){
           //利用几行,分离每个对象 Object[] arrObj
    = (Object[])obj; SumInfo info = new SumInfo(); info.setTeacherId((String)arrObj[0]); info.setWorkloadSum((Double)arrObj[1]); sumInfos.add(info); } return sumInfos; }
  • 相关阅读:
    Java后台实现方法
    解决横屏下锁屏,再次解锁界面显示异常-一屏下显示反复两个界面
    java平台利用jsoup开发包,抓取优酷视频播放地址与图片地址等信息。
    用C++实现一个Log系统
    LeetCode 3_Longest Substring Without Repeating Characters
    跟着实例学习设计模式(7)-原型模式prototype(创建型)
    XStream 数组(List)输出结构
    【Cocos2d-x 3.0 基础系列一】 各类回调函数写法汇总
    机房收费系统验收小结(一)
    动态隐藏/显示系统状态栏
  • 原文地址:https://www.cnblogs.com/pxjgood/p/3995151.html
Copyright © 2011-2022 走看看