星空网 > 软件开发 > Java

Dao设计模型

一、目录的工程结构

  Dao设计模型

二、模型设计

  Dao设计模型

 

三、核心代码的实现

  1、实体类

package com.lyh.domain;public class Book {  private String id;  private String name;  private float price;  public String getId() {    return id;  }  public void setId(String id) {    this.id = id;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public float getPrice() {    return price;  }  public void setPrice(float price) {    this.price = price;  }}package com.lyh.domain;public class Customer {  private Integer id;  private String name;  public Integer getId() {    return id;  }  public void setId(Integer id) {    this.id = id;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }}

  2、Dao设计

最顶层Dao.javapackage com.lyh.dao;import java.io.Serializable;public interface Dao<T> {  void add(T t);  void update(T t);  void delete(Serializable id);  T findOne(Serializable id);}//BookDao.javapackage com.lyh.dao;import com.lyh.domain.Book;public interface BookDao extends Dao<Book>{  }//CustomerDao.java package com.lyh.dao;import java.util.List;import com.lyh.domain.Customer;public interface CustomerDao extends Dao<Customer>{    List<Customer> findCustomers(int startIndex,int offset);}

  3、具体Dao的实现类

  

Dao实现类BaseDao.javapackage com.itheima.dao.impl;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import org.hibernate.Session;import org.hibernate.Transaction;import com.itheima.dao.Dao;import com.itheima.util.HibernateUtil;public abstract class BaseDao<T> implements Dao<T> {    private Class clazz;  public BaseDao() {    //知道子类到底操作的是什么类型的javabean。即给clazz赋值    Type type = this.getClass().getGenericSuperclass(); //new BookDaoImpl() 得到 BaseDao<Book> 参数化的泛型类    ParameterizedType ptype = (ParameterizedType)type;  // 强转成 BaseDao<Book>    Type types[] = ptype.getActualTypeArguments();    clazz = (Class) types[0];    System.out.println(clazz);  }    @Override  public void add(T t) {    Session session = HibernateUtil.getSession();    Transaction tx = session.beginTransaction();    session.save(t);    tx.commit();    session.close();      }  @Override  public void update(T t) {    Session session = HibernateUtil.getSession();    Transaction tx = session.beginTransaction();    session.update(t);    tx.commit();    session.close();  }  @Override  public void delete(Serializable id) {    Session session = HibernateUtil.getSession();    T bean = findOne(id);    Transaction tx = session.beginTransaction();    session.delete(bean);    tx.commit();    session.close();  }  @Override  public T findOne(Serializable id) {    Session session = HibernateUtil.getSession();    return (T) session.get(clazz, id);  }}//BookDaoImpl package com.lyh.dao.impl;import com.lyh.dao.BookDao;import com.lyh.domain.Book;public class BookDaoImpl extends BaseDao<Book> implements BookDao {  }//CustomerDaoImpl.javapackage com.lyh.dao.impl;import java.util.List;import com.lyh.dao.CustomerDao;import com.lyh.domain.Customer;public class CustomerDaoImpl extends BaseDao<Customer> implements CustomerDao {  //  public CustomerDaoImpl(){//    super(Customer.class);//  }    public List<Customer> findCustomers(int startIndex, int offset) {      return null;  }}

 




原标题:Dao设计模型

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

real.de 旺季店铺优化攻略:产品数据优化+绩效提升:https://www.ikjzd.com/articles/135421
VOVA周报| 欧美热销品和市场搜索动态:https://www.ikjzd.com/articles/135422
国家发改委:中国即将成为全球最大的消费品零售市场:https://www.ikjzd.com/articles/135423
速卖通免运费如何设置?:https://www.ikjzd.com/articles/135424
如何获取Amazon choice标签?:https://www.ikjzd.com/articles/135425
防侵权预警159:立式排插在美国市场的外观专利情况:https://www.ikjzd.com/articles/135426
温州旧货市场有玻璃柜卖吗?:https://www.vstour.cn/a/411246.html
如何用摄影作品表现“芳草鲜美,落英缤纷”的:https://www.vstour.cn/a/411247.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流