Java泛型在spring jdbc template中的类似应用

泛型的使用保证返回的对象类型的正确;

package com.stono.gentest;

import java.util.ArrayList;
import java.util.List;

public class StoryTeller {

    public static void main(String[] args) {
        List<Minstrel> story = StoryTemplate.getStory("select",
                new StoryI<Minstrel>() {
                    @Override
                    public Minstrel getHero(String name) {
                        return new Minstrel(name);
                    }
                }, 1);
        for (Minstrel minstrel : story) {
            System.out.println(minstrel.getName());
        }
    }
}

class Minstrel {
    private String name;

    public Minstrel(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

}

// ==================下面为伪框架部分,以上为伪客户部分;=====================
// 模版方法按照接口的规则进行泛型对象的创建;按照条件进行组装的逻辑不需要客户端写;
class StoryTemplate {
    public static <T> List<T> getStory(String str, StoryI<T> t, Object... o) {
        List<T> list = new ArrayList<T>();
        if ("select".equals(str)) {// 类似于jdbc的查询方法;
            String[] strs = { "a", "b" };
            for (String string : strs) {
                list.add(t.getHero(string));
            }
        }
        return list;
    }
}

interface StoryI<T> {
    T getHero(String name);// 传入一个参数String,保证返回一个泛型对象,组装逻辑由客户端实现;
}
时间: 2024-10-11 08:48:55

Java泛型在spring jdbc template中的类似应用的相关文章

Unit06: Spring对JDBC的 整合支持 、 Spring+JDBC Template、Spring异常处理

Unit06: Spring对JDBC的 整合支持 . Spring+JDBC Template .Spring异常处理 1. springmvc提供的异常处理机制 我们可以将异常抛给spring框架,让spring来帮我们处理异常. (1)使用简单异常处理器 step1. 配置简单异常处理器. step2. 添加对应的异常处理页面. 注:该方式只适合处理简单异常的处理,如果要对异常做复杂处理,比如 记录日志等,则不合适了. (2)使用@ExceptionHandler注解 step1. 在处理

Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)

使用spring的jdbcTemplate-----使用具名参数 在JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的位置发生变化,必须改变参数的绑定,在Spring JDBC中,绑定SQL参数的另一种选择是使用具名参数,SQL具名参数是按照名称绑定,而不是位置绑定. 什么是具名参数? 具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 具名参数只在 NamedP

Spring+JDBC Template应用步骤

1.应用步骤介绍 基于SpringMVC和JDBC技术开发的主要步骤如下 创建工程,搭建SpringMVC和JDBC技术环境 基于JdbcTemplate实现DAO组件 编写和配置SpringMVC的主要组件,例如Controller,HandlerMapping,ViewResolver等 编写JSP视图组件,利用标签和表达式显示模型数据 测试程序 2.如何搭建SpringMVC和JDBC技术环境? 创建一个Web工程 添加JDBC相关技术环境 引入数据库驱动包 引入dbcp连接池开发包 添加

spring+jdbc+template+transaction实现

使用spring和jdbc模板事务实现 1.创建实体类: Role package com.wbg.sjt.entity; public class Role { private int id; private String roleName; private String note; @Override public String toString() { return "Role{" + "id=" + id + ", roleName='"

Spring JDBC详解

<Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.概述 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1)core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedP

Java泛型的协变

在上篇<Java泛型的基本使用>这篇文章中遗留下面问题,即将子类型也能加入到父类型的泛型中.要实现这样的功能必须借助于协变. 实验准备 如今在上篇文章展示的Decorator类型的基础上,添加一些代码,如代码清单1所看到的. 代码清单1 /** * * 描 述:Exp2使用br/> * 作 者:jiaan.gja<br/> * 历 史: (版本号) 作者 时间 凝视 <br/> * @param itemList */ public void doDecorate

我所认识的java泛型(主要讨论通配符的使用)

在使用java泛型的时候,经常会遇到类似的声明<?extends XXX>或者<? super XXX>,XXX代表一个类或接口.这到底是什么意思呢?今天看了些书有了一点儿体会,不知恰当与否,忘讨论之. 首先需要清楚一个事实,在java中上转型是安全的,下转型是不安全的.例如:String类是Object类的子类,我们可以将String强转为Object但是却不能将Object类强转为一个String,这很明显,因为在String类中包含了Object类没有的方法: 再来看一个事实

Spring之JDBC Template

时间:2017-2-5 18:16 --Spring对不同持久化技术的支持 Spring为各种支持的持久化技术都提供了简单操作的模板和回调. ORM持久化技术:    JDBC:        org.springframework.jdbc.core.JdbcTemplate Hibernate3.0:        org.springframework.orm.hibernate3.HibernateTemplate IBatis(MyBatis):        org.springfr

[Java面试五]Spring总结以及在面试中的一些问题.

1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架 DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件 面试题: IoC 和 DI的区别? IoC 控制反转,指将对象的创建权,反