数据源配置到库与不配置到库的区别?求解

pangjingji 2012-08-27 11:41:18
配置数据源的时候一般我们会把数据源配置到数据库(一个库)上面去。
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;

public class DBUtils {
private static final Logger LOGGER = Logger.getLogger(DBUtils.class);

/**
* 得到数据库连接对象,如果异常返回null
*/
public static Connection getMysqlConnection() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:mysql://localhost:3306/test"); //此处我将数据源的链接配置到test库
dataSource.setPassword("test");
dataSource.setUsername("root");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
Connection con=null;
try {
con = dataSource.getConnection();
return con;
} catch (SQLException e) {
//LOGGER.error("class: DBUtils method:getMysqlConnection SQLException"+e);
e.printStackTrace();
return null;
}
}

/**
* 释放数据库连接等对象
*/
public static void releaseConnection(Statement st,Connection con){
if(null!=st){
try {
st.close();
} catch (SQLException e) {
LOGGER.error("class:DBUtils method:releaseConnection,Statement close SQLException");
}
}
if(null!=con){
try {
con.close();
} catch (SQLException e) {
LOGGER.error("class:DBUtils method:releaseConnection,Connection close SQLException");
}
}
}

}

在上面的源代码中我将数据源连接到一个test库上去,但其实我也可以:
dataSource.setUrl("jdbc:mysql://localhost:3306/")这样写,这样在后面的代码中,也可以访问test库只是需要在sql中多加一个test.表名,这样的方式去访问,现在对数据源这个概念有点迷惑了,数据源不是对应一个库,而是一个数据库服务,可以对应多个库,求解,希望高人指点,数据源的概念,不胜感激。
...全文
53 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
scbb 2012-08-28
  • 打赏
  • 举报
回复
搜出来得结果很有道理。

数据库和数据源
数据库是一个数据的工厂,可以理解成产品的生产厂家,

如果你从厂家租用东西,厂家就马上找人开工,启动设备,等生产好之后,发货给你。当然整个生产过程需要比较长的时间。

数据源,是一个产品代理仓库,代理那里原来就有一些生产好的产品了,所以你从代理获取产品,可以马上就得到。当然代理的仓库也是有大小限制的。

无论哪种情况,你用完了某个产品,记得要归还哦。

还有如果你以前开发过微软的,比如VB等。
你的数据库是ACCESS
而数据源是你在ODBC里配置的。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧