MVC+Servlet+mysql+jsp读取数据库信息

首先有以下几个包:

1.controller

控制层,对用户的请求进行响应

2.dao

数据层接口标准

3.daoimpl

数据层实现层

4.model

实体类层

5.service

业务层接口标准

6.serviceimpl

业务实现层

7.util

工具层

-------------------------------------------------------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------

首先我们封装JDBC

package Util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.jupiter.api.Test;

public class DbUtil {
	public static Connection con=null;
	public static PreparedStatement stmt=null;
	public static ResultSet res=null;
	//加载驱动
	static {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("数据库驱动加载成功");
		}catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public static Connection getConnection() {
		Properties p=new Properties();
		ClassLoader classLoader=Thread.currentThread().getContextClassLoader();
		InputStream in=classLoader.getResourceAsStream("db.properties");
		String username=null;
		String password=null;
		String url=null;
		try {
			p.load(in);
			username=p.getProperty("username");
			password=p.getProperty("password");
			url=p.getProperty("url");
			System.out.println("外部文件加载成功");
		}catch(IOException e1) {
			e1.printStackTrace();
		}
		try {
			if(con==null) {

				con=DriverManager.getConnection(url, username, password);
				System.out.println("数据库链接成功");
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return con;
	}
	public static void CloseConnection(Connection con) {
		try {
			if(res!=null) {
				res.close();
			}
			if(stmt!=null) {
				stmt.close();
			}
			if(con!=null) {
				con.close();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
	}
}

  里面有两个方法一个方法返回con对象供数据层使用,一个方法关闭数据库连接

然后我们编写数据层接口标准

public interface UserDao {
    public List<User> getAllUser();//列出全部用户
}

  然后编写数据层

package daoimpl;//数据层接口实现类

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 Util.DbUtil;
import dao.UserDao;
import model.User;

public class UserDaoImpl implements UserDao{
	//JDBC的三个接口
    Connection con=null;
	PreparedStatement stmt=null;
	ResultSet res=null;
	//按照数据层开发标准实现接口方法
	@Override
	//返回一个list集合
	public List<User> getAllUser() {
		//实例化一个list集合
		List<User> list=new ArrayList<User>();
		//将要执行的sql语句
		String sql="select * from user";
		//执行数据库连接
		try {
			  //由数据库工具连接类返回一个数据库连接
			  con=DbUtil.getConnection();
			  stmt=con.prepareStatement(sql);
			 res= stmt.executeQuery();
			  while(res.next()) {
				  User u=new User();
				  u.setId(res.getString("id"));
				  u.setUsername(res.getString("username"));
				  u.setPassword(res.getString("password"));
				  list.add(u);
			  }
		 }catch(SQLException e) {
			  e.printStackTrace();
		  }
		return list;
	}
}

  使用工具类包里面返回的数据库连接对象,然后使用预处理的sql,读取到数据库里面的信息,然后把读取到的数据利用实体类的setter和getter方法来存到实体类里然后存在集合里面。

然后编写业务层开发标准

import java.util.List;

import model.User;

public interface UserService {
    public List<User> getAllUser();//列出全部用户
}

  然后编写业务层实现类

public class UserServiceImpl implements UserService {
    //取到数据层类
	private UserDao userDao;
    @Override
	public List<User> getAllUser() {
		List<User> list=userDao.getAllUser();
		return list;
	}

}

 调用数据层接口的getAllUser()方法来获取到集合 

然后编写控制层

package controller;//控制层

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import javax.servlet.RequestDispatcher;
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 daoimpl.UserDaoImpl;
import model.User;
@WebServlet("/servlet01")
public class ListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	UserDaoImpl userDao=new UserDaoImpl();//访问数据层
	public ListServlet() {
        super();
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());

	}
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	  //通过数据层得到数据库里的数据并存到集合里
		List<User> list=userDao.getAllUser();
	  if(list!=null) {
		  System.out.println("数据读取成功!");
	  }
	  //把数据存起来
		request.setAttribute("users", list);
	  //重定向到数据展示页
		request.getRequestDispatcher("list.jsp").forward(request, response);
	}
}

  然后把集合存到request里面,并且重定向到list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>列表</title>
</head>
<body>
<form >
<table border="1" cellpadding="0" cellspacing="0">
  <tr style="width:500px;">
  <td>用户编号</td>
  <td>用户名</td>
  <td>密码</td>
  <td>操作</td>
  </tr>
  <c:forEach items="${users}" varStatus="userStatus" var="user">
   <tr>
   <td>${user.id }</td>
   <td>${user.username }</td>
   <td>${user.password }</td>
   <td><a href="/del">删除</a>|<a href="">修改</a>
   </tr>
  </c:forEach>
</table>
</form>
</body>
</html>

  使用jsp的jstl标签来循环读取request里的数据

原文地址:https://www.cnblogs.com/cainame/p/10314878.html

时间: 2024-10-15 15:50:16

MVC+Servlet+mysql+jsp读取数据库信息的相关文章

(待解决):servlet+javaBean+jsp 读取数据库列表 页面无结果

文件如下: DepartBean.java: package beans; public class DepartBean { private int did; private String dname; private String dremark; public int getDid() { return did; } public void setDid(int did) { this.did = did; } public String getDname() { return dname

JavaBean编程思想-读取数据库信息

前面我也说过,JavaBean就是实现了:把html代码和java代码分开,在html只需要调用该java代码就行了,这就叫JavaBean. 现在给大家分享一个具体的示例-读取数据库,下面为具体代码+注释 首先我们来看看JDBC(详情见另一篇博客JDBC编程基本)直接连接数据库显示在页面上的情况: 这是前面给大家分享过的JDBC编程连接数据库,这里我直接写在了JSP中. 好!下面我们用JavaBean编程实现相同的功能: 第一步:写一个JAVA类,我的在JavaBean包中定义了一个Stude

读取数据库信息构建视图字段的备注信息,方便程序代码生成

在很多情况下,我们开发都需要有一个快速的代码生成工具用来提高开发效率,代码生成工具很多信息都是读取数据库的表.视图等元数据进行对象表信息的完善,有了这些信息,我们就可以在普通的实体类代码里面添加属性字段的中文注释,或者在Winform或者Web界面的快速生成的时候,可以在查询框或者界面编辑的时候,充当标签提示等处理信息.但是,一般情况下视图的备注信息是没有的,但是视图和表之间是存在一定的关系的,虽然不同数据库系统对于它们的信息对应不一定一致,但是我们可以把它们的对应关系寻找出来就可以给视图字段增

tomcat8.5基础 相应的Servlet、JSP的版本信息

礼悟:    好好学习合思考,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼强身心,诚劝且行且珍惜. 参考链接:http://tomcat.apache.org/whichversion.html :http://blog.csdn.net/jackpk/article/details/46235815 java优秀,值得学习.学习资源:博文头部的参考链接 + 清净的心地.

app开发中读取数据库信息的vue页面

<template> <!-- 容器 --> <div class="container"> <!-- 标头 --> <div class="header" :style="{ height: height }"> <wxc-minibar background-color="#fff" text-color="#1a1a1a" :title

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)

近期看老罗视频,做了一个简单的用户注冊系统.用户通过网页(JSP)输入用户名.真名和password,Servlet接收后通过JDBC将信息保存到MySQL中.尽管是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.以下先上源代码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String

Jsp+servlet+mysql搭建套路

1.建立数据库根据需求建立相应的数据库确立数据库的字段.属性.主键等2.建立javaweb项目,搭建开发环境在开发环境的/WebRoot/WEB-INF下建立lib文件夹,存放需要使用的jar包常用的包:mysqldriver.jarbeanutil.jarcommons-logging.jarjstl.jarstandard.jar3.java内部书写,建立domain包在其下书写bean类,类的字段与数据库对应4.定义dao和其接口(1)接口dao包:对daoimlents包进行抽象(为了增

基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)

最近看老罗视频,做了一个简单的用户注册系统.用户通过网页(JSP)输入用户名.真名和密码,Servlet接收后通过JDBC将信息保存到MySQL中.虽然是个简单的不能再简单的东西,但麻雀虽小,五脏俱全,在此做一归纳和整理.下面先上源码: 一.index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path =