1、数据源的作用及操作原理
在程序代码中使用数据源是可以提升操作性能的,这种性能的提升依靠于运行的原理。
传统JDBC操作步骤
1、加载数据库驱动程序,数据库驱动程序通过CLASSPATH配置;
2、通过DriverManager类取得数据库连接对象;
3、通过Connection实例化PreparedStatement对象,编写SQL命令操作数据库;
4、数据库属于资源操作,操作完成后进行数据库的关闭以释放资源。如图所示:
对于不同的用户只有操作不同,但是对于1、2、4三个步骤很明显是一个重复的操作。
如果开发中直接使用JDBC操作的话,那么就会产生这种性能的问题,那么怎么做最合适呢?
如果假设数据库不关闭,以后如果有新的用户使用的时候直接取一个已经有的连接的话。
就好比,学校为学生提供雨伞,一旦下雨将为学生准备雨伞,这个时候学生不用再重新去找雨伞,之后再重新去买雨伞。
假设有100把伞,如果现在不下雨,肯定不能把所有的伞都摆上,所以一般平常如果没人用的时候至少摆上10把。当然,最大的时候只能提供100把伞。
还需要一个等待的时间。
最小维持的数据库连接数,最大允许打开的连接数。
Tomcat 4.1 版本之后就开始支持这种操作了,这种操作就称为数据库连接池,存放的是所有的数据库连接。
2、在Tomcat中使用数据库连接池
在web容器中,数据库的连接池都是通过数据源(javax.sql.DataSource)访问的,即:可以通过 javax.sql.DataSource 类取得Connection对象,但是如果要想得到一个DataSource对象需要使用JNDI进行查找。
JNDI(Java Naming and Directory Interface)属于命名及目录查找接口,主要的功能是用于进行查找的,查找对象。
但是,现在的数据库的连接池是需要在Tomcat上完成配置的。
要修改server.xml文件才可以起作用。
如下,以连接mysql为例:
word="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/mydb"/>
评论列表()