数据库与连接池技术
来源:互联网 发布:霍光为什么不篡位知乎 编辑:程序博客网 时间:2024/06/09 14:20
JDBC连接数据库的两种方式
1.在代码中使用DriverManager获得数据库连接。这种方式效率低,并 且其性能、可靠性和稳定性随着用户访问量得增加逐渐下降。
2.使用配置数据源的方式连接数据库,该方式其实质就是在上述方法的基础上增加了数据库连接池,这种方式效率高。
数据源连接池的方式连接数据库与在代码中使用DriverManager获得数据库连接存在如下差别:
1)数据源连接池的方式连接数据库是在程序中,通过向一个JNDI(Java Naming and Directory Interface)服务器查询,即调用Context接口的lookup()方法,来得到DataSource对象,然后调用DataSource对象的getConnection()方法建立连接
2)为了能重复利用数据库连接对象,提高对请求的响应时间和服务器的性能,采用连接池技术.连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成时,客户程序调用close()方法,将连接对象放回池中.
3)在代码中使用DriverManager获得数据库连接的方式中,客户程序得到的连接对象是物理连接,调用连接对象的close()方法将关闭连接,而采用连接池技术,客户程序得到的连接对象是连接池中物理连接的一个句柄,调用连接对象的close()方法,物理连接并没有关闭,数据源的实现只是删除了客户程序中的连接对象和池中的连接对象之间的联系.
数据源与连接池
采用JDBC连接数据库,每次访问前都要先建立与数据库的连接。为了免去每次访问数据库之前建立数据库连接的开销,提高访问数据库效率,引入了数据源技术。该技术是把预先建立好的数据库连接保存在连接池中,由连接池管理这些数据库连接。需要访问数据库时,只需从连接池中取出空闲状态的数据库连接,访问结束时,释放连接到连接池中。
使用步骤(SQLServer):
一 配置数据源
1.在服务器上添加SQLServer数据库驱动程序,把JDBC驱动程序复制到Tomcat安装目录下的lib目录。
2.数据源参数配置。可将数据源配置到Tomcat安装目录下的conf\server.xml文件中,也可配置到Web工程目录下的META-INF\context.xml文件中。为了提高项目的可移植性,建议采用后者,若Web工程目录下的META-INF中不存在context.xml文件,则需自建该文件。
配置数据源的具体代码如下:
<Context><Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource" maxActive="4" maxIdle="2" maxWait="6000" username="sa" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=p"/></Context>
3.在web工程目录下的web.xml的根节点下配置如下内容:
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/sqlserver</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
二 使用连接池技术访问数据库
使用数据源对象:
1.获得对数据源的引用。
Context ctx=new InitalContext();(DataSourse)ctx.lookup("java:comp/env/jdbc/sqlserver");
2.获得数据库连接对象
Connection conn=ds.getConnection();
3.返回数据库连接到连接池
con.close();
示例(SQLServer):
<%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%><%@ page import="javax.sql.*" %><%@ page import="javax.naming.*" %><html> <head> <title>信息查看页面</title> </head> <body> <center> <% DataSource ds=null; //通过连接池连接数据库 InitialContext ctx=new InitialContext(); ds=(DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver"); Connection conn=ds.getConnection(); //通过连接池连接数据库 PreparedStatement pstmt=conn.prepareStatement("select * from Student"); ResultSet rs=pstmt.executeQuery(); %> <table border="2" bgcolor="ccceee" width="650"> <tr bgcolor="CCCCCC" align="center"> <td>记录条数</td><td>学号</td><td>姓名</td> <td>性别</td><td>年龄</td><td>专业</td> </tr> <% while(rs.next()){ %> <tr align="center"> <td><%=rs.getRow()%></td> <td><%=rs.getString(1)%></td> <td><%=rs.getString(2)%></td> <td><%=rs.getString(3)%></td> <td><%=rs.getString(4)%></td> <td><%=rs.getString(5)%></td> </tr> <%}%> </center> <%if(rs!=null){rs.close();} if(pstmt!=null){pstmt.close();} if(conn!=null){conn.close();} %> </table> </body></html>
结果:
- 数据库与连接池技术
- 连接池与数据库
- JDBC入门技术:如何使用连接池技术连接数据库
- 数据源与连接池技术
- day_9使用数据库连接池技术连接数据库
- JDBC技术连接数据库
- Jndi技术----与数据库的连接(tomcat)
- Jndi技术----与数据库的连接(tomcat)
- Jndi技术----与数据库的连接(tomcat)
- 数据库与连接池组合
- ADO技术连接SQL数据库
- 技术-Java连接mysql数据库
- Java中使用连接池技术链接数据库
- tomcat连接池与数据库重启
- druid连接池与数据库简单配置
- 与数据库的连接池说明、应用
- 与数据库的连接
- 与数据库的连接
- 摩尔斯密码简介
- 10.22周日
- Spark源码走读(三) —— Stage的划分和提交
- 将centos作为远程服务器,连接并上传文件
- java 1.8 集合源码解析1:Iterable和Iterator
- 数据库与连接池技术
- 饿了么webapp之块级盒子垂直相邻margin重叠
- 无偏估计量
- 【C++】别再用memset初始化int数组了,用fill或者fill_n靠谱多了
- hugepages_settings.sh
- PyQt5学习教程4:对退出进行进一步确认
- Codeforces 873D Merge Sort
- 备忘录(不断更新)
- kdump配置