这个问题本来是SO上的一个问答:http://stackoverflow.com/questions/15198319/why-do-we-use-a-datasource-instead-of-a-drivermanager
大致意思是使用DataSource有更好的可扩展性并且更易于维护。
使用DataSource你不需要每次连接都要配置一大段的用户名密码端口,然后才能获得连接去使用数据库。DS方式的话只需要初始化的时候配置一次,每次使用直接拿出连接用就好了。
关于可扩展性,就是DataSource提供连接池,而DM不提供。
JDK8里的描述:
A factory for connections to the physical data source that this DataSource object represents. An alternative to the DriverManager facility, a DataSource object is the preferred means of getting a connection. An object that implements the DataSource interface will typically be registered with a naming service based on the Java™ Naming and Directory (JNDI) API.
先看下原来DM的用法(找了个实习生写的代码,顺便帮他review):