连接池的简单原理就是将数据库连接对象储存到集合中.
1.tomcat管理界面的配置,去官网找到tomcat管理包,将apache-tomcat- 5.5.23 -admin.zip解压,将解压后的目录拷贝到tomcat相应的目录下(把它copy到apache-tomcat- 5.5.25 /server/webapps/目录下)
2. 配置用户,编辑TOMCAT-HOME/conf/tomcat-users.xml文件,加入如下配置:
<user username="admin" password="admin" roles="admin,manager"/> |
3.
将数据库(mysql)的jdbc驱动程序拷贝到TOMCAT-HOME/common/lib下
访问管理界面,如:http://localhost:8080/admin http://localhost:8080/manager
4.
选择Resources----àdatasource--àcreate new Datasouce
a) 提交后在apache-tomcat- 5.5.25 /conf/server.xml文件里多了的数据连接代码copy到context.xml文件里,然后把context.xml文件copy到项目的WebRoot/META-INF目录下
b) 具体的参数说明
i. JNDI Name:注册到JNDI树上的名称
ii. Data Source URL:连接数据库的URL
iii. JDBC Driver Class:jdbc数据库驱动的名称
iv. User Name:访问数据库的用户名称
v. Password: 访问数据库的用户密码
vi. Max. Active Connections:最大活跃连接数,指同时可以有多少个连接,设置0,没有限制
vii. Max. Idle Connections:最大空闲连接数,表示没有数据库连接时,连接池也必须保持最大空闲连接数,设置为0没有限制
viii. Max. Wait for Connection:建立连接等待时间,单位:毫秒,设置为-1无限制
ix. Validation Query:此参数是用来查询池中的空闲连接(可以不用配置)
c) 点击保存,再点击提交
d) 找到TOMCAT-HOME/conf/server.xml文件,将生成的连接池部分的xml剪切到TOMCAT-HOME/conf/context.xml文件中。
<Resource
name="jdbc/oa"
type="javax.sql.DataSource"
password="root"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/oa"
maxActive="4"/>
e) 将TOMCAT-HOME/conf/context.xml文件剪切到项目的webroot/META-INF下
5. 了解JNDI技术 (一个目录数 减少偶合度 如:一个人对应的手机号码是什么)
6. 采用JNDI访问连接池代码如下
Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Context ctx = new InitialContext();
//采用查询JNDI树上注册的JDBC连接池 //java:comp/env/jdbc/oa DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oa");
//取得Connection conn = ds.getConnection();
stmt = conn.createStatement(); rs = stmt.executeQuery("select * from t_user"); while (rs.next()) { out.println(rs.getString("user_name")); } }catch(SQLException e) { e.printStackTrace(); }finally { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } |