模仿滴滴打车的数据库设计、实体类映射关系配置、语句增删改查(2)

1.编写dao类

package com.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import com.util.HibernateUtil;
import com.vo.Admin;

public class AdminDao {

	private Transaction transaction;

	// 增加管理员信息
	public void insertAdmin(Admin admin) {
		Session session = HibernateUtil.getSession();

		transaction = session.beginTransaction();
		// [2]将数据存储到数据库的表中
		session.save(admin);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUtil.closeSession();
	}

	// 查找所有管理员的信息
	public List<Admin> getAllAdmins() {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();

		// [2]通过映射文件,查询对应数据库中数据,并存储在list集合中
		Query query = session.createQuery("from Admin"); // 注意这里是类名
		List<Admin> admins = query.list();
		// [3]关闭资源
		HibernateUtil.closeSession();

		return admins;
	}

	// 按照编号进行查询信息
	public Admin getAdminById(int admin_id) {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();

		// [2]通过映射文件,查询对应数据库中数据,并存储在list集合中
		Query query = session.createQuery("from Admin a where a.admin_id = " + admin_id);
		List<Admin> admins = query.list();
		Admin admin = admins.get(0);
		// [3]关闭资源
		HibernateUtil.closeSession();

		return admin;
	}

	// 修改信息、管理用户0、管理司机1、管理车辆2、管理订单和退款和评论3
	public void modifyAdminById(Admin admin) {
		// [1]获取sessionFactory和session和transition
		Session session = HibernateUtil.getSession();

		transaction = session.beginTransaction();
		// [2]调用update方法,将数据更新并存储到数据库的表中
		session.update(admin);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUtil.closeSession();
		;
	}

	// 删除信息
	public void deleteAdminById(Admin admin) {
		// [1]获取sessionFactory和session和transition
		Session session = HibernateUtil.getSession();

		transaction = session.beginTransaction();
		// [2]删除
		session.delete(admin);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUtil.closeSession();

	}

}
package com.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.util.HibernateUtil;
import com.vo.Car;
import com.vo.Driver;
import com.vo.Sort;

public class CarDao {

	private Transaction transaction;

	// 增加管理员信息
	public void insertCar(Car car) {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();
		transaction = session.beginTransaction();
		// [2]将数据存储到数据库的表中
		session.save(car);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUtil.closeSession();
	}

	// 查询全部车辆信息
	public List<Car> getAllCars() {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();
		// [2]通过映射文件,查询对应数据库中数据,并存储在list集合中
		Query query = session.createQuery(
				"select new Car" + "(c.car_id,c.car_number,c.car_type,c.car_color,c.car_state)" + " from Car c");
		List<Car> cars = query.list();
		for (Car car : cars) {
			String hql = "from Driver d where d.driver_id = "
					+ "(select c.driver.driver_id from Car c where c.car_id = " + car.getCar_id() + ")";
			Query query3 = session.createQuery(hql);
			List<Driver> drivers = query3.list();
			Driver driver = drivers.get(0);

			String hql1 = "from Sort s where s.sort_id = " + "(select c.sort.sort_id from Car c where c.car_id = "
					+ car.getCar_id() + ")";
			Query query4 = session.createQuery(hql1);
			List<Sort> sorts = query4.list();
			Sort sort = sorts.get(0);

			car.setDriver(driver);
			car.setSort(sort);

		}
		// [3]关闭资源
		HibernateUtil.closeSession();
		return cars;
	}

	// 按照车辆编号进行查询信息
	public Car getCarById(int car_id) {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();

		// [2]通过映射文件,查询对应数据库中数据,并存储在list集合中
		// Query query1 = session.createQuery("select new
		// Driver(c.driver.driver_id) from Car c where c.car_id=" + car_id);
		// List<Driver> drivers = query1.list();
		// Driver driver = drivers.get(0);
		// Query query2 = session.createQuery("from Driver d where d.driver_id="
		// + driver.getDriver_id());
		// drivers = query2.list();
		// driver = drivers.get(0);
		// Query query4 = session.createQuery("select c.driver.driver_id from
		// Car c where c.car_id = " + car_id);
		// List<Object> Objects = query4.list();
		// System.out.println(Objects.get(0).toString());
		String hql = "from Driver d where d.driver_id = " + "(select c.driver.driver_id from Car c where c.car_id = "
				+ car_id + ")";
		Query query3 = session.createQuery(hql);
		List<Driver> drivers = query3.list();
		Driver driver = drivers.get(0);

		String hql1 = "from Sort s where s.sort_id = " + "(select c.sort.sort_id from Car c where c.car_id = " + car_id
				+ ")";
		Query query4 = session.createQuery(hql1);
		List<Sort> sorts = query4.list();
		Sort sort = sorts.get(0);

		Query query = session
				.createQuery("select new " + "Car(c.car_id,c.car_number,c.car_type,c.car_color,c.car_state) "
						+ "from Car c where c.car_id = " + car_id);
		List<Car> cars = query.list();
		Car car = cars.get(0);

		car.setDriver(driver);
		car.setSort(sort);
		// [3]关闭资源
		HibernateUtil.closeSession();

		return car;
	}

	// 按照司机编号进行查询信息
	public List<Car> getCarByDriverId(int driver_id) {
		// [1]获取sessionFactory和session
		Session session = HibernateUtil.getSession();

		// [2]通过映射文件,查询对应数据库中数据,并存储在list集合中
		Query query1 = session.createQuery("from Driver where driver_id=" + driver_id);
		List<Driver> drivers = query1.list();
		Driver driver = drivers.get(0);
		Query query = session
				.createQuery("select new " + "Car(c.car_id,c.car_number,c.car_type,c.car_color,c.car_state) "
						+ "from Car c where c.driver.driver_id = " 
						+ driver_id);
		List<Car> cars = query.list();
		for (Car car2 : cars) {
			car2.setDriver(driver);
		}
		// [3]关闭资源
		HibernateUtil.closeSession();

		return cars;
	}

	// 根据车辆编号进行修改信息
	public void modifyCarById(Car car) {
		// [1]获取sessionFactory和session和transition
		Session session = HibernateUtil.getSession();
		transaction = session.beginTransaction();
		// [2]调用update方法,将数据更新并存储到数据库的表中
		session.update(car);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUtil.closeSession();
	}

	// 根据车辆编号进行删除信息
	public void deleteCarById(Car car) {
		// [1]获取sessionFactory和session和transition
		Session session = HibernateUtil.getSession();
		transaction = session.beginTransaction();
		// [2]删除
		session.delete(car);
		// [3]提交事务
		transaction.commit();
		// [4]关闭资源
		HibernateUti
  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值