実験4 JDBCテクノロジー

実験4 JDBCテクノロジー

1.実験の目的:

1. MySQLのインストールおよび構成方法に精通している、JDBCの基本的なプログラミング方法に精通している、Webプログラムでデータベースを追加、削除、変更、およびチェックする方法を習得している。
2. JSP + JavaBean +サーブレットの包括的なアプリケーションでデータベースプログラミングを実行する方法を理解します。

2.実験原理:

<省略>

3.実験的な内容:

1.永続JavaBeanクラスを設計し、データベーステーブル構造を設計し、JavaBeanオブジェクトを格納します。データのCRUDプロセスを実現するユーザーインターフェイスを記述します。
2.ユーザーログイン(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.ショッピングトロリー(JSP + JavaBean + MySQL)
商品表 item。Item.java 中定义和商品表对应的类 Item, Database.java 中定义所有访问数据库的类的父类 Database,ItemDao.java 中定义用于访问数据库商品表的类 ItemDao,ItemDao 类是 Database 类的子类,Cart.java 中定义了购物小车类 Cart。shopping.jsp 是商品列表页面,cart.jsp 是购物小车页面。
4. MVC設計パターンに準拠するショッピングカートを設計します。(JSP + JavaBean +サーブレット+ 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.実験要件:
1.各ステップを慎重に実行し、適切な記録を作成します。
2、実験の要約レコードを含む試験レポートフォームにダウン結果:
Lの実験の目的と、
L実験コンテンツ(要約レコード);
L実験問題と解決策によって、(フォーカス)
L試験経験(フォーカス)
5 3.実験時間:2時間

101件の元の記事が公開されました 高く評価されました 47 訪問者10,000人以上

おすすめ

転載: blog.csdn.net/TONGZONGE/article/details/104070186