Experimento 4 tecnología JDBC

Experimento 4 tecnología JDBC

1. El propósito del experimento:

1. Familiarizado con el método de instalación y configuración de MySQL; familiarizado con el método de programación básico de JDBC; dominar el método de agregar, eliminar, modificar y verificar la base de datos en el programa web;
2. Entender cómo realizar la programación de bases de datos en la aplicación integral de JSP + JavaBean + Servlet

2. Principio experimental:

<Omitido>

3. Contenido experimental:

1. Diseñe la clase JavaBean persistente, diseñe la estructura de la tabla de la base de datos y almacene el objeto JavaBean. Y escriba la interfaz de usuario para realizar el proceso CRUD de datos.
2. Inicio de sesión de usuario (JSP + JavaBean + MySQL)
将连接数据库验证用户名和密码的代码封装在 JavaBean 中,很大程度上减少了 JSP 文件中的 Java 代码量,实现了业务逻辑和表现形式的分离。系统由用户表 user、用户类 User 和 3 个 JSP 页面构成(用户登录页面  input.jsp、处理用户登录页面login.jsp,欢迎页面 welcome.jsp)
代码:
bean
package 实验四.bean;
public class User {
    private Integer uid;
    private String username;
    private String password;

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
dao
package 实验四.dao;
import 实验四.bean.User;
import java.sql.*;
public class UserDao {

    private Connection conn = null;
    public UserDao(){

    }

    private void initConnection() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/cms";
        this.conn = DriverManager.getConnection(url, "root", "root");
    }

    public User selectUserbyusername(String username) throws Exception {

        User users = null;
        this.initConnection();
        String sql = "select username,password from t_user1" +
                " where username=?";
        PreparedStatement ps = this.conn.prepareStatement(sql);
        ps.setString(1,username);
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            users = new User();

            users.setUsername(rs.getString("username"));
            users.setPassword(rs.getString("password"));
        }

        this.conn.close();
        return users;

    }

}
input.jsp
<%@ page import="实验四.dao.UserDao" %>
<%@ page import="实验四.bean.User" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2019/12/12
  Time: 21:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    request.setCharacterEncoding("UTF-8");

    String uname=request.getParameter("username");
    String password = request.getParameter("password");
    UserDao userDao = new UserDao();
    User user = userDao.selectUserbyusername(uname);

    if(user!=null&&user.getUsername().equals(uname)&&
       user.getPassword().equals(password)){

       /* out.print(uname);
        out.print(password);*/
        %>
     <%-- <jsp:forward page="welcome.jsp"></jsp:forward>--%>

    登录成功<a href="welcome.jsp">转发到成功界面</a>
<%

    }else{

%>
登录失败,<a href="login1.jsp">返回登录页面</a>

<%
    }
%>

</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2019/12/12
  Time: 21:59
  To change this template use File | Settings | File Templates.
--%>
login.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
<h3>用户登录</h3>
<form action="input.jsp" method="post">
    <%--请输入用户 id: <input type="text" name="uid"><br>--%>
    请输入用户姓名:<input type="text" name="username"><br>
    请输入用户密码:<input type="text" name="password"><br>

    <input type="submit" value="登录">
    <input type="reset" value="重置">

</form>

</body>
</html>
welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h2>欢迎你,登陆成功!</h2>



</body>
</html>
3. Carrito de compras (JSP + JavaBean + MySQL)
商品表 item。Item.java 中定义和商品表对应的类 Item, Database.java 中定义所有访问数据库的类的父类 Database,ItemDao.java 中定义用于访问数据库商品表的类 ItemDao,ItemDao 类是 Database 类的子类,Cart.java 中定义了购物小车类 Cart。shopping.jsp 是商品列表页面,cart.jsp 是购物小车页面。
4. Diseñe un carrito de compras que se ajuste al patrón de diseño MVC. (JSP + JavaBean + Servlet + MySQL)
Book:
package 实验四.bean;

public class Book {

    private String id;
    private String bookname;
    private double bookprice;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getBookname() {
        return bookname;
    }

    public void setBookname(String bookname) {
        this.bookname = bookname;
    }

    public double getBookprice() {
        return bookprice;
    }

    public void setBookprice(double bookprice) {
        this.bookprice = bookprice;
    }
}

Bookdao:
package 实验四.dao;

import bean.Book;

import java.sql.*;
import java.util.ArrayList;

public class BookDao {
    public ArrayList<Book> queryBooksByName(String bookname) throws Exception {
        Connection conn = null;
        ArrayList<Book> books= new ArrayList<Book>();
        try {
            //获取连接
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/cms";
            conn = DriverManager.getConnection(url, "root", "root");
            // 运行SQL语句
            String sql = "SELECT ID,BOOK_NAME,BOOK_PRICE from T_BOOK WHERE BOOK_NAME LIKE '%" + bookname + "%' ";
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery(sql);
            while (rs.next()) {
                //实例化VO
                Book book = new Book();
                book.setId(rs.getString("ID"));
                book.setBookname(rs.getString("BOOK_NAME"));
                book.setBookprice(rs.getDouble("BOOK_PRICE"));
                books.add(book);
            }
            rs.close();
            stat.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {// 关闭连接
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (Exception ex) {
            }
        }
        return books;
    }
}

Addbookservlet:
package 实验四.servlet;

import bean.Book;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

public class AddBookServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();

        HttpSession session = request.getSession();
        HashMap books = (HashMap) session.getAttribute("books");

        if(books == null){
            books = new HashMap();
        }

        String id = request.getParameter("id");
        String bookname = request.getParameter("bookname");
        double bookprice = Double.valueOf(request.getParameter("bookprice"));
        Book book = new Book();
        book.setId(id);
        book.setBookname(bookname);
        book.setBookprice(bookprice);
        books.put(id, book);
        session.setAttribute("books", books);
//    ServletContext application = this.getServletContext();
//    RequestDispatcher rd = application.getRequestDispatcher("/servlet/QueryServlet");
//    rd.forward(request, response);
        response.sendRedirect("/query");

    }
}

Queryservlet:
package 实验四.servlet;

import bean.Book;
import dao.BookDao;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

public class QueryServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        //PrintWriter out = response.getWriter();
        String bookname=request.getParameter("name");
        BookDao bookDao = new BookDao();
        try {
            ArrayList<Book> books = bookDao.queryBooksByName(bookname);
            request.setAttribute("books", books);
            request.getRequestDispatcher("/addbook.jsp").forward(request,response);

        } catch (Exception e) {
            e.printStackTrace();

        }
    }
}


Removeservlet:
package 实验四.servlet;

import bean.Book;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

public class RemoveServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        String id = request.getParameter("id");

        HttpSession session = request.getSession();
        HashMap books = (HashMap)session.getAttribute("books");
        Book book = (Book)books.get(id);
        //移除相应图书
        books.remove(id);
        response.sendRedirect("/query");
    }
}


9_1.jsp:

<%@ page import="java.util.ArrayList" %>
<%@ page import="bean.Book" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2019/11/13
  Time: 12:30
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
   <form name="loginForm" action="query" method="post">
       请输入需要查询的图书名字:<input type="text" name="name"/>
            <input type="submit" value="查询">
   </form>
   <hr>
   <%
       ArrayList books = (ArrayList) request.getAttribute("books");
       if(books!=null&&books.size()>0){
   %>

   <table >
       <tr>
           <h3>所查到的图书信息:</h3>
       </tr>
       <tr >
           <td>图书名称</td>
           <td>图书价格</td>
           <td>操作</td>
       </tr>
       <tr>
           <td>
              <%
                   for(int i=0;i<books.size();i++){
                       Book book = (Book) books.get(i);
                       %>
       <tr>
           <td><%=book.getBookname()%></td>
           <td><%=book.getBookprice()%></td>
           <td><a href="add?id=<%=book.getId()%>&bookname=<%=book.getBookname()%>&bookprice=<%=book.getBookprice()%>">添加到购物车</a>
           </td>
       </tr>
         <%
                   }

                   %>
   </table>
<%
    }
%>

   <a href="/9_2.jsp">查看购物车</a>
</body>
</html>


9_2.jsp:

<%@ page import="java.util.Set" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="bean.Book" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2019/11/13
  Time: 12:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<table border="1">
    <tr bgcolor="pink">
        <td>书本名称</td>
        <td>书本价格</td>
        <td>书本编号</td>
        <td>删除</td>
    </tr>
    <%
        HashMap books = (HashMap) session.getAttribute("books");
        Set set = books.keySet();
        Iterator ite = set.iterator();

        Book book = new Book();
        double count =0;

        while (ite.hasNext()) {
            String id = (String) ite.next();
             book = (Book) books.get(id);


    %>
    <tr bgcolor="yellow">
        <td><%=book.getBookname()%></td>
        <td><%=book.getBookprice()%></td>
        <td><%=book.getId()%></td>
        <td><a href="/remove?id=<%=book.getId()%>">删除</a>

        </td>

    </tr>

    <%
            count +=book.getBookprice();
        }

    %>
    总计:<%=count%> 元.
</table>
<a href="9_1.jsp">继续买书</a>

</body>
</html>

4. Requisitos experimentales:
1. Ejecute cuidadosamente cada paso y haga un buen registro.
2. Registre brevemente los resultados experimentales para formar un informe experimental, que incluye:
 el propósito del experimento;
 el contenido del experimento (registro breve);
 los problemas y soluciones que ocurrieron en el
experimento ; (énfasis)  la experiencia del experimento (énfasis)
V 3. Horas experimentales: 2 horas.

101 artículos originales publicados · Me gustaron 47 · Visitantes más de 10,000

Supongo que te gusta

Origin blog.csdn.net/TONGZONGE/article/details/104070186
Recomendado
Clasificación