请问JAVA连接数据库为什么要配置数据源,有什么好处?

ybyb14 2008-07-13 12:01:30
以前连SQL SERVER2000的时候要在控制面板中配置数据库,要不然就连不上数据库.
后来一直使用My sql就没有再使用过数据源了.
昨天看别人做程序,看到在TOMCAT的WEB.XML文件中配置数据源,不知道这样做的意义何在?有什么好处?
本人才疏学浅,望高手指点!谢谢!
...全文
2334 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangshaolei1 2010-01-05
  • 打赏
  • 举报
回复
那我有新的问题,数据源和连接池有什么关系,区别呢?
ybyb14 2008-07-13
  • 打赏
  • 举报
回复
马甲一样有分
sagezk 2008-07-13
  • 打赏
  • 举报
回复
首先你在控制面板中配置的数据源和在 Tomcat 的 server.xml 以及 Web 应用程序中的 web.xml 配置数据源没多大关系。
其次如下:
[Quote=引用 3 楼 java2000_net 的回复:]
主要是方便管理
1 你肯定要链接数据库
2 那么你肯定要用户名和密码
3 正式的数据库和应用服务器应该是单独的人员管理,而不是开发人员
4 密码会定期修改
5 如果链接数据库是各自书写代码和配置,则运行环境的密码修改将会是一个噩梦,一不小心就忘记一个
6 所以,大家全部到一个数据源那里获取连接。管理员只需要修改数据源的配置,而无需修改应用的配置
7 如果数据库的地址变更,则同样不会影响到应用,也只是修改数据源
8 开发人员无需知道正式数据库的密码
[/Quote]
  • 打赏
  • 举报
回复
在控制面板那里配置数据源是采用 ODBC 的方式,这种是 JDBC 驱动程序的第一种类型。
这种驱动的方式是通过 ODBC 驱动程序与数据库打交道,而我们在 Java 程序中再使用
JDBC/ODBC 桥是将 JDBC 程序翻译成 ODBC 认识的东西。

ODBC 数据源的方式是一种很古老的方式,速度不用去说了(因为通过桥的转换),现在
一般很少使用了。当然了,如果某个数据库没有提供 JDBC 驱动程序,而只提供了 ODBC
驱动的话,那还是可以使用这种方式的,比如 Access。

而后面说到的在 web.xml 中配置的数据源与之前的 ODBC 数据源不是同一个概念,前者
是 JDBC 规范中的接口,全称为 javax.sql.DataSource,而后者可以称之为一种 ODBC 驱
动程序


据 JDBC 规范所称,DataSource 是获得数据库连接对象 Connection 的首选方法,因为
DataSource 一般都绑定在 JNDI 上,在代码中只通过 JNDI 的名称就可以获得该对这个对
象,并且通过这个对象可以直接获得数据库连接。而这个名字就是在 web.xml 中配置的
<res-ref-name> 中的名字,web.xml 中只是引用一下资源,在服务器上还得配置具体的参
数,如 Tomcat 中是在 server.xml 中配置一下。这个 DataSource 是由 JDBC 驱动实现
者实现的,在 Tomcat 中是使用 JNDI 来进行管理的,可以对其进行具体的配置,比如:
连接池的最大、最小数量、超时时间等参数,这些是由 Tomcat 来管理的。

DataSource 可以绑定在 JNDI 中只是一种方式,它还可以用于连接池的实现,比如:在
C3P0 中也实现并扩展了 DataSource,用于管理数据库的连接对象。实际上 Tomcat JNDI
上的数据源在内部也是采用 DBCP 的 DataSource 实现的。

DataSource 在 JDBC 2.0 规范中作为可选的,在 3.0 中正式地纳入到 JDBC 规范中,下面
这个是 JDBC 4.0 规范的下载地址,里面对 DataSource 有详细的描述,有兴趣的话可以去
看看:

http://jcp.org/aboutJava/communityprocess/final/jsr221/index.html
tang3dashu 2008-07-13
  • 打赏
  • 举报
回复


1 在java程序中必须要配置下数据源 因为你的web容器里必须加载你的数据源。(可以是全局的,也可以是单独的数据源)
2 数据源创建成功侯其实也就成为了一个连接池,他可以很方便的关类web用户访问数据库的连接问题。不过也有他自己的缺点。
3 比如还有的报表工具的时候,他也需要配置数据源,来获得数据库的连接。
jdlsfl 2008-07-13
  • 打赏
  • 举报
回复
数据库连接有通过jdbc odbc连接
也可以jdbc直接连接
tteesstt 2008-07-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qingbt 的回复:]
目前的数据源都是基于数据库连接池技术的,通过连接池连接数据库效率更高
[/Quote]

同意
老紫竹 2008-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Mailbomb 的回复:]
我觉得还是直接连的好,效率要高的,去下个专门的SQL SERVER的JDBC驱动
[/Quote]

通过数据源,效率没有损失。可以起看看连接池的代码,她只修改了一点点代码而已。
qingbt 2008-07-13
  • 打赏
  • 举报
回复
目前的数据源都是基于数据库连接池技术的,通过连接池连接数据库效率更高
网络咖啡 2008-07-13
  • 打赏
  • 举报
回复
我觉得还是直接连的好,效率要高的,去下个专门的SQL SERVER的JDBC驱动
小雨转晴 2008-07-13
  • 打赏
  • 举报
回复
呵呵 学习啦 感谢lz的提问
chinaboy2005 2008-07-13
  • 打赏
  • 举报
回复
用连接池更有效!~
ybyb14 2008-07-13
  • 打赏
  • 举报
回复
谢谢各位!
老紫竹 2008-07-13
  • 打赏
  • 举报
回复
主要是方便管理
1 你肯定要链接数据库
2 那么你肯定要用户名和密码
3 正式的数据库和应用服务器应该是单独的人员管理,而不是开发人员
4 密码会定期修改
5 如果链接数据库是各自书写代码和配置,则运行环境的密码修改将会是一个噩梦,一不小心就忘记一个
6 所以,大家全部到一个数据源那里获取连接。管理员只需要修改数据源的配置,而无需修改应用的配置
7 如果数据库的地址变更,则同样不会影响到应用,也只是修改数据源
8 开发人员无需知道正式数据库的密码

OVER

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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