教学导入:
思考:常见的数据查询功能如何完成?常见的数据查询结果显示在页面中如何完成?
引入JDBC+JSP编程模式的应用。
知识点:
在JSP页面中使用JDBC技术完成数据查询。
Statement、ResultSet接口的使用
ResultSet的getXXX方法,如果参数是数字型,注意索引范围,从1开始。如果参数为字符串时,这些字符串需要对应select子句中的列的名字。
案例:
jdbc编程访问salary数据库中teacherinfo表,将全部教师信息显示在页面中.
teacherinfo表包含5个属性,分别为:
tno char(5) 教师编号
teachername varchar(10) 教师姓名
age int 年龄
sex char(1) 性别“男”或”女”
title varchar(10) 职称
JavaApplication应用程序,从控制台输出所有教师信息的代码片段为:
代码片段1:
try {
Connection con;
con = DriverManager.getConnection(
"jdbc:sqlserver://localhost;databaseName=salary", "sa",
"123456");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from teacherinfo ");
while(rs.next()) {
System.out.println(rs.getString("tno"));
System.out.println(rs.getString("teachername"));
System.out.println(rs.getInt(3));
System.out.println(rs.getString(4));
System.out.println(rs.getString(5));
}
} catch (Exception e) {
e.printStackTrace();
}
1.出现如下错误:
No suitable driver foundfor jdbc:sqlserver://localhost;databaseName=salary
请在编写的连接功能代码前加入一行代码,便于驱动程序的获取:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2.编写Dynamic Web Project应用程序时,如果需要使用JDBC技术,需要在Webcontent->WEBINF->lib中放置相应的jar包,如sqljdbc4.jar.
否则,缺乏jar包,会出现如下错误:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
将sqljdbc4.jar文件拷贝到lib目录中
jsp页面代码中补充page指令相关代码,将jar包加入。
将代码片段1移植到jsp页面中,运行发现,所有代码都显示在控制台中,如何显示在页面中呢?
修改程序:
关键代码修改为:
while (rs.next()) {
%>
<%=rs.getString("teachername") %>
<%}
完整jsp页面代码为:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
try {
Connection con;
con = DriverManager.getConnection(
"jdbc:sqlserver://localhost;databaseName=salary", "sa",
"123456");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from teacherinfo ");
while (rs.next()) {
%>
<%=rs.getString("teachername")%>
<%
}
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>

