java应用程序开发中,访问和操作数据库一般通过JDBC等技术实现,在基于数据库的web系统中,简历数据库连接的操作将是系统中代价最大的操作之一,通常成为制约网站速度的瓶颈。
使用传统模式时,必须去管理每一个连接,确保它们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄漏,最终将不得不重启数据库。
连接池技术:初始化时先简历一些连接并存放在连接池中备用,当应用程序需要简历数据库连接,只需从连接池中取一个未使用的连接即可,不必新建,用完放回连接池。连接池可以释放超过最大空闲时间的数据库连接,以避免没有释放而造成的数据库连接遗漏。
由于数据源(DataSource)对象是由Web容器(如Tomcat)提供的,因此无法在程序中使用创建实例的方法产生数据源对象。这时可以使用JNDI技术获得数据源对象。可以把它理解为一种将对象和名字捆绑的技术,对象工厂负责生产出对象,这些对象都与唯一的名字绑在一起,外部资源可以通过名字获得某对象的引用。
javax.naming包提供了Context接口,该接口提供两种常用方法:
①void bind(String name,Object object):用于将名字绑定到对象,所有中间上下文和目标上下文都必须已经存在。
②Object lookup(String name):用于检索指定名字绑定的对象。若name为空,则返回此上下文的一个新实例。
例:Context context=new Initial