Spring Web开发中的通用DAO

时间:2015-04-26 06:50:09

标签: java spring spring-mvc dao genericdao

如何在 DAO图层中将这些代码设置为 GENERIC ,以便我避免代码冗余并在多种情况下有效使用一组简单的代码使用Spring Web开发?

ItemInfoDao.xml

<select id = "getItem1" resultMap="resultItem1">
    SELECT item_id, name, area FROM item1
</select> 
<insert id="insertItem1">
    INSERT INTO item1 (item_id, name, area) 
         VALUES (#{itemId}, #{itemName}, #{itemArea})
</insert>
<select id = "getItem2" resultMap="resultItem2">
    SELECT item_id, name, area FROM item2
</select>
<insert id="insertItem2">
    INSERT INTO item2 (item_id, name, area) 
         VALUES (#{itemId}, #{itemName}, #{itemArea})
</insert>

ItemInfoDao.java

List<Package> getItem1(Package package);

void insertItem1(Package package );

List<Box> getItem2(Box box);

void insertItem2(Box box);

1 个答案:

答案 0 :(得分:1)

使用Spring-Data-JPA来避免简单DB CRUD操作的样板代码。

您可以定义通用接口:

@NoRepositoryBean
public interface ItemDao<T> extends JpaRepository<T, Long> {
    T getItem(T input);

    void insertItem(T input);
}

Package的具体实现将是:

public interface PackageDao extends ItemDao<Package> {

}

Box的具体实现将是:

public interface BoxDao extends ItemDao<Box> {

}