javaweb把后端数据返回到前端


第一步

先写公共查询类

public static List<Map> executeQuery(String sql, Object[] params) {
	List<Map> list = new ArrayList<Map>();
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;

	try {
		//连接数据库
		conn = UtilDB.getConnection();
		//创建预处理命令
		pstmt = conn.prepareStatement(sql);
		//为预处理命令设置参数
		UtilDB.setParams(pstmt, params);
		//执行查询
		rs = pstmt.executeQuery();
		//获取元数据
		ResultSetMetaData metaData = rs.getMetaData();
		//获取返回的结果集有多少列
		int count = metaData.getColumnCount();
		while (rs.next()) {
			//声明map 存储一行的数据
			Map map = new HashMap();
			for (int i = 1; i <= count; i++) {
				//获取列名 列名的下标从1 开始
				// String columnName = metaData.getColumnName(i);
				// 获取该列的值
				// Object value = rs.getObject(columnName);
				//把该行每一列的值放置到map中,其中key是列名 value是该列对应的值


				map.put(metaData.getColumnName(i), rs.getObject(i));
			}
			list.add(map);
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		UtilDB.Close(conn, pstmt, rs);
	}
	return list;
}

第二步

在写dao层

接口 public List<MessageDate> getFindMessage(Connection conn);

实现类

public class UserDaoImpl implements UserDao {
	/*
	 * @getfindmessage
	 * 查找留言
	 * */
	@Override
	public List<MessageDate> getFindMessage(Connection conn ) throws SQLException {
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		ArrayList<MessageDate> MD= new ArrayList<MessageDate>();
		if (conn!=null) {
			String sql = "select * from guestbook ";
			Object[] params = {};
			rs = UtilDB.execute(conn, pstmt, rs, sql, params);
			while (rs.next()) {/*使用while順壞取出留言信息*/
				MessageDate md = new MessageDate();
				md.setId(rs.getInt("id"));
				md.setName(rs.getString("name"));
				md.setEmaile(rs.getString("emaile"));
				md.setTitle(rs.getString("title"));
				md.setContent(rs.getString("content"));
				md.setCreatedtime(rs.getString("createdtime"));
				md.setPhone(rs.getString("phone"));
				MD.add(md);
			}
		}
		UtilDB.Close(conn,pstmt,rs);
		return MD;
	}
}

第三步

写业务层service

public List<MessageDate> getFindMessage();


public class UserServletlmpl implements UserServlet {
	private UserDao userDao;
	public UserServletlmpl(){
		userDao=new UserDaoImpl();
	}
	/*
	 * 查詢留言板
	 * */

	@Override
	public List<MessageDate> getFindMessage() {
		Connection conn = null;
		List<MessageDate> messageDates =null;

		try {
			conn = UtilDB.getConnection();
			messageDates= userDao.getFindMessage(conn);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally {
			UtilDB.Close(conn,null,null);
		}
		return messageDates;
	}
}

第四步

写视图层

@WebServlet(name = "FindMessageServlet",urlPatterns = "/jsp/findMessageServlet")
public class FindMessageServlet extends HttpServlet {
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) {
		UserServlet userServlet = new UserServletlmpl();
		try {
			//从业务层拿数据
			List<MessageDate> messageDates = userServlet.getFindMessage();
			// System.out.println(messageDates);
			request.setAttribute("messageDates", messageDates);//把信息放到session中,但会消耗资源

			request.getRequestDispatcher("/jsp/MessageDate.jsp").forward(request, response);
		} catch (ServletException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM