javaweb教程详解,如何在javaweb中与数据库互动实现查询?

TheDisguiser 2020-05-21 22:06:51 java常见问答 4956

上几次我们了解了javaweb的各种概念,相信你们已经对javaweb有了比较深入的理解了吧。这次我们将通过一个实例来更加直观的了解javaweb是如何与数据库交互的,下面这就来看看吧。

一、首先我们先创建一个javaweb项目并在新建的webContent文件夹中新建test.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!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>
    <a href="listAllStudentsServlet">List All Students</a>
</body> 
</html>

二、在Java的src目录下ListAllStudentServlet.java,并对其进行配置

package com.javaweb.mvc;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ListAllStudentsServlet extends HttpServlet
{
    private static final long serialVersionUID = 1 L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        StudentDao studentDao = new StudentDao();
        List < Student > students = studentDao.getAll();
        request.setAttribute("students", students);
        request.getRequestDispatcher("/students.jsp")
            .forward(request, response);
    }
}

三、创建Student实体类

package com.javaweb.mvc;
public class Student
{
    private Integer id;
    private String studentName;
    private String location;
    private String telephone;
    public Integer getId()
    {
        return id;
    }
    public void setId(Integer id)
    {
        this.id = id;
    }
    public String getStudentName()
    {
        return studentName;
    }
    public void setStudentName(String studentName)
    {
        this.studentName = studentName;
    }
    public String getLocation()
    {
        return location;
    }
    public void setLocation(String location)
    {
        this.location = location;
    }
    public String getTelephone()
    {
        return telephone;
    }
    public void setTelephone(String telephone)
    {
        this.telephone = telephone;
    }
    public Student(Integer id, String studentName, String location, String telephone)
    {
        super();
        this.id = id;
        this.studentName = studentName;
        this.location = location;
        this.telephone = telephone;
    }
}

四、在设计层创建StudentDao类

package com.javaweb.mvc;
import java.util.ArrayList; 
import java.util.List; 
import java.sql.*;
public class StudentDao { 
    
    public List<Student> getAll(){ 
        List<Student> students = new ArrayList<Student>(); 
        Connection conn = null; 
        PreparedStatement ps = null; 
        ResultSet rs = null; 
        
        try { 
            
                Class.forName("com.mysql.jdbc.Driver"); 
            
            String url = "jdbc:mysql://localhost:3306/student?user=root&password=1234"; 
            String user = "root"; 
            String password = "1234"; 
            String sql = "select * from stu"; 
            conn = DriverManager.getConnection(url, user, password); 
            ps = conn.prepareStatement(sql); 
            rs = ps.executeQuery(); 
            while(rs.next()){ 
                int id = rs.getInt(1); 
                String studentName = rs.getString(2); 
                String location = rs.getString(3); 
                String telephone = rs.getString(4); 
                
                Student student = new Student(id, studentName, location, telephone); 
                
                students.add(student); 
            } 
            
        }catch (ClassNotFoundException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
        catch (SQLException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        }finally{ 
            try { 
                if(rs != null) 
                    rs.close(); 
                if(ps != null) 
                    ps.close(); 
                if(conn != null) 
                    conn.close(); 
            } catch (SQLException e) { 
                // TODO Auto-generated catch block 
                e.printStackTrace(); 
            } 
        } 
        
        return students; 
    }
}

五、在之前的webContent中新建students.jsp模板页面

<%-- 显示学生信息 --%> 
<%@page import="java.util.List"%> 
<%@page import="com.javaweb.mvc.Student" %> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!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>
    
    <% 
        List<Student> students = (List<Student>)request.getAttribute("students"); 
        
    %> 
    <table> 
        <tr> 
            <th>id</th> 
            <th>studentName</th> 
            <th>location</th> 
            <th>telephone</th> 
        </tr> 
        
        <% 
            for(Student student:students){ 
        %> 
            <tr> 
                <td><%= student.getId() %></td> 
                <td><%= student.getStudentName() %></td> 
                <td><%= student.getLocation() %></td> 
                <td><%= student.getTelephone() %></td> 
            </tr> 
        <% 
            } 
        %> 
        
    </table> 
    
   
</body> 
</html>

六、添加与数据库连接的JDBC驱动

javaweb教程

如图:需要添加在lib文件夹,因为lib文件夹中存放支持web应用运行的JAR文件

七、这样一个javaweb项目就已经实现了查询了,下面就只需要打开网页运行就可以了。

以上就是关于javaweb实例教程的所有内容了,更多java入门知识请持续关注我们探寻吧。

推荐阅读:

java和javaweb有什么关系吗?它们之间的区别是什么?

javaweb学习路线有哪些?如何学习?

javaweb是前端还是后端?如何区分?