7 个解决方案
#1
没人理会?
#2
首先你要了解一下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对象
#3
javax.naming.Context ctx =
(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
(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
#4
学习下
#5
如wingtrace所说的流程,到底它是应该发生在同一个项目中的每个需要使用数据库的servlet的每个生存周期一次,还是要这个项目使用spring框架来创建维护一个统一的datasource对象,每次项目加载就连到数据库,项目停止再关闭数据库,整个过程只有travel这个流程一次?
case:
项目AApp有不同子服务servlet a, b, c;他们都要访问数据库
如果abc分别在起内部声明datasource对象,初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接,那么是不是整个AApp将有三个datasource链接,那么tomcat是同一将这三个链接同时放入pool里面并加以管理对吗?
可不可以这个AApp的生存周期中只维护一个datasource对象呢?
case:
项目AApp有不同子服务servlet a, b, c;他们都要访问数据库
如果abc分别在起内部声明datasource对象,初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接,那么是不是整个AApp将有三个datasource链接,那么tomcat是同一将这三个链接同时放入pool里面并加以管理对吗?
可不可以这个AApp的生存周期中只维护一个datasource对象呢?
#6
1, “初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接”
这不像是一种合理的做法。推荐的做法是“尽可能晚地占用资源,尽可能早地释放资源”
在需要正式访问数据库的前一刻取得Connection实例,访问完马上Close。
2, Datasource和Connection是两个概念,不要混为一谈。
一般来说Datasource的实例只有一个,生命周期由容器维护,通过JNDI取得。
Connection对象可以有多个,生命周期由容器维护(通过Datasource),
但也可以自行编码维护(不使用Datasource)。
一时之间恐怕不能理解太多,如果只是想知道怎么写代码,
先看看别人的代码怎么写的就可以了,以后在实践中慢慢领悟。
这不像是一种合理的做法。推荐的做法是“尽可能晚地占用资源,尽可能早地释放资源”
在需要正式访问数据库的前一刻取得Connection实例,访问完马上Close。
2, Datasource和Connection是两个概念,不要混为一谈。
一般来说Datasource的实例只有一个,生命周期由容器维护,通过JNDI取得。
Connection对象可以有多个,生命周期由容器维护(通过Datasource),
但也可以自行编码维护(不使用Datasource)。
一时之间恐怕不能理解太多,如果只是想知道怎么写代码,
先看看别人的代码怎么写的就可以了,以后在实践中慢慢领悟。
#7
可能为了弄清楚这个问题,你需要先学习以下两个基础知识:
·JNDI
·连接池
·JNDI
·连接池
#1
没人理会?
#2
首先你要了解一下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对象
#3
javax.naming.Context ctx =
(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
(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
#4
学习下
#5
如wingtrace所说的流程,到底它是应该发生在同一个项目中的每个需要使用数据库的servlet的每个生存周期一次,还是要这个项目使用spring框架来创建维护一个统一的datasource对象,每次项目加载就连到数据库,项目停止再关闭数据库,整个过程只有travel这个流程一次?
case:
项目AApp有不同子服务servlet a, b, c;他们都要访问数据库
如果abc分别在起内部声明datasource对象,初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接,那么是不是整个AApp将有三个datasource链接,那么tomcat是同一将这三个链接同时放入pool里面并加以管理对吗?
可不可以这个AApp的生存周期中只维护一个datasource对象呢?
case:
项目AApp有不同子服务servlet a, b, c;他们都要访问数据库
如果abc分别在起内部声明datasource对象,初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接,那么是不是整个AApp将有三个datasource链接,那么tomcat是同一将这三个链接同时放入pool里面并加以管理对吗?
可不可以这个AApp的生存周期中只维护一个datasource对象呢?
#6
1, “初始化servlet的时候初始化数据库链接,销毁servlet的时候关闭数据库连接”
这不像是一种合理的做法。推荐的做法是“尽可能晚地占用资源,尽可能早地释放资源”
在需要正式访问数据库的前一刻取得Connection实例,访问完马上Close。
2, Datasource和Connection是两个概念,不要混为一谈。
一般来说Datasource的实例只有一个,生命周期由容器维护,通过JNDI取得。
Connection对象可以有多个,生命周期由容器维护(通过Datasource),
但也可以自行编码维护(不使用Datasource)。
一时之间恐怕不能理解太多,如果只是想知道怎么写代码,
先看看别人的代码怎么写的就可以了,以后在实践中慢慢领悟。
这不像是一种合理的做法。推荐的做法是“尽可能晚地占用资源,尽可能早地释放资源”
在需要正式访问数据库的前一刻取得Connection实例,访问完马上Close。
2, Datasource和Connection是两个概念,不要混为一谈。
一般来说Datasource的实例只有一个,生命周期由容器维护,通过JNDI取得。
Connection对象可以有多个,生命周期由容器维护(通过Datasource),
但也可以自行编码维护(不使用Datasource)。
一时之间恐怕不能理解太多,如果只是想知道怎么写代码,
先看看别人的代码怎么写的就可以了,以后在实践中慢慢领悟。
#7
可能为了弄清楚这个问题,你需要先学习以下两个基础知识:
·JNDI
·连接池
·JNDI
·连接池