package servlet; import dao.ScoreD; import dao.StudentD; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/add_student") public class add_student extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); StudentD studentD = new StudentD(); ScoreD scoreD = new ScoreD(); String id = request.getParameter("id"); String name = request.getParameter("name"); String sex = request.getParameter("sex"); String major = request.getParameter("major"); String school_date = request.getParameter("school_date"); try { studentD.insertStudent(id, name, sex, school_date, major); scoreD.insertScore(id); } catch (Exception e){ out.print(e); } response.sendRedirect("one_page_student"); } } 数据结构
时间: 2024-04-28 12:21:01 浏览: 137
这段代码是一个 Java Servlet,用于添加学生信息和成绩信息到数据库中。它使用了两个 DAO(Data Access Object)类:StudentD 和 ScoreD,分别用于将学生信息和成绩信息插入到数据库中。在 doPost 和 doGet 方法中,先获取请求中的参数值,然后调用 StudentD 和 ScoreD 的插入方法将数据插入数据库中。如果出现异常,则将异常信息输出到页面上。最后,重定向到 one_page_student 页面。
相关问题
<%@ page import="dao.StudentD" %> <%@ page import="vo.Student" %> <%@ page import="dao.ScoreD" %> <%@ page import="vo.Score" %>
这是一个 JSP 页面的开头部分,用于导入相关的 Java 类。具体解释如下:
- `<%@ page import="dao.StudentD" %>`:导入名为 `StudentD` 的 `dao` 包中的类。`dao` 指的是数据访问对象,用于与数据库进行交互。
- `<%@ page import="vo.Student" %>`:导入名为 `Student` 的 `vo` 包中的类。`vo` 指的是值对象,用于封装业务逻辑中与数据相关的信息。
- `<%@ page import="dao.ScoreD" %>`:导入名为 `ScoreD` 的 `dao` 包中的类。
- `<%@ page import="vo.Score" %>`:导入名为 `Score` 的 `vo` 包中的类。
通过导入这些类,JSP 页面就可以在后续的代码中使用它们提供的方法和属性,方便开发人员进行业务逻辑的编写。
帮我看看我的代码是否低效:import csv import os from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch tokenizer = AutoTokenizer.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment') model = AutoModelForSequenceClassification.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment') i = 0 directory = "cleaned_datas_v2" for file in os.listdir(directory): with open('cleaned_datas_v2/' + file) as csvFile: rows = csv.reader(csvFile) with open("scored_reviews.csv", 'w', encoding="utf-8", newline="") as f: writer = csv.writer(f) for row in rows: i += 1 tokens = tokenizer.encode(row[0], return_tensors='pt') result = model(tokens) row.append(str(int(torch.argmax(result.logits)) + 1)) print(i) writer.writerow(row)
根据你提供的代码,以下是几个可能的改进点:
1. 在每次循环中打开和关闭文件:你的代码在每次循环中都打开和关闭了一个新的输出文件。这样做会导致性能下降,并且每个文件只包含一个行。你可以在循环之外打开输出文件,并在循环结束后关闭它。
2. 写入模式:你使用的写入模式是`'w'`,这意味着每次循环都会覆盖之前的内容。如果你想将所有行写入同一个文件,可以使用`'a'`模式(追加模式)。
3. 缓冲区大小:在写入大量数据时,使用较大的缓冲区大小可以提高写入性能。你可以尝试添加`buffering`参数来设置缓冲区大小,例如`buffering=8192`。
4. 批量处理数据:你的代码一次只处理一个数据行,这样可能会导致较慢的处理速度。你可以尝试批量处理数据行,将多个行一起输入到Bert模型中进行推断。这样可以减少模型推断的次数,提高效率。
根据以上建议,下面是代码改进的示例:
```python
import csv
import os
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')
model = AutoModelForSequenceClassification.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')
directory = "cleaned_datas_v2"
with open("scored_reviews.csv", 'w', encoding="utf-8", newline="", buffering=8192) as f:
writer = csv.writer(f)
i = 0
for file in os.listdir(directory):
with open(os.path.join(directory, file)) as csvFile:
rows = csv.reader(csvFile)
for row in rows:
i += 1
tokens = tokenizer.encode(row[0], return_tensors='pt')
result = model(tokens)
row.append(str(int(torch.argmax(result.logits)) + 1))
print(i)
writer.writerow(row)
```
请注意,这只是对你提供的代码的一种改进示例。具体效果还需要根据你的数据集大小和系统环境进行评估。
阅读全文