本篇文章,我们将在MySQL中建库建表(student表),在JSP中书写JDBC代码,实现将数据库的数据查询出来,并以网页的形式展示出来。
需要特别注意的是,在JSP中书写业务逻辑代码,是在行业规范中不被允许的,我们在下一篇文章中,会介绍Java Web历史发展中出现的几种模式,以及当前行业中使用的模式。
所以本篇文章的学习,主要是为了学习JSP原始开发、积累JSP原始开发模式的经验,并感受到这种方式的弊端。
数据库开发
使用Navicat创建一个school数据库。
并在里面建一张表student,字段有id(主键、自增长),name,gender,age。
建表SQL为:
CREATE TABLE `NewTable` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(255) ,
`gender` varchar(255) ,
`age` int(11) ,
PRIMARY KEY (`id`)
)
在表中任意添加几条学生数据。
Java Web开发
新建testWeb03项目,在WebContent/WEB-INF/lib文件夹下添加mysql的jar包。在Java Web项目下,将jar包放到该lib文件夹下,会自动添加到Java Bulid Path下。
在项目下新建一个show.jsp文件,在里面书写JDBC代码,访问数据库,查询student表中的数据,并整理成HTML表格形式输出。代码如下所示:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
//利用反射,生成MySQL驱动类对象
Class.forName("com.mysql.jdbc.Driver");
//建立与数据库的连接:url、user、pwd
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school", "root", "123456");
//创建SQL语句执行器
Statement stat = conn.createStatement();
//执行SQL语句,得到结果集(select语句会得到结果集)
ResultSet rs = stat.executeQuery("select * from student");
//处理结果
//注意,这里要灵活运用JSP脚本片段特点,与HTML灵活构建出一个表格
%>
<!-- 注意,此处使用了HTML的修饰属性,而没有使用CSS修饰,这是不符合规范的,后续在对页面进行修饰时会改正 -->
<table border=1>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</tr>
<%
//循环构建tr
while (rs.next()) {
%>
<tr>
<td><%=rs.getInt("id")%></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("gender")%></td>
<td><%=rs.getInt("age")%></td>
</tr>
<%
}
//关闭连接等资源
rs.close();
stat.close();
conn.close();
%>
</table>
</body>
</html>
页面效果如图所示:
这种在JSP中既开发页面又开发业务逻辑的方式,被称之为JSP Model1。已经被淘汰。详见下一篇文章中的介绍。