Java基础Demo -- 简易版JdbcTemplate
简易版的Spring的JdbcTemplate的小示例,就是个意思,表达下泛型方法的写法
import java.lang.reflect.*; import java.util.*; class Person { String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //包含一个带参的构造器和一个不带参的构造器 public Person(String name, int age) { this.name = name; this.age = age; } public Person() { } public String toString(){ return "{ name:"+name+", age:"+age+" }"; } } /** * 模仿Spring的JdbcTemplate的简易版本 */ class JdbcTemplateSimple { /* * 这里map的v用的是Object,如果单单从暴漏的api get() 和 save() 方法来看,不会有问题 * 因为保存save()时存入的一定是T, get()取出时也一定是T * 但是如果通过反射,获得这个字段,并存入任意对象时,此字段就变得有风险 */ private static Map<Integer,Object> maps = new HashMap<>(); public static <T> T get(Integer id){ //获取对象 return (T)maps.get(id); } public static <T> void save(Integer index, T entity){ //保存对象 maps.put(index,entity); } } //测试 public class Test { public static void main(String[] args) throws Exception{ Person person = new Person("dwei",15); JdbcTemplateSimple.save(1,person); //保存一个实体对象person Person result = JdbcTemplateSimple.get(1); //获取一个实体对象person 不用类型强转哦! System.out.println(result); } }