使用servlet 查询数据库后记录显示在jsp页面,不报错误,获取不到数据库表的值,全部代码如下,请大侠帮忙

yuhouqingchen2020 2016-04-26 10:09:13
package bean;

public class Student {
private String sno;
private String sname;
private String sex;
private int age;
private String sdept;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSdept() {
return sdept;
}
public void setSdept(String sdept) {
this.sdept = sdept;
}
}

-------------
package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import bean.Student;
public class DBConnection {

/**
* 驱动类名称
*/
private static final String DRIVER_CLASS = "sun.jdbc.odbc.JdbcOdbcDriver";

/**
* 数据库连接字符串
*/
private static final String DATABASE_URL = "jdbc:odbc:ybsNH";

/**
* 数据库用户名
*/
private static final String USER_NAME = "sa";

/**
* 数据库密码
*/
private static final String PASSWORD = "";

/**
* 数据库连接类
*/
private static Connection conn;

/**
* 数据库操作类
*/
private static Statement stmt;



// 加载驱动
static{
try {
Class.forName(DRIVER_CLASS);
} catch (Exception e) {
System.out.println("加载驱动错误");
System.out.println(e.getMessage());
}
}

// 取得连接
private static Connection getConnection(){

try {
conn = DriverManager.getConnection(DATABASE_URL, USER_NAME, PASSWORD);
} catch (Exception e) {
System.out.println("取得连接错误");
System.out.println(e.getMessage());
}
return conn;
}


public void ExecuteDel(String sql){

try {
stmt = getConnection().createStatement();
} catch (Exception e) {
System.out.println("statement取得错误");
System.out.println(e.getMessage());
}

try {
int rows = stmt.executeUpdate(sql);
if(rows >= 1){
System.out.println("成功删除.....");
} else {
System.out.println("删除失败.....");
}

} catch (Exception e) {
// TODO: handle exception
}


}
public String getName(String sql){
String name="";
try {
stmt = getConnection().createStatement();
} catch (Exception e) {
System.out.println("statement取得错误");
System.out.println(e.getMessage());
return null;
}

try {

// 查询数据库对象,返回记录集(结果集)
ResultSet rs = stmt.executeQuery(sql);

// 循环记录集,查看每一行每一列的记录
while (rs.next()) {
// 第一列 sno
name = rs.getString(1);
}

} catch (Exception e) {
System.out.println(e.getMessage());
}
return name;

}
public ArrayList<Student> getStudentList(String sql){

ArrayList<Student> list = new ArrayList<Student>();

// 取得数据库操作对象
try {
stmt = getConnection().createStatement();
} catch (Exception e) {
System.out.println("statement取得错误");
System.out.println(e.getMessage());
return null;
}

try {

// 查询数据库对象,返回记录集(结果集)
ResultSet rs = stmt.executeQuery(sql);

// 循环记录集,查看每一行每一列的记录
while (rs.next()) {
// 第一列 sno
String sno = rs.getString(1);

// 第2列 sname
String sname = rs.getString(2);

// 性别
//String ssex = rs.getString(3);

// 年龄
//int sage = rs.getInt(4);

// 系
//String sdept = rs.getString(5);

Student stu = new Student();
stu.setSno(sno);
stu.setSname(sname);
//stu.setAge(sage);
//stu.setSex(ssex);
//stu.setSdept(sdept);


list.add(stu);
}

} catch (Exception e) {
System.out.println(e.getMessage());
}
return list;
}
}
-----------
package servlet;

import javax.servlet.http.HttpServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.Student;

import dao.DBConnection;
public class StuServlet extends HttpServlet {


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

DBConnection db = new DBConnection();

String sql = "SELECT Sno, Sname FROM stutb";

ArrayList<Student> list = db.getStudentList(sql);

request.setAttribute("list", list);


request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
-----------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<servlet>
<servlet-name>StuServlet</servlet-name>
<servlet-class>servlet.StuServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>DelServlet</servlet-name>
<servlet-class>servlet.DelServlet</servlet-class>
</servlet>


<servlet-mapping>
<servlet-name>StuServlet</servlet-name>
<url-pattern>/stuservlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DelServlet</servlet-name>
<url-pattern>/delservlet</url-pattern>
</servlet-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
---------
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>list</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>

<table border="1">
<tr>
<td>编号</td>
<td>姓名</td>

</tr>

<c:forEach items="${list}" var="stu">
<tr>
<td>${stu.sno}</td>
<td>${stu.sname}</td>

<td><a href="delservlet?sno=${stu.sno}">删除</a></td>
</tr>
</c:forEach>
</table>


</body>
</html>
...全文
498 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
愤怒的小枫 2016-04-28
  • 打赏
  • 举报
回复
引用 2 楼 ybsybsybsybs 的回复:
数据库的表是有的,是SQL2012的数据库 SELECT TOP 1000 [Sno] ,[Sname] FROM [ybsNH].[dbo].[stutb]
ok了,我sqlserver的版本号过低,数据库url写错了,害得我一直连不上,囧!回到你的问题,通过加载jdbc驱动的方式连接数据库(不是你的jdbc/odbc),是可以运用你的项目的,jsp页面有显示。你换一种连接数据库的方式试一下,应该不会出现问题了
愤怒的小枫 2016-04-28
  • 打赏
  • 举报
回复
引用 2 楼 ybsybsybsybs 的回复:
数据库的表是有的,是SQL2012的数据库 SELECT TOP 1000 [Sno] ,[Sname] FROM [ybsNH].[dbo].[stutb]
我引用了你的代码,然后不知道是不是我自己以前装的sqlserver2008配置的问题,还是怎么了,我是一直连不上数据库,(jdbc)和(jdbc/odbc)两种方法都试过,就是连不上...后来我换了mysql后,验证了代码,发现了jsp是有数据显示的,建议你用mysql试一下,应该可以
愤怒的小枫 2016-04-27
  • 打赏
  • 举报
回复
结果集是空的,检查sql语句中的表名是否跟数据库中要查询的表名一致?
愤怒的小枫 2016-04-27
  • 打赏
  • 举报
回复
那你检查一下list中是否有内容?或者stu是否为空?
yuhouqingchen2020 2016-04-27
  • 打赏
  • 举报
回复
数据库的表是有的,是SQL2012的数据库 SELECT TOP 1000 [Sno] ,[Sname] FROM [ybsNH].[dbo].[stutb]

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧