本文采用Mysql数据库(mysql-5.0.41-win32-Setup.exe)
(一)JDBC方式
(1)下载mysql驱动程序(本文使用mysql-connector-java-5.0.7-bin.jar),把这个文件放在tomcat安装目录的lib目录下,则tomcat中所有的web应用都可以使用mysql驱动了,如果将其放在某个web应用的“WEB-INF/lib”子目录中则仅有此web应用能使用mysqlJDBC驱动
(2)加载驱动程序
Class.forName("com.mysql.jdbc.Driver");//数据库驱动程序
(3)连接数据库(Connection)
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/new","root","sa");
(4)操作数据(Statement)
Statement sql=conn.createStatement();
String sqlStr=“select ID from table2”;
ResultSet rs=sql.executeQuery(sqlStr);
(5)显示数据
<table border="1">
<%
while(rs.next()){ %>
<tr><td><%=rs.getLong("ID")%></td></tr>
<%
} %>
</table>
注意事项:
a.(2)(3)(4)步中,若是写在JSP页面中,则应放在<% %>中
b.当把驱动程序放入lib中后,要重启tomcat,否则会显示连接不上
c.若不知道驱动程序的全称,可以通过Myeclipse加载数库获得
在windows->open perspective->MyEclipse Database EXplorer
可以得到数据库驱动的名称和路径
(二)数据库连接池
(1)在tomcat下conf/context.xml中<context></context>间加入
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="sa" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/new" />
其中maxActive属性的值为连接数据库的最多活动连接数,maxIdle属性的值为最多的空闲连接个数,maxWait属性设置生成一个有效的数据库连接等待的时间,单位为秒,如果超过这个时间表示超时了,将抛出超时异常。
(2)数据库驱动放入tomcat下/lib目录,重启tomcat
(3)测试连接
加入头文件
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.DataSource"%>
<%
DataSource ds = null;
//得到一个上下文对象(javax.naming.InitialContext),以提供命名和查找服务 // javax.sql.DataSource的getConnection()方法得到一个数据库连接 ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/mysqlds");
Context initCtx = new InitialContext();
//通过新的上下文对象查找到环境对象,通过环境对象找到数据连接池对象。在得到数据库连接池对象后作类型强制转换,才能使用
Connection conn=ds.getConnection();
Statement sql=conn.createStatement();
String sqlStr="select ID from table2";
ResultSet rs=sql.executeQuery(sqlStr);
%>
conn.close();%> 注意:在访问完数据库后应使用Connection的close()方法,以利于将Connection返回到数据库连接池,使用Connection恢复空闲状态。
<table border="1">
<%
while(rs.next()){ %>
<tr><td><%=rs.getString("ID")%></td></tr>
<%
}
</table>