mvc模式test

项目结构

Book.java

package beans;
public class Book {private Integer id;private String name;private double price;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}
}

BookDao.java

package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;import javax.resource.cci.ResultSet;import beans.Book;public class BookDao {
@SuppressWarnings({ "rawtypes", "unchecked" })
public ArrayList queryBookById(String id) {Connection conn=null;ArrayList books=new ArrayList();
try {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}@SuppressWarnings("unused")String url="jdbc:mysql://localhost:3306/books?useUnicode=true&charaterEncoding=UTF-8";conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/books","root","123456");String sql="select * from book where id=?";PreparedStatement ps=conn.prepareStatement(sql);ps.setString(1, id);ResultSet rs=(ResultSet) ps.executeQuery();while(rs.next()){Book book=new Book();book.setId(rs.getInt(1));book.setName(rs.getString(2));book.setPrice(rs.getDouble(3));books.add(book);}rs.close();ps.close();} catch (SQLException e) {e.printStackTrace();}finally {try{if(conn!=null){conn.close();conn=null;}}catch(Exception e){}}return books;
}
}

BookServlet.java

package servlet;import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import dao.BookDao;@SuppressWarnings("serial")
public class BookServlet extends HttpServlet {@SuppressWarnings("rawtypes")public void servlet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String id =request.getParameter("id");BookDao dao=new BookDao();ArrayList books=dao.queryBookById(id);request.setAttribute("books", books);ServletContext application =this.getServletContext();RequestDispatcher rd=application.getRequestDispatcher("/showbook.jsp");rd.forward(request, response);	}}

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>  <title>查询书籍系统</title>
</head>
<body><form action="servlet/BookServlet" method="post">
请输入id: <input type="text" name="id"><input type="submit" value="查询"></form></body>
</html>

showBook.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="dao.BookDao" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="beans.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>书籍信息</title>
</head>  
<body>
<%ArrayList books=(ArrayList)request.getAttribute("books");
%>
<table border="2">
<tr>
<td>id</td>
<td>name</td>
<td>price</td>
</tr>
<%
for (int i = 0;i < books.size();i++)
{
Book book = (Book)books.get(i);
%>
<tr>
<td><%=book.getId()%></td>
<td><%=book.getName()%></td>
<td><%=book.getPrice()%></td>
</tr>
<% 
} 
%>
</table>
</body>
</html>

books.sql

/*Navicat Premium Data TransferSource Server         : 11Source Server Type    : MySQLSource Server Version : 80030Source Host           : localhost:3306Source Schema         : booksTarget Server Type    : MySQLTarget Server Version : 80030File Encoding         : 65001Date: 05/12/2023 21:02:10
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book`  (`id` int NOT NULL,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`price` double NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES (1, '西游记', 100);SET FOREIGN_KEY_CHECKS = 1;

mysql.jar包下载

MySQLjar包官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

--更新于12-6

本文仅仅用了测试,会出现报错!!!

如报错HTTP method POST is not supported by this URL

或者The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files等

经过一晚上测试,发现是由于自己book.java文件使用私有属性,以及在getid方法中出现于bookdao.java的类型并不匹配,加上EE5的library的导入,最后完成调试!

下面是改后的结构

数据库

数据导入用的是MySQL的workbench,可复制下来,直接在workbench中运行即可

-- MySQL dump 10.13  Distrib 8.0.32, for Win64 (x86_64)
--
-- Host: localhost    Database: book
-- ------------------------------------------------------
-- Server version	8.0.32/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
-- Table structure for table `book`
--DROP TABLE IF EXISTS `book`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `book` (`id` varchar(45) NOT NULL,`name` varchar(45) DEFAULT NULL,`price` float DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `book`
--LOCK TABLES `book` WRITE;
/*!40000 ALTER TABLE `book` DISABLE KEYS */;
INSERT INTO `book` VALUES ('1','水浒传',88.8);
/*!40000 ALTER TABLE `book` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2023-12-06  1:54:04

数据库数据完成后,进行book.java的修改

package beans;public class Book {String id;String name;float price;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}
}

 重启tomcat6.0

 

最后成功

在今晚test时候发现的问题

 注意变量的类型,也可以继续使用id int ,price double型

重新生成方法

select all 选择public,生成

代码

package beans;public class Book {int id;String name;double price;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}}

修改bookdao.java 

重启后访问报错

HTTP Status 500 - javax.servlet.ServletException: java.lang.NoSuchMethodError: beans.Book.getId()Ljava/lang/String; 

(有待解决)

没有该方法调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不会代码(零基础)学语音开发(语音播报板载双按键状态)

这个例程实现语音播报VDB-150S语音开发板板载的按键开关SW1、SW2的按下情况。 语音开发板将板载的按键开关SW1、SW2的一端都接到了GND端&#xff0c;另一端分别连接到语音模块的GPIO_B0、GPIO_B1引脚&#xff0c;当按下SW1时GPIO_B0引脚会输入低电平&#xff0c;当按下SW2时GP…

老师可以做副业吗

当老师&#xff0c;除了教学工作之外&#xff0c;还可以怎样来丰富自己的职业体验和增加收入呢&#xff1f; 自媒体作者 许多教师选择成为自媒体作者&#xff0c;分享自己的教育心得、教学经验以及与学生相处的生活状态等。通过撰写文章、发布在社交媒体上&#xff0c;不仅可以…

Objaverse:大规模3D模型开放数据集

研究人员推出了 Objaverse&#xff0c;这是一个“包含文本描述的3D 对象的海量开放数据集”。 它包含大约 800 000 个 3D 模型以及文本描述。 Objaverse数据集可以从huggingface下载&#xff0c;并且是通过 Sketchfab&#xff08;Epic Games 旗下的在线平台&#xff09;上共享…

又有狗咬娃!江西8岁男童买早餐被狗扑咬,满脸血缝了90多针!

位于江西省吉安市吉安县实验小学门口&#xff0c;一名年仅8岁的男童在去买早餐的路上遭遇了一场恐怖的袭击。据报道&#xff0c;孩子是在清晨的买早餐路上被一只恶狗扑倒咬伤的&#xff0c;伤口深可见骨。 孩子的母亲悲痛欲绝地描述了当时的情景&#xff0c;孩子被咬伤后躺在地…

ky10 x86 一键安装wvp gb28181 pro平台

下载代码 git clone https://gitcode.net/zengliguang/ky10_x86_wvp_record_offline_install.gitfinalshell mobaxterm 修改服务器ip 查看服务器ip ip a 在脚本文件中修改服务器ip 执行安装脚本 切换到root用户 sudo su cd ky10_x86_wvp_record_offline_install/ sourc…

智能优化算法应用:基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黑寡妇算法4.实验参数设定5.算法结果6.参考文献7.…

Git 应用 -- 多人协作开发场景1

目录 1. 既查看本地仓库的分支&#xff0c;又查看远程仓库的分支&#xff1a; git branch -a &#xff08;但是远程的分支只能查看&#xff0c;不能直接切换到远程的分支上&#xff09; 2. 本地的分支和远程的分支建立连接&#xff1a;git checkout -b [分支名] [要连接远程的…

B027-MySQL增强

目录 多表查询为什么要用多表查询&#xff1f;笛卡尔积和内连接消除笛卡尔积外键数据库内连接练习左连接查询和右连接查询等值连接out join自连接子查询 数据操作(DML)数据的插入数据的删除数据的修改 数据库的备份与恢复Dos命令行窗口导出Dos命令行窗口导入Navicat导出Navicat…

if与switch语句的运用—输出成绩

1.给出一个百分制成绩&#xff0c;要求输出成绩等级A、B、C、D、E。90分以上为A&#xff0c;81-89分为B&#xff0c;70-79分为C&#xff0c;60&#xff0d;69分为D&#xff0c;60分以下为E。 if语句实现 #include <stdio.h> int main() { int score; printf(&qu…

基于SSM的图书馆管理系统运行部署教程

基于SSM的图书馆管理系统运行部署教程 1、下载2、数据准备-导入sql文件3、项目导入idea4、项目运行5、测试6、日志乱码问题 1、下载 源码下载地址&#xff1a; https://download.csdn.net/download/weixin_44796239/85072348下载之后&#xff0c;会得到一个压缩包&#xff1a; …

LeetCode-470. 用 Rand7() 实现 Rand10()【数学 拒绝采样 概率与统计 随机化】

LeetCode-470. 用 Rand7 实现 Rand10【数学 拒绝采样 概率与统计 随机化】 题目描述&#xff1a;解题思路一&#xff1a;首先说一个结论就是(rand_X() - 1) Y rand_Y() > [1,X*Y]&#xff0c;即可以等概率的生成[1, X * Y]范围的随机数&#xff0c;其实就像军训的时候报数…

抖店怎么对接达人带货?达人渠道整理,实操详解!

我是电商珠珠 很多人在抖店开通后&#xff0c;按照流程去正常的跑自然流量&#xff0c;再去找达人带货让自己店铺的流量增多&#xff0c;得到相应的曝光。 但是一些新手小白并不知道从哪去找达人&#xff0c;或者说不知道怎么去筛选达人。 一开始所有人都想着去找头部主播&a…

ubuntu启动kafka报错Could not create the Java Virtual Machine.

网上有两种方式&#xff0c;但是需要具体看自己的错误信息&#xff0c;我的错误信息如下: 这里大概是说要写入日志无权限&#xff0c;所以执行的时候&#xff0c;前面加一下sudo 执行成功。

阿里云语雀频繁崩溃,有什么文档管理工具是比较稳定的?

10月23 日14:00左右&#xff0c;蚂蚁集团旗下的在线文档编辑与协同工具语雀发生服务器故障&#xff0c;在线文档和官网都无法打开。直到当天晚上22:24&#xff0c;语雀服务才全部恢复正常。从故障发生到完全恢复正常&#xff0c;语雀整个宕机时间将近 8 小时&#xff0c;如此长…

【SpringCloud篇】Eureka服务的基本配置和操作

文章目录 &#x1f339;简述Eureka&#x1f6f8;搭建Eureka服务⭐操作步骤⭐服务注册⭐服务发现 &#x1f339;简述Eureka Eureka是Netflix开源的一个基于REST的服务治理框架&#xff0c;主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成&#…

机器学习与 S3 相集成 :释放数据的力量

文章作者&#xff1a;Libai 引言 在当今数据驱动的世界中&#xff0c;企业不断寻求如何高效利用企业自身所产生的数据的解决方案。机器学习已经成为一种提取有价值的见解和做出数据驱动决策的强大工具。然而&#xff0c;机器学习模型的成功在很大程度上依赖于高质量数据的可用…

算能技术资料地址、Demo github地址

技术资料地址&#xff1a; https://developer.sophgo.com/site/index/material/38/all.html Demo github地址&#xff1a;https://github.com/sophgo/sophon-demo

人工智能在警务工作中的运用

AI 能否帮助警察打击犯罪&#xff1f; 执法部门负责维护公共安全&#xff0c;他们必须处理随之而来的所有挑战。幸运的是&#xff0c;警察可以依靠技术来处理很多工作。近几年来&#xff0c;尤其是人工智能技术在全球变成了警务工作中的一个重要部分。 随着基于 AI 的警务技术…

c++搭建http服务器

HTTP请求协议格式如下&#xff1a; HTTP响应协议格式如下&#xff1a; #include <iostream> #include <winsock2.h> #include <ws2tcpip.h> #include <string>#pragma comment(lib, "ws2_32.lib")//std::string generateResponse(const st…