JSP复习笔记——第10章 连接数据库 之 使用数据源

JDBC基本操作过程:
 打开数据库连接
 操作数据库
 关闭数据库


为了解决不必要的资源,使用数据源来减少数据库打开和关闭的操作
1、 通过Connection Pool 管理数据库连接
2、 通过DataSource去管理Connection Pool
3、 DataSource被JNDI Tree绑定

改如何在服务器上对DataSource进行配置
服务器:Tomcat5.x
Java代码
1.<Context path="/test" docBase="f:\testweb\"
2. debug="5" reloadable="true" crossContext="true">
3.
4. <Logger className="org.apache.catalina.logger.FileLogger"
5. prefix="localhost_MysqlTest_log." suffix=".txt"
6. timestamp="true"/>
7.
8. <Resource name="名字" auth="Container" type="javax.sql.DataSource"/>
9.
10. <ResourceParams name="名字">
11. <parameter>
12. <name>factory</name>
13. <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
14. </parameter>
15. <parameter>
16. <name>maxActive</name> // 最大连接数
17. <value>100</value>
18. </parameter>
19. <parameter>
20. <name>maxIdle</name> // 最大维持数
21. <value>30</value>
22. </parameter>
23. <parameter>
24. <name>maxWait</name> // 最大等待时间
25. <value>5000</value>
26. </parameter>
27. <parameter>
28. <name>username</name>
29. <value>用户名</value>
30. </parameter>
31. <parameter>
32. <name>password</name>
33. <value>密码</value>
34. </parameter>
35. <parameter>
36. <name>driverClassName</name>
37. <value>驱动程序</value>
38. </parameter>
39. <parameter>
40. <name>url</name>
41. <value>连接地址</value>
42. </parameter>
43. </ResourceParams>
44. </Context>
45.<Context path="/test" docBase="f:\testweb\"
46. debug="5" reloadable="true" crossContext="true">
47.
48.<Logger className="org.apache.catalina.logger.FileLogger"
49. prefix="localhost_MysqlTest_log." suffix=".txt"
50. timestamp="true"/>
51.
52.<Resource name="jdbc/sky" auth="Container" type="javax.sql.DataSource"/>
53.
54.<ResourceParams name="jdbc/sky">
55. <parameter>
56. <name>factory</name>
57. <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
58. </parameter>
59. <parameter>
60. <name>maxActive</name>
61. <value>100</value>
62. </parameter>
63. <parameter>
64. <name>maxIdle</name>
65. <value>30</value>
66. </parameter>
67. <parameter>
68. <name>maxWait</name>
69. <value>5000</value>
70. </parameter>
71. <parameter>
72. <name>username</name>
73. <value>scott</value>
74. </parameter>
75. <parameter>
76. <name>password</name>
77. <value>darkness</value>
78. </parameter>
79. <parameter>
80. <name>driverClassName</name>
81. <value>oracle.jdbc.driver.OracleDriver</value>
82. </parameter>
83. <parameter>
84. <name>url</name>
85. <value>jdbc:oracle:thin:@localhost:1521:sky</value>
86. </parameter>
87.</ResourceParams>
88.</Context>
<Context path="/test" docBase="f:\testweb\"
debug="5" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_MysqlTest_log." suffix=".txt"
timestamp="true"/>

<Resource name="名字" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="名字">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name> // 最大连接数
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name> // 最大维持数
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name> // 最大等待时间
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>用户名</value>
</parameter>
<parameter>
<name>password</name>
<value>密码</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>驱动程序</value>
</parameter>
<parameter>
<name>url</name>
<value>连接地址</value>
</parameter>
</ResourceParams>
</Context>
<Context path="/test" docBase="f:\testweb\"
debug="5" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_MysqlTest_log." suffix=".txt"
timestamp="true"/>

<Resource name="jdbc/sky" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/sky">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>password</name>
<value>darkness</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@localhost:1521:sky</value>
</parameter>
</ResourceParams>
</Context>

配置完成需要通过名称查找的方式,找到数据源

Java代码
1.<%@ page import="java.sql.*"%>
2.<%@ page import="javax.sql.*"%>
3.<%@ page import="javax.naming.*"%>
4.<%!
5. final String JNDINAME = "java:comp/env/jdbc/sky" ;
6.%>
7.<%
8. Connection conn = null ;
9. try {
10. // 初始化查找命名空间
11. Context ctx = new InitialContext() ;
12. // 找到DataSource
13. DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
14. conn = ds.getConnection() ;
15. } catch(Exception e) {
16. System.out.println(e) ;
17. }
18.%>
19.<%=conn%>
20.<%
21. // 将连接重新放回到池中
22. conn.close() ;
23.%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值