彻底理解jdbc为什么用反射创建驱动程序对象

1.class.forName(mysql),这样更换数据库时,不需要更改程序代码,程序不需要重新编译就能运行。

因为反射是动态编译的,程序运行期间生成指定类的对象,

这样就可以程序运行期间生成不同的数据库驱动程序对象。省去了固定写死一个数据库驱动对象(通过new 构造函数的方法),造成每更换一个数据库,要重新编译代码的问题。

2.ioc容器中生成对象时,也是根据xml配置信息中的类型,反射生成对象的。并把这些对象存储在hashmap中,供程序调用的

3.hibernate/mybatis这种持久层框架中,进行数据持久化时,通过反射生成sql语句

原文地址:https://www.cnblogs.com/panxuejun/p/5867008.html