再见!!! 2020-04-02 18:23 采纳率: 0%
浏览 189

java查询数据库中的数据会输出,输出的不是我的数据????

```数据封装在build,builds中 可是输出的不是数据库中的数据而是

图片说明

DormBuildDaoImpl.java

package zj.shizhan.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import zj.shizhan.bean.DormBuild;

import zj.shizhan.util.ConnectionFactory;

public class DormBuildDaoImpl implements DormBuildDao {

@Override
public DormBuild findByName(String dormBuildName) {

    //获取连接(数据库地址 用户名 密码)
    Connection connection = ConnectionFactory.getConnection();

    try {
        String sql = "select * from dormbuild where dormBuildName = ? ";

        //执行SQL语句  获取集装箱 或者说是 车
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, dormBuildName);

        ResultSet rs = preparedStatement .executeQuery();
        //因为查询出来的信息包括表头信息,所以指针下移一行,看是否有查询出的数据
        //如有数据,就进入循环体封装该行数据
        while (rs.next()) {
            DormBuild build = new DormBuild();
            build.setDormBuildId(rs.getInt("dormBuildId"));
            build.setDormBuildName(rs.getString("dormBuildName"));
            build.setDetail(rs.getString("detail"));
            return build;

        }
    } catch (SQLException e) {

        e.printStackTrace();
    }
    return null;
}

@Override
public void save(DormBuild build) {
    //获取连接(数据库地址 用户名 密码)
            Connection connection = ConnectionFactory.getConnection();

            try {
                String sql = "INSERT INTO dormbuild(dormBuildName,detail)VALUES(?,?)";

                //执行SQL语句  获取集装箱 或者说是 车
                PreparedStatement preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setString(1, build.getDormBuildName());
                preparedStatement.setString(2, build.getDetail());
                preparedStatement .executeUpdate();


            } catch (SQLException e) {

                e.printStackTrace();
            } 

}

@Override
public List<DormBuild> find() {
    //获取连接(数据库地址 用户名 密码)
            Connection connection = ConnectionFactory.getConnection();

            try {
                String sql = "select * from dormbuild ";

                //执行SQL语句  获取集装箱 或者说是 车
                PreparedStatement preparedStatement = connection.prepareStatement(sql);


                ResultSet rs = preparedStatement .executeQuery();
                //因为查询出来的信息包括表头信息,所以指针下移一行,看是否有查询出的数据
                //如有数据,就进入循环体封装该行数据
                List<DormBuild> builds = new ArrayList<DormBuild>();
                while (rs.next()) {
                    DormBuild build = new DormBuild();
                    build.setDormBuildId(rs.getInt("dormBuildId"));
                    build.setDormBuildName(rs.getString("dormBuildName"));
                    build.setDetail(rs.getString("detail"));


                    builds.add(build);

                }
                return builds;
            } catch (SQLException e) {

                e.printStackTrace();
            }
    return null;
}

@Override
public DormBuild findById(Integer dormBuildId) {
    //获取连接(数据库地址 用户名 密码)
            Connection connection = ConnectionFactory.getConnection();

            try {
                String sql = "select * from dormbuild where dormBuildId = ? ";

                //执行SQL语句  获取集装箱 或者说是 车
                PreparedStatement preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setInt(1, dormBuildId);

                ResultSet rs = preparedStatement .executeQuery();
                //因为查询出来的信息包括表头信息,所以指针下移一行,看是否有查询出的数据
                //如有数据,就进入循环体封装该行数据
                while (rs.next()) {
                    DormBuild build = new DormBuild();
                    build.setDormBuildId(rs.getInt("dormBuildId"));
                    build.setDormBuildName(rs.getString("dormBuildName"));
                    build.setDetail(rs.getString("detail"));
                    return build;

                }
            } catch (SQLException e) {

                e.printStackTrace();
            }
    return null;
}

@Override
public void update(DormBuild build ) {
    //获取连接(数据库地址 用户名 密码)
    Connection connection = ConnectionFactory.getConnection();

    try {
         String sql = "UPDATE dormbuild SET dormBuildName = ?,detail = ? WHERE dormBuildId = ?";

         //执行SQL语句  获取集装箱 或者说是 车
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, build.getDormBuildName());
        preparedStatement.setString(2, build.getDetail());
        preparedStatement.setInt(3, build.getDormBuildId());

        //执行更新      
        preparedStatement .executeUpdate();


        } catch (SQLException e) {

            e.printStackTrace();
        }

}

}

# DormBuildServlet.java

package zj.shizhan.servlet;

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

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

import zj.shizhan.bean.DormBuild;
import zj.shizhan.service.DormBuildService;
import zj.shizhan.service.DormBuildServiceImpl;

/**

  • Servlet implementation class DormBuildServlet
    */
    @WebServlet("/dormBuild.action")
    public class DormBuildServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet() */ public DormBuildServlet() { super();

    }

    /**

    • @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
      */
      protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      response.setContentType("text/html;charset=UTF-8");
      response.setCharacterEncoding("UTF-8");

      String action = request.getParameter("action");
      //通过request.getParameter("id")方式获取的值都是String类型的
      String dormBuildId = request.getParameter("dormBuildId");
      System.out.println("action:"+action);

      DormBuildService dormBuildService = new DormBuildServiceImpl();

      if(action !=null & action.equals("list")) {

      List<DormBuild> builds = new ArrayList<DormBuild>();
      if( dormBuildId== null || dormBuildId.equals("")) {
          //查询所有宿舍楼信息,跳转到宿舍楼列表页
          builds = dormBuildService.find();
      }else if(dormBuildId != null && !dormBuildId.equals("")) {
          //点击查询按钮搜索某一栋宿舍楼的信息
          DormBuild build = dormBuildService.findById(Integer.parseInt(dormBuildId));
          builds.add(build);
          System.out.println("build:"+build);
      }
      //查询所有宿舍楼。在select中遍历
      List<DormBuild> buildSelects = dormBuildService.find();
      request.setAttribute("buildSelects", buildSelects);
      request.setAttribute("dormBuildId", dormBuildId);
      System.out.println("builds:"+builds);
      request.setAttribute("builds", builds);
      request.getRequestDispatcher("BuildList.jsp").forward(request, response);
      

      }else if (action !=null & "preAdd".equals(action)) {
      //表示跳转到宿舍楼添加页面
      request.getRequestDispatcher("AddOrAlterBuild.jsp").forward(request, response);
      }else if (action !=null & "save".equals(action)) {

      //保存数据
      String n = request.getParameter("dormBuildName");
      String dormBuildName = new String(n.getBytes("ISO-8859-1"), "utf-8");
      String m = request.getParameter("detail");
      String detail = new String(m.getBytes("ISO-8859-1"), "utf-8");
      System.out.println("dormBuildName:"+dormBuildName+"detail:"+detail+"id:"+dormBuildId);
      
      //判断宿舍楼名字是否已存在
      
      DormBuild dormBuild = dormBuildService.findByName(dormBuildName);
      System.out.println("dormBuildName:"+dormBuildName);
      System.out.println("id2:"+dormBuildId);
      
      if(dormBuildId !=null && !"".equals(dormBuildId)) {
          System.out.println("id3:"+dormBuildId);
          //修改
          if (dormBuild != null && !dormBuild.getDormBuildId().equals(Integer.parseInt(dormBuildId))) {
      
              request.setAttribute("error", "该宿舍楼已存在");
              //格局宿舍楼id,查询宿舍楼
              DormBuild build = dormBuildService.findById(Integer.parseInt(dormBuildId));
              //保存宿舍楼信息,到前端页面展示
              request.setAttribute("build", build);
              request.getRequestDispatcher("AddOrAlterBuild.jsp").forward(request, response);
          }else {
              dormBuild = dormBuildService.findById(Integer.parseInt(dormBuildId)); 
              dormBuild.setDormBuildName(dormBuildName);
              dormBuild.setDetail(detail);
      
              dormBuildService.update(dormBuild);
              //更新完成后,跳转到宿舍楼管理列表页,查询所有宿舍楼
              List<DormBuild> builds = dormBuildService.find();
              request.setAttribute("builds", builds);
              request.getRequestDispatcher("BuildList.jsp").forward(request, response);
          }
      }else {
          //保存
          System.out.println("id4:"+dormBuildId);
          if (dormBuild != null) {
              //该宿舍楼已存在
              request.setAttribute("error", "该宿舍楼已存在");
              request.getRequestDispatcher("AddOrAlterBuild.jsp").forward(request, response);
      
          }else {
              //该宿舍楼已不存在
              DormBuild build = new DormBuild();
              build.setDormBuildName(dormBuildName);
              build.setDetail(detail);
              dormBuildService.save(build);
              List<DormBuild> builds = dormBuildService.find();
              request.setAttribute("builds", builds);
              request.getRequestDispatcher("BuildList.jsp").forward(request, response);
          }
      }
      

      }else if (action !=null & "preUpdate".equals(action)) {
      //格局宿舍楼id,查询宿舍楼
      DormBuild build = dormBuildService.findById(Integer.parseInt(dormBuildId));
      System.out.println("id1:"+dormBuildId);
      //保存宿舍楼信息,到前端页面展示
      request.setAttribute("build", build);

      //表示跳转到宿舍楼修改页面
      request.getRequestDispatcher("AddOrAlterBuild.jsp").forward(request, response);
      

      }

    }

    }

# DormBuild.java

package zj.shizhan.bean;

public class DormBuild {
private Integer dormBuildId;
private String dormBuildName;
private String detail;

public DormBuild() {
    super();
}

public DormBuild(Integer dormBuildId,String dormBuildName, String detail) {
    super();
    this.dormBuildId = dormBuildId;
    this.dormBuildName = dormBuildName;
    this.detail = detail;
}


public String getDormBuildName() {
    return dormBuildName;
}
public void setDormBuildName(String dormBuildName) {
    this.dormBuildName = dormBuildName;
}
public String getDetail() {
    return detail;
}
public void setDetail(String detail) {
    this.detail = detail;
}



public Integer getDormBuildId() {
    return dormBuildId;
}

public void setDormBuildId(Integer dormBuildId) {
    this.dormBuildId = dormBuildId;
}

}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-21 13:59
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集