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);
    }
}
经验分享 程序员 微信小程序 职场和发展