使用JSP访问MySQL数据库软件架构7
1数据连接池(DBCP): 数据库连接的建立和关闭是非常耗费系统资源的操作。数据库连接
池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接
池,由应用程序动态的对池中的连接进行申请、使用和释放。对于多余连接池中的连接
数的请求,应在请求队列中排队等待。并且应用程序会根据连接的使用率动态的增加和
减少池中的连接数。连接池技术尽可能多的重用了内存的资源,大大节省了内存,提高
了服务器的效率。
2MySQL 数据库: MySQL 是一个开放源代码的关系数据库管理系统。MySQL 由于性能高、
成本低、可靠性好,已经成为最流行的开源数据库,被广泛地应用在Internet 上的中小
型网站中。随着MySQL 的不断成熟,它也逐渐用于更多大规模网站和应用中。MySQL
下载地址: http://www.mysql.com/downloads/。
3Weblogic: Weblogic 是美国BEA 公司出品的一个Application Server,确切地说是一个基于
J2EE 架构的中间件,BEA WebLogic 是用于开发、集成、部署和管理大型分布式Web 应
用、网络应用和数据库应用的Java 应用服务器。将Java 的动态功能和Java Enterprise
标准的安全性引入大型网络应用的开发、集成、部署和管理之中。BEA 已经被Oracle
收购,目前Weblogic 最新版本为Oracle Weblogic Server 11g Rel 1(10.3.5)。
实验步骤:
安装JDK 并配置环境变量,安装Tomcat 7,这些步骤请参考前面的实验。下载MySQL
数据库服务器并安装,并记住设定的MySQL 数据库密码。
运行MySQL 5.5 Command Line Client,输入设定的密码,创建数据库。
插入记录的时候自己输入id 和name,插入至少三条记录。
4 Tomcat7.0 JNDI 连接池的配置:
1) 将MySQLl 驱动中的jar 文件拷贝到{TomcatHome}/lib/下;
2) 使用Eclipse(Java EE 版)建立一个Dynamic Web Project,名称为JspApp,在META-INF/
下建立context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver"
maxActive="100" maxIdle="40" maxWait="12000" name="jdbc/lab8"
username="root" password="adm12345" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/lab8?characterEncoding=UTF-8" />
</Context>
3) 在WEB-INF/下创建web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/lab8</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
4) 在WebContent/下创建index.jsp 和dbtest.jsp 文件:
index.jsp
<%@ page
import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<%
Context ctx = new InitialContext();
String strLookup = "java:comp/env/jdbc/lab8";
DataSource ds = (DataSource) ctx.lookup(strLookup);
Connection con = ds.getConnection();
if (con != null) {
out.print("success");
} else {
out.print("failure");
}
%>
<a href="./dbtest.jsp">数据库测试页</a>
<hr />
Dbtest.jsp:
<%@ page
import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<head>
<title>DataSourse Connection Test</title>
</head>
<body>
<%
ResultSet rs = null;
java.sql.Connection con = null;
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx
.lookup("java:comp/env/jdbc/lab8");
con = ds.getConnection();
Statement s = con.createStatement();
String query = "select * from student";
rs = s.executeQuery(query);
} catch (Exception e) {
out.print(e.toString());
}
%>
<table width="323" height="50" border="1">
<tr>
<td width="182">学号</td>
<td width="147">名字</td>
<%
while (rs.next()) {
String id = rs.getString(1);
String name = rs.getString(2);
id = new String(id.getBytes("ISO-8859-1"), "gb2312");
name = new String(name.getBytes("ISO-8859-1"), "gb2312");
out.println("<tr> <td width=\"182\">" + id
+ "</td><td width=\"182\">" + name + "</td></tr>");
}
rs.close();
con.close();
%>
</tr>
</table>
</body>
</html>
5) 用Eclipse 将项目工程打包成JspApp.war,并将其拷贝到{TomcatHome}/webapps/下,
重启Tomcat,在浏览器输入http://localhost:8080/JspApp/访问
5配置Weblogic 数据源和JNDI:
1) 下载并安装WebLogic 后,进入安装目录->weblogic81->common->bin,运config.cmd;
然后选择“Create a new weblogic configuration”->“basic weblogic server domain”,
安装过程中,有一步需要输入用户名密码,填写后并完成安装。这时,weblogic 目
录下会生成user_projects 的子目录,展开进入mydomain 目录,将连接MySQL 的
驱动mysql-connector-java-5.1.5-bin.jar 文件放进来。接着编辑该目录下的
startweblogic.cmd,找到写有“set classpath”字样的那行,在该行的末尾加上如下
字符串“; mysql-connector-java-5.1.5-bin.jar ”,存盘退出并双击运行该文件启动
Weblogic 服务。
注: 这里我用的驱动是mysql-connector-java-5.1.5-bin.jar,如果用更新的驱动可能导致在JDBC 连
接池的配置中测试驱动配置这一步出错。
2) 新开一个浏览器,输入http://localhost:7001/console,在页面填上刚才设定的账户
名和密码。进入后,选择右边框架页的mydomain->Services->JDBC->Connection
pools,进去新建一个数据连接,在第二页中的“DataBase Type”中选择MySQL,
在第三页输入如下内容:
3) 跳转到下一页的页脚,点击Test driver configuration 按钮。若测试成功,在下一页
点create and deploy。至此,新建了一个weblogic 下的数据连接池。
4) 为数据连接池绑定JNDI,在左边框架页点Service->JDBC->Data Sources,创建新的
jndi 数据源。进去填上JNDI 名: lab8,之后continue,create。
5) 在weblogic->user_projects->mydomain 下新建目录demo,从tomcat->webapps 下把
JspApp 目录拷到这个目录下。打开里面的dbtest.jsp , 查找DataSource ds =
(DataSource)ctx.lookup(…),把括号里的字符改成“lab8”,即刚才填写的JNDI 名字,
存盘退出。删除原来目录下的index.jsp,并将dbtest.jsp 重命名为index.jsp。
6) 在左边框架页,点Deployments->Web Application Modules,右侧选Deploy a new Web
Application Modules。定位demo 下的JspApp 目录,选中该项目点Target Module,
进入下一页点Deploy。此时, Web Application Modules 下出现JspApp 项目,点击
并在右页选择Testing 选项卡,进入下面的链接http://localhost:7001/JspApp/ ,查
看结果。
jsp连接数据库,分别用服务器tomcat以及weblogic来实现使用musql驱动器连接数据库,关于使用tomcat服务器之前已经有点经验。此次主要是用jsp连接mysql时使用的账号以及密码弄错了。接着是weblogic,实验过程中主要是连接池新建以及datasource的新建,过程中尽量不要改动部分初始值,否则,结果可能会出现空指针溢出等错误。