Spring JDBC和连接对象

Spring JDBC和连接对象,spring,spring-mvc,spring-data,dbcp,bonecp,c3p0,jndi,Spring,Spring Mvc,Spring Data,Dbcp,Bonecp,C3p0,Jndi,我正在使用专有api构建一个应用程序。要连接到数据库,我使用一个返回连接对象的方法,然后在该连接上调用适当的方法来运行数据库查询,例如 Connection conn = JdbcServiceFactory.getInstance().getDefaultDatabase().getConnectionManager().getConnection(); PreparedStatement ps = conn.prepareStatement("select * from test");

我正在使用专有api构建一个应用程序。要连接到数据库,我使用一个返回连接对象的方法,然后在该连接上调用适当的方法来运行数据库查询,例如

Connection conn = JdbcServiceFactory.getInstance().getDefaultDatabase().getConnectionManager().getConnection();

PreparedStatement ps = conn.prepareStatement("select * from test");

如果我选择在我的下一个项目中使用SpringMVC3,我必须做些什么来设置数据库连接?从我在文档中看到的情况来看,我已经在容器中使用了datasource标记,并传递了URL、用户名和密码。如图所示,我目前不必这样做来获得连接。

最后,您的专有API必须使用一些凭据访问某些数据库(在某些服务器上可用)。你就是看不到这一点。在Spring中,您必须首先定义一些
数据源
。可以使用现有的库,如,也可以使用应用程序服务器通过提供的库。只要它们实现了
DataSource
接口,您选择的方法就无关紧要了。太多了,无法详细解释每一个

一旦您设置了
DataSource
bean,我强烈建议使用简化JDBC代码,例如:

 List<Map<String,Object>> res = jdbcTemplate.queryForList("select * from test");
现在只需创建一个
LegacyDataSourceAdapter
(可能作为Springbean)的实例,并将其传递给
JdbcTemplate
、Hibernate、myBatis


顺便说一句,这里有一些糟糕API设计的一流示例:

Connection conn = JdbcServiceFactory.
  getInstance().
  getDefaultDatabase().
  getConnectionManager().
  getConnection();

谢谢你的回答。问题是凭据对我是隐藏的,我不确定使用什么来获取连接。我想知道是否有一种方法可以在不使用凭据和连接对象的情况下使用您提到的现有库,但似乎没有。谢谢你的帮助。@Robert:事实上,这是可能的,请看我的更新。您只需使用
DataSource
adapter包装您的旧库。您帮了我很大的忙。祝你有美好的一天。谢谢
Connection conn = JdbcServiceFactory.
  getInstance().
  getDefaultDatabase().
  getConnectionManager().
  getConnection();