首先你要了解一下JNDI,因为tomcat的datasource服务是通过JNDI来外提供的。
tomcat会自动维护一个Connection对象池,你只需要取得或关闭Connection即可。一般的使用流程:
1,为Tomcat配置datasource
2,将tomcat的datasource映射到webapp
(或者直接为webapp配置datasource)
3,通过JNDI查找datasource取回datasource实例
4,通过datasource实例取得Connection对象
5,JDBC操作
6,关闭Connection对象
tomcat会自动维护一个Connection对象池,你只需要取得或关闭Connection即可。一般的使用流程:
1,为Tomcat配置datasource
2,将tomcat的datasource映射到webapp
(或者直接为webapp配置datasource)
3,通过JNDI查找datasource取回datasource实例
4,通过datasource实例取得Connection对象
5,JDBC操作
6,关闭Connection对象
解决方案 »
- struts2中,在tomcat启动时候总是出现严重: “严重: Exception starting filter str”错误,求高手帮忙解答下是怎么原因?
- 程序老是报错:No getter method for property: "password2" of bean
- 用户、用户组、角色、权限关系设计
- 急需推荐关于JAVAEE 中Struts2 Hibernate Spring的书
- 类似动态获取得问题
- 为何我在“命令提示符”窗口下能正确连接SQL Server 2005数据库,但在Eclipse3.0窗口中却不能?
- 我在Session Bean中调用实体Bean却报错,急!
- 在weblogic7.0中jdk是1.3而要使用DataSource是JDK1.4这样不是就要不兼容了吗?
- Array data type in web service
- ejb设计的问题
- 有关Tomcat
- 十万火急,请问jboss如果默认安装的话,进入管理界面的用户名及密码是什么
(Context) new InitialContext().lookup( "java:/comp/env" );DataSource ds = null;
Connection conn = null; ds = (DataSource)ctx.lookup( "Your_Datasource_name" );
conn = ds.getConnection();//and some Exception handle coding
项目AApp有不同子服务servlet a, b, c;他们都要访问数据库
如果abc分别在起内部声明datasource对象,初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接,那么是不是整个AApp将有三个datasource链接,那么tomcat是同一将这三个链接同时放入pool里面并加以管理对吗?
可不可以这个AApp的生存周期中只维护一个datasource对象呢?
这不像是一种合理的做法。推荐的做法是“尽可能晚地占用资源,尽可能早地释放资源”
在需要正式访问数据库的前一刻取得Connection实例,访问完马上Close。2, Datasource和Connection是两个概念,不要混为一谈。
一般来说Datasource的实例只有一个,生命周期由容器维护,通过JNDI取得。
Connection对象可以有多个,生命周期由容器维护(通过Datasource),
但也可以自行编码维护(不使用Datasource)。一时之间恐怕不能理解太多,如果只是想知道怎么写代码,
先看看别人的代码怎么写的就可以了,以后在实践中慢慢领悟。
·JNDI
·连接池