※ 引述《lueichun (no anonymous)》之铭言:
: 如果现在想要在java程式连线到数据库
: 除了使用JDBC API
: 也可以设定连线池取得连线
: 我的理解是先在context.xml加入这几行设定:
: https://www.dropbox.com/s/x1t2l71imsy53qa/%E6%93%B7%E5%8F%96103.png?dl=0
: 用来设定连线到数据库的资讯与连线池的设定
: 但是我不是很清楚在这边设定数据库连线资讯
: 跟用JDBC API的方式来连线差在哪里(是因为效能的关系吗)
根据小弟的粗浅认知,好处大概是:
1. ap server帮你管理好db connection数量、释放资源、错误处理等等
2. 未来若是布署环境有变动,例如更换ap server,只要在ap server端改设定
可以"尽量"不去动到程式码
**暗黑效果**
3. 有些ap server的设定档藏得很好,好到你只会想用管理接口来修改设定,比起
用properties的方式安全点
: 而且我也不是很懂连接数据库的资讯跟连线池的设定
: 为何可以被包在同一个tag里,一起做设定
: 因为数据库跟连线池应该是两个分开的部分
: 然后设定name="jdbc/xxxx"的部分,google到的说法是要设定jndi name
: jndi name是可以理解成:
: java程式为取得连线池的连线以连接数据库
jndi是存取资源的一种统一接口,不仅仅只有存取数据库连线的功能而已
只要server端提供jndi的实作,都可以透过jndi来存取,例如AD Server等
: 所以程式必须利用jndi name找到连线池
: 以取得连线吗
你要在code里面用jdbc硬干也可以,只是这样就没了使用jndi的优点
: 这样的话以下在web.xml里的设定:
: https://www.dropbox.com/s/u82pyuph48ye58i/%E5%9C%96%E7%89%871.png?dl=0
: 这里又重复设定一次jndi name
: 我就不懂了,不懂这里再打一次的目的是什么
参考你用的ap server所提供的手册
: 最后在java程式里面
: 产生dtasource物件并取得连线
: code长这样:
: https://dl.dropboxusercontent.com/u/63402326/%E5%9C%96%E7%89%872.png
: datasource物件之后会call getConnection取得连线
: 只是我觉得一个datasource不是表示一个数据库吗
DataSource是资料来源的泛称,可以是数据库,也可以是其他资料来源
: 数据库内含取得连线池连线的方法(getConnection)
: 感觉不太自然,毕竟数据库跟连线池是两个分开的东西
是说从数据库给的api来取connection pool以后再拿到connection逆?
这样干的好处大概是connection取得跟释放有connection pool帮忙管
不过最好了解一下相关设定(例如怎么设定connection数量)
: 希望有大大可以解惑(套色部分),谢谢