新能源汽车动力电池远程监控系统
编写语言JavaWeb
所需完成功能显示所有、添加功能、ajax删除、修改功能、查询功能
本章完成功能添加数据
环境部署Tomcat 8.5.78、MySQL 5.7、JQuery 1.8.2
项目所需环境文件和工具包下载处SSOA6
接上篇文章显示所有添加数据主要也分那四个步骤
- 数据层dao类
- 业务层service类
- 显示层servlet类
- jsp文件HTML前端编写
在Power接口里编写一个添加方法,需要传一个Bean对象作为参数
package dao;
import bean.PowerBean;
import java.util.List;
public interface PowerDao {
//显示所有
List select();
//增
int insert(PowerBean powerBean);
}
此时dao的实现类会报错
ALT+Enter实现接口里的添加方法
在实现方法里执行添加操作
- 添加的SQL语句
- 参数数组
- 调用父类BaseDao里的Update方法
- 返回受影响行数
首先在数据库测试添加语句是否可用
把正确的sql语句复制到添加方法里去
写一个Object的参数数组,把SQL语句里除去id之外的值全部改写成问号,在参数数组里按照顺序用对象.方法依次获取值
调用父类update方法,把SQL语句和参数数组放进去,获得受影响行数,再返回受影响行数
@Override
public int insert(PowerBean powerBean) {
//sql
String sql = "INSERT INTO powerbattery VALUES (NULL,?,?,?,?,?)";
//参数数组
Object[] objects ={
powerBean.getCarName(),
powerBean.getCityName(),
powerBean.getUsername(),
powerBean.getPressureValue(),
powerBean.getTime()
};
int i = commonUpdate(sql, objects);
return i;
}
数据层dao类完毕
业务层service同样的,首先在接口里写一个添加方法,需要把除id以外的所有列作为参数加进去,参数必须为String类型,后面添加数据时类型不一样报错用类型强转,转换为原来的数据类型
接下来在service的实现类里面按照刚才数据层的方法重写添加方法
在添加方法里实例化一个bean对象,把参数赋值给bean对象,然后用数据层对象.insert方法(bean对象),返回获得的受影响行数
@Override
public int insert(String carName, String cityName, String username, String pressureValue, String time) {
//实例化Bean对象
PowerBean powerBean = new PowerBean();
powerBean.setCarName(carName);
powerBean.setCityName(cityName);
powerBean.setUsername(username);
powerBean.setPressureValue(Integer.valueOf(pressureValue));
powerBean.setTime(DateHelper.strToDate(time));
return powerDao.insert(powerBean);
}
service类完毕
显示层servlet新建一个add类,add类继承HttpServlet类
两种访问方法,get访问这个页面就显示等会要编写的add前端页面
post方法访问就添加数据
package servlet;
import service.Impl.PowerServiceImpl;
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.util.Date;
@WebServlet("/add")
public class Add extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("add.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//初始化编码
resp.setHeader("Content-Type","text/html;charset=UTF-8");
resp.setCharacterEncoding("utf8");
req.setCharacterEncoding("utf8");
//获取数据
String carName = req.getParameter("carName");
String cityName = req.getParameter("cityName");
String username = req.getParameter("username");
String pressureValue = req.getParameter("pressureValue");
String time = req.getParameter("time");
//业务员干活
PowerServiceImpl powerService = new PowerServiceImpl();
powerService.insert(carName,cityName,username,pressureValue,time);
//返回结果
resp.sendRedirect("index.jsp");
}
}
- 首先是初始化编码,让页面编码utf8
- 用req.getParameter(参数)获取前端输入的参数
- 实例化一个service的实现类,类名.方法(添加的数据)调用业务层的添加方法
- 返回显示页面
servlet显示层完毕
add.jsp HTML前端编写<%--
Created by IntelliJ IDEA.
User: 35717
Date: 2022/6/9
Time: 15:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
本人主后端,前端可能略微有点难看
点击添加数据会跳转到添加页面
添加完数据之后会自动回到显示所有页面,刚添加的数据显示出来了之后就代表没问题了
添加数据功能完成,有问题的可以留言,本人第一次写博客,如有不好的地方请见谅



