Hibernate练习——将一款小型管理系统的框架更改成Hibernate

首先,找到一个过去完成开发的小型账户管理系统,该系统的ORM框架是MyBatis,本次实验的目的是将其换成Hibernate,并且成功实现增删改查能力。
在Maven的POM.xml文件夹中添加hibernate所需要的相关依赖。
在这里插入图片描述
然后,编写主配置文件和对象映射文件。
在这里插入图片描述
在这里插入图片描述
然后,由于本系统使用了tkMyBatis,所以需要重新编写dao层接口。
在这里插入图片描述
然后,对HibernateBillDao接口进行实现。
在这里插入图片描述
实现代码如下:

package com.sbbs.dao.impl;

import com.sbbs.bean.Bill;
import com.sbbs.dao.HibernateBillDao;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import java.io.Serializable;
import java.util.List;

/**
 * Created by shaowei on 2021/6/16.
 */
public class HibernateBillDaoImpl implements HibernateBillDao {
    private Configuration conf;
    private SessionFactory sessionFactory;

    {
        conf = new Configuration().configure();
        sessionFactory = conf.buildSessionFactory();
    }

    @Override
    public List<Bill> searchByMsg(Integer typeId, String fromDate, String toDate) {
        Session session = sessionFactory.openSession();
        Query query = session.createQuery("from Bill where typeId=" + typeId + "and billTime>=" + fromDate + "and billTime<=" + toDate);
        List<Bill> list = query.list();
        session.close();
        return list;
    }

    @Override
    public List<Bill> searchAll() {
        Session session = sessionFactory.openSession();
        Query query = session.createQuery("from Bill");
        session.close();
        return query.list();
    }

    @Override
    public Bill getById(Integer id) {
        Session session = sessionFactory.openSession();
        Bill bill = session.get(Bill.class, id);
        session.close();
        return bill;
    }

    @Override
    public int insert(Bill bill) {
        Session session = sessionFactory.openSession();
        session.save(bill);
        session.close();
        return 1;
    }

    @Override
    public int updateById(Bill newBill) {
        Session session = sessionFactory.openSession();
        Bill bill = session.get(Bill.class, newBill.getId());
        bill.setTitle(newBill.getTitle());
        bill.setBillTime(newBill.getBillTime());
        bill.setExplain(newBill.getExplain());
        bill.setPrice(newBill.getPrice());
        bill.setBillType(newBill.getBillType());
        session.update(bill);
        session.close();
        return 1;
    }

    @Override
    public int deleteById(Integer id) {
        Session session = sessionFactory.openSession();
        Bill bill = session.get(Bill.class, id);
        session.delete(bill);
        session.close();
        return 1;
    }
}

然后,先用JUnit进行单元测试。
searchAll方法测试结果:
在这里插入图片描述
getById方法测试结果:
在这里插入图片描述
insert方法测试:
在这里插入图片描述
updateById方法测试:
在这里插入图片描述
最后,对系统进行系统测试:
查询功能测试结果:
在这里插入图片描述
更新功能测试:
在这里插入图片描述
在这里插入图片描述
插入功能测试:
在这里插入图片描述
在这里插入图片描述
删除功能测试:
在这里插入图片描述
在这里插入图片描述
至此,成功将系统框架切换为hibernate框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值