Experiment 4 JDBC technology

Experiment 4 JDBC technology

1. The purpose of the experiment:

1. Familiar with the installation and configuration method of MySQL; familiar with the basic programming method of JDBC; master the method of adding, deleting, modifying and checking the database in the web program;
2. Understand how to perform database programming in the comprehensive application of JSP + JavaBean + Servlet.

2. Experimental principle:

<Omitted>

3. Experimental content:

1. Design the persistent JavaBean class, design the database table structure, and store the JavaBean object. And write user interface to realize the CRUD process of data.
2. User login (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. Shopping trolley (JSP + JavaBean + MySQL)
商品表 item。Item.java 中定义和商品表对应的类 Item, Database.java 中定义所有访问数据库的类的父类 Database,ItemDao.java 中定义用于访问数据库商品表的类 ItemDao,ItemDao 类是 Database 类的子类,Cart.java 中定义了购物小车类 Cart。shopping.jsp 是商品列表页面,cart.jsp 是购物小车页面。
4. Design a shopping cart that conforms to the MVC design pattern. (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. Experimental requirements:
1. Carefully execute each step and make a good record.
2. Briefly record the experimental results to form an experimental report, which includes:
 the purpose of the experiment;
 the content of the experiment (brief record);
 the problems and solutions that occurred in the
experiment ; (emphasis)  the experiment experience (emphasis)
V 3. Experimental hours: 2 hours

101 original articles published · Liked 47 · Visitors 10,000+

Guess you like

Origin blog.csdn.net/TONGZONGE/article/details/104070186