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

  1. package com.stono.gentest;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class StoryTeller {
  7.  
  8. public static void main(String[] args) {
  9. List<Minstrel> story = StoryTemplate.getStory("select",
  10. new StoryI<Minstrel>() {
  11. @Override
  12. public Minstrel getHero(String name) {
  13. return new Minstrel(name);
  14. }
  15. }, 1);
  16. for (Minstrel minstrel : story) {
  17. System.out.println(minstrel.getName());
  18. }
  19. }
  20. }
  21.  
  22. class Minstrel {
  23. private String name;
  24.  
  25. public Minstrel(String name) {
  26. this.name = name;
  27. }
  28.  
  29. public String getName() {
  30. return name;
  31. }
  32.  
  33. }
  34.  
  35. // ==================下面为伪框架部分,以上为伪客户部分;=====================
  36. // 模版方法按照接口的规则进行泛型对象的创建;按照条件进行组装的逻辑不需要客户端写;
  37. class StoryTemplate {
  38. public static <T> List<T> getStory(String str, StoryI<T> t, Object... o) {
  39. List<T> list = new ArrayList<T>();
  40. if ("select".equals(str)) {// 类似于jdbc的查询方法;
  41. String[] strs = { "a", "b" };
  42. for (String string : strs) {
  43. list.add(t.getHero(string));
  44. }
  45. }
  46. return list;
  47. }
  48. }
  49.  
  50. interface StoryI<T> {
  51. T getHero(String name);// 传入一个参数String,保证返回一个泛型对象,组装逻辑由客户端实现;
  52. }

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

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

    Unit06: Spring对JDBC的 整合支持 . Spring+JDBC Template .Spring异常处理 1. springmvc提供的异常处理机制 我们可以将异常抛给spring框架 ...

  2. spring+jdbc+template+transaction实现

    使用spring和jdbc模板事务实现 1.创建实体类: Role package com.wbg.sjt.entity; public class Role { private int id; pr ...

  3. spring JDBC API 中存在哪些类?

    JdbcTemplate SimpleJdbcTemplate NamedParameterJdbcTemplate SimpleJdbcInsert SimpleJdbcCall

  4. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. 【Java 泛型】之 <? super T> 和<? extends T> 中 super ,extends如何理解?有何异同?

    Java 泛型 <? super T> 和<? extendsT>中 super ,extends怎么 理解?有何不同? 简介 前两篇文章介绍了泛型的基本用法.类型擦除以及泛型 ...

  6. ref:Spring JDBC框架

    ref:https://blog.csdn.net/u011054333/article/details/54772491 Spring JDBC简介 先来看看一个JDBC的例子.我们可以看到为了执行 ...

  7. jdbc框架有很多,包括spring jdbc

    1.由于jdbc连接的繁琐性,故很多公司封装了jdbc框架,比如spring jdbc 2.比如spring jdbc框架中,用jdbctemplate, 通过jdbcTemplate 提供 int ...

  8. Spring JDBC Framework

    引自 :学习经典:Spring JDBC Framework 这里记录我对Spring JDBC框架的学习.由于Spring JDBC和我之前做的工作有很多共同之处,学习经典Framework的设计, ...

  9. 【Spring JDBC】NamedParameterJdbcTemplate(四)

    一.什么是具名参数 在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制.定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定.在 Spring JDBC ...

随机推荐

  1. Allegro PCB -通孔焊盘制作 及Flash制作

    通孔焊盘制作,比如插针封装 数值确定: mil单位                                                                           ...

  2. oracle 主键自动增长

    oracle 主键自动增长 2009-12-11 16:07:00|  分类: 数据库资料|字号 订阅     这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create tabl ...

  3. StringBuffer与StringBuilder的作用与区别

    来自为知笔记(Wiz)

  4. 数据降维技术(2)—奇异值分解(SVD)

    上一篇文章讲了PCA的数据原理,明白了PCA主要的思想及使用PCA做数据降维的步骤,本文我们详细探讨下另一种数据降维技术—奇异值分解(SVD). 在介绍奇异值分解前,先谈谈这个比较奇怪的名字:奇异值分 ...

  5. Ubuntu和win10双系统Grup无法引导解决方案

    通常我们经常安装双系统, 但是有时候安装完系统无法正常引导, 以下就说明Ubuntu和win10双系统, win10在grub界面不断循环的解决方案 直接在win10启动项目上按e进入编辑模式 在文档 ...

  6. Spring MVC Json数据传递

    json是一种常见的传递格式,是一种键值对应的格式.并且数据大小会比较小,方便传递.所以在开发中经常会用到json. 首先看一下json的格式: {key1:value1,key2:value2} 每 ...

  7. 负载均衡 LVS+Keepalived

    系统  CentOS 5.6 X64 物理机 IP 10.10.10.104 Xen : 三台 CentOS 5.8 ip为: 10.10.10.106        10.10.10.107     ...

  8. jqGrid简述

    转自:http://www.blogjava.net/ilovebabyfat/archive/2012/04/06/373456.html jqGrid学习之 ------------- 安装 1. ...

  9. 推荐几个web中常用js图表插件

    作者:zccst 我自己用过fusioncharts和highchart. jQuery插件有: TufteGraph flot js charts jqchart elycharts jquery ...

  10. readln

    常用于暂停程序的运行!可以不带参数,read必须带参数; 使用原则: 1.没有特殊需要,一个程序中避免同时使用read 和readln: 2.尽量使用readln语句来输入数据,一个数据行对应一个re ...