java - Spring Web 开发中的通用 DAO

标签 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);

最佳答案

使用 Spring-Data-JPA 避免简单数据库 CRUD 操作的样板代码。

您可以定义通用接口(interface):

@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> {

}

关于java - Spring Web 开发中的通用 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29874674/

相关文章:

java - 如何将渲染的 jsp View (html)作为 json 字段返回?

java - spring 引导 Controller 未注册;得到 404

java - 从 Spring MVC 上的另一个模块访问静态资源

java - Java7中方法句柄的用途是什么?

java - 如何在未知 XML 标签上失败?

java - Liquibase 找不到 Oracle 的 ChangeLogHistoryService

java - 不满意的依赖异常 : Error creating bean with name 'HController' caused by NoSuchBeanDefinitionException:

java - 使用 Spring JDBC 获取 SQL 插入后生成的 key

java - 在遗留 Java webapp 中的 web.xml 文件之间切换

java - 将对象列表从父类转换为各个子类的正确方法