用Servlet对MySQL数据库进行增删改查

用Servlet对MySQL数据库进行增删改查

采用MVC框架

  • 分层截图

在这里插入图片描述

属性层:

package com.model;

import java.util.Date;

/**
 * 电表结算表的属性
 * @author 王炳祥
 *
 */

public class MeterSettlement {
	private int metersandsettlementid;//主键
	private String metersettlementnumber;//电表结算编号
	private int electricmeternumber;//电表编号
	private float unitprice;//单价
	private float price;//总费用
	private float lastaccountbalance;//上次账户余额
	private float amountofpayment;//本次缴纳金额
	private Date createtime;//创建时间
	private String creater;//创建人
	private Date updatetime;//更新时间
	private String updater;//更新人
	private String ispostpone;//是否顺延
	private float init;//重调的初始值
	private String reinitexplain;//初始值说明
	private String accessory;//附件
	private String isinit;//是否为调平差值数据
	private String state;//状态
	public int getMetersandsettlementid() {
		return metersandsettlementid;
	}
	public void setMetersandsettlementid(int metersandsettlementid) {
		this.metersandsettlementid = metersandsettlementid;
	}
	public String getMetersettlementnumber() {
		return metersettlementnumber;
	}
	public void setMetersettlementnumber(String metersettlementnumber) {
		this.metersettlementnumber = metersettlementnumber;
	}
	public  int getElectricmeternumber() {
		return electricmeternumber;
	}
	public void setElectricmeternumber(int electricmeternumber) {
		this.electricmeternumber = electricmeternumber;
	}
	public float getUnitprice() {
		return unitprice;
	}
	public void setUnitprice(float unitprice) {
		this.unitprice = unitprice;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public float getLastaccountbalance() {
		return lastaccountbalance;
	}
	public void setLastaccountbalance(float lastaccountbalance) {
		this.lastaccountbalance = lastaccountbalance;
	}
	public float getAmountofpayment() {
		return amountofpayment;
	}
	public void setAmountofpayment(float amountofpayment) {
		this.amountofpayment = amountofpayment;
	}
	public Date getCreatetime() {
		return createtime;
	}
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}
	public String getCreater() {
		return creater;
	}
	public void setCreater(String creater) {
		this.creater = creater;
	}
	public Date getUpdatetime() {
		return updatetime;
	}
	public void setUpdatetime(Date updatetime) {
		this.updatetime = updatetime;
	}
	public String getUpdater() {
		return updater;
	}
	public void setUpdater(String updater) {
		this.updater = updater;
	}
	public String getIspostpone() {
		return ispostpone;
	}
	public void setIspostpone(String ispostpone) {
		this.ispostpone = ispostpone;
	}
	public float getInit() {
		return init;
	}
	public void setInit(float init) {
		this.init = init;
	}
	public String getReinitexplain() {
		return reinitexplain;
	}
	public void setReinitexplain(String reinitexplain) {
		this.reinitexplain = reinitexplain;
	}
	public String getAccessory() {
		return accessory;
	}
	public void setAccessory(String accessory) {
		this.accessory = accessory;
	}
	public String getIsinit() {
		return isinit;
	}
	public void setIsinit(String isinit) {
		this.isinit = isinit;
	}
	public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
	

}

连接层:

package com.conn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;



/**
 * 连接数据库驱动
 * @author 王炳祥
 *
 */
public class ConDate {
	Connection con = null;
	/**
	 * 连接数据
	 * @return返回连接对象
	 */
	public Connection getCon() {
		
		
		try {
			//1,加载驱动程序
			Class.forName("com.mysql.jdbc.Driver");
			
			//2,获得数据库的链接             [数据库连接地址 端口号 用户名 密码]
		    con = DriverManager.getConnection("jdbc:mysql://10.96.126.184:3306/system_power_factory", "root", "root");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("获得加载的驱动发生错误,详情为:"+e.getMessage());//e.getMessage():获得错误信息
			
			
		}
		 catch ( SQLException e) {
				// TODO Auto-generated catch block
				System.out.println("加载数据库连接报错发生错误,详情为:"+e.getMessage());//e.getMessage():获得错误信息
		 }
		return con;
	}
	
	//设置关闭
	public void setClose() {
		try {
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

Dao层

package com.dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.conn.ConDate;
import com.model.MeterSettlement;
import com.sun.org.glassfish.external.statistics.annotations.Reset;
import com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * 对电表结算表进行操作
 * 
 * @author 王炳祥
 *
 */

public class MeterSettlementDao {

	Connection con = null;
	ConDate conn = new ConDate();

	/**
	 * 给电表结算表添加数据
	 * 
	 * @param meterSettlement 用户实体
	 * @return 返回是否添加成功
	 */
	public int add(MeterSettlement meterSettlement) {
		System.out.println("进入添加方法");
		int num = 0;
		// 1 创建sql对象
		String sql = "INSERT INTO `metersandsettlement` (metersandsettlementid,electricmeternumber)VALUE(?,?)";
		// 创建执行sql的对象
		PreparedStatement ps;
		try {
			con = conn.getCon();
			ps = con.prepareStatement(sql);

			// 设置查询条件
			ps.setInt(1, meterSettlement.getMetersandsettlementid());
			ps.setInt(2, meterSettlement.getElectricmeternumber());

			num = ps.executeUpdate();

			ps.close();
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return num;
	}

	/**
	 * 根据电表号更新用户信息
	 * 
	 * @param meterSettlement 用户实体
	 * @return 更新是否成功
	 */
	public int update(MeterSettlement meterSettlement) {
		System.out.println("进入更新方法");
		int isSuccess = 0;
		// 1 创建sql对象

		String str = "UPDATE metersandsettlement SET unitprice=? WHERE metersandsettlementid=?";
		// 2 创建执行sql的对象
		PreparedStatement ps;
		
		try {
			con = conn.getCon();
			ps = con.prepareStatement(str);
			
			// 设置查询条件
			ps.setFloat(1, meterSettlement.getUnitprice());
			ps.setInt(2, meterSettlement.getMetersandsettlementid());
			
			isSuccess = ps.executeUpdate();
			ps.close();
			con.close();
			
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return isSuccess;
	}

	/**
	 * 根据电表编号删除用户信息
	 * 
	 * @param electricmeternumber 电表编号
	 * @return 删除是否成功
	 */
	public int del(MeterSettlement meterSettlement) {
		System.out.println("进入删除方法");
		int isDel = 0;
		//1创建sql对象
		String str = "DELETE FROM metersandsettlement WHERE metersandsettlementid=?"; 
		//2 创建执行sql语句的对象
		PreparedStatement ps;
		con = conn.getCon();
		try {
			ps = con.prepareStatement(str);
			
			ps.setInt(1, meterSettlement.getMetersandsettlementid());
			
			
			isDel = ps.executeUpdate();
			System.out.println("删除的行数"+isDel);
			ps.close();
			con.close();
			
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

		return isDel;
	}

	/**
	 * 根据查询条件返回查询结果
	 * 
	 * @param meterSettlement 查询条件
	 * @return 返回查询后的集合
	 */
	public List<MeterSettlement> getAll(MeterSettlement meterSettlement) {
		System.out.println("进入查询方法");
		List<MeterSettlement> lister = new ArrayList<MeterSettlement>();
		/**
		 * 创建sql字符串
		 */
		String str = "SELECT * from metersandsettlement u where metersandsettlementid=? and electricmeternumber=?";
		int electricmeternumber = 0;
		int metersandsettlementid = 0;
		if (meterSettlement.getElectricmeternumber() != 0 && meterSettlement.getMetersandsettlementid() != 0) {
			electricmeternumber = meterSettlement.getElectricmeternumber();
			metersandsettlementid = meterSettlement.getMetersandsettlementid();

		}
		con = conn.getCon();
		try {
			// 创建执行sql的对象
			PreparedStatement ps = con.prepareStatement(str);
			System.out.println("查询语句:" + str);
			// 设置查询条件
			ps.setInt(1, metersandsettlementid);
			ps.setInt(2, electricmeternumber);
			// 返回查询结果的记录集
			ResultSet rs = ps.executeQuery();

			// 将记录集存到集合中
			while (rs.next()) {
				// 声明一个实体对
				MeterSettlement meterSettlement1 = new MeterSettlement();
				// 给对象赋值 传的是索引值 不是变量
				meterSettlement1.setMetersandsettlementid(rs.getInt("metersandsettlementid"));// 主键
				meterSettlement1.setElectricmeternumber(rs.getInt("electricmeternumber"));// 电表编号
				meterSettlement1.setMetersettlementnumber(rs.getString("metersettlementnumber"));// 电表结算编号
				meterSettlement1.setUnitprice(rs.getFloat("unitprice"));// 单价
				meterSettlement1.setPrice(rs.getFloat("price"));// 总费用
				meterSettlement1.setLastaccountbalance(rs.getFloat("lastaccountbalance"));// 上次账户余额
				meterSettlement1.setAmountofpayment(rs.getFloat("amountofpayment"));// 本次缴纳金额

				meterSettlement1.setCreatetime(rs.getDate("createtime"));// 创建时间
				meterSettlement1.setCreater(rs.getString("creater"));// 创建人
				meterSettlement1.setUpdatetime(rs.getDate("updatetime"));// 更新时间
				meterSettlement1.setUpdater(rs.getString("updater"));// 更新人
				meterSettlement1.setIspostpone(rs.getString("ispostpone"));// 是否顺延
				meterSettlement1.setInit(rs.getFloat("init"));// 重调的初始值
				meterSettlement1.setReinitexplain(rs.getString("reinitexplain"));// 初始值说明
				meterSettlement1.setAccessory(rs.getString("accessory"));// 附件
				meterSettlement1.setState(rs.getString("state"));// 状态

				// 将实体对象添加到集合中
				lister.add(meterSettlement1);

			}
			// 关闭记录集
			rs.close();
			// 关闭执行的sql对象
			ps.close();
			// 关闭连接
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return lister;

	}
}

Services层

package com.services;

import java.util.ArrayList;
import java.util.List;

import com.model.MeterSettlement;
import com.dao.MeterSettlementDao;

/**
 * 对电表结算表操作前所必需的完成的业务进行编写
 * @author 王炳祥
 *
 */

public class MeterSettlementServices {
	//创建一个MeterSettlementDao的对象
	MeterSettlementDao MeterSettlementDao = new MeterSettlementDao();
	/**
	 * 给电表结算表添加数据
	 * @param meterSettlement 用户实体
	 * @return 返回是否添加成功
	 */
	public int add(MeterSettlement meterSettlement) {
		System.out.println("进入添加业务");
//		List <MeterSettlement> lister = new ArrayList <MeterSettlement>();
		int num=0;
		//电表编号不能重复
		MeterSettlement meterSettlement01 = new MeterSettlement();
		//从添加的实体类中获取电脑编号
		meterSettlement01.setElectricmeternumber(meterSettlement.getElectricmeternumber());
		//获取有多少电表编号相同的人数
		List<MeterSettlement> listMeterSettlement = MeterSettlementDao.getAll(meterSettlement01);
		System.out.println(listMeterSettlement);
		//判断是否可以添加
		if(listMeterSettlement.size()>0) {
			num = -1;  //电表号重复
		}else {
			//添加数据
			num = MeterSettlementDao.add(meterSettlement);
			
		}

		System.out.println("返回添加业务流程");
		return num;
	}
	/**
	 * 根据电表号更新用户信息
	 * @param meterSettlement 用户实体
	 * @return 更新是否成功
	 */
	public int update(MeterSettlement meterSettlement) {

		System.out.println("进入更新业务");
		int isSuccess = 0;
		//电表编号不可修改
		MeterSettlement meterSettlement01 = new MeterSettlement();
		//从添加的实体类中获取电表编号
		meterSettlement01.setElectricmeternumber(meterSettlement.getElectricmeternumber());
		//获取有多少电表编号相同的人数
		List<MeterSettlement> listMeterSettlement = MeterSettlementDao.getAll(meterSettlement01);
		System.out.println(listMeterSettlement);
		//判断是否可以添加
		if(listMeterSettlement.size()>0) {
			isSuccess = -1;  //电表号重复
			System.out.println("1354456");
		}else {
			//gengxin数据
			isSuccess = MeterSettlementDao.update(meterSettlement);
			System.out.println(isSuccess);
			
		}
		
		
		
		return isSuccess;
	}

	/**
	 * 根据电表编号删除用户信息
	 * @param electricmeternumber 电表编号
	 * @return 删除是否成功
	 */
	public int del(MeterSettlement meterSettlement) {
		System.out.println("进入删除业务");
		
		int isDel = 0;
		//电表编号不可删除
		MeterSettlement meterSettlement01 = new MeterSettlement();
		//从添加的实体类中获取电表编号
		meterSettlement01.setElectricmeternumber(meterSettlement.getElectricmeternumber());
		//获取有多少电表编号相同的人数
		List<MeterSettlement> listMeterSettlement = MeterSettlementDao.getAll(meterSettlement01);
		System.out.println(listMeterSettlement);
		//判断是否可以添加
		if(listMeterSettlement.size()>1) {
			isDel = -1;  //电表号重复
			System.out.println("1354456");
		}else {
			//gengxin数据
			isDel = MeterSettlementDao.del(meterSettlement);
			System.out.println(isDel);
			
		}
		
		
		return isDel;
	}
	/**
	 * 根据查询条件返回查询结果
	 * @param meterSettlement 查询条件
	 * @return 返回查询后的集合
	 */
	public List<MeterSettlement> getAll(MeterSettlement meterSettlement){
		System.out.println("进入查询业务:");

		List <MeterSettlement> lister = new ArrayList <MeterSettlement>();
		lister = MeterSettlementDao.getAll(meterSettlement);
		if(lister.size()>0) {
			System.out.println("有值"+lister);
		}
		return lister;
		
	}

}

Controller层

package com.controller;
/**
 * 接收前端所有的有关电表结算表的信息
 */

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 com.google.gson.Gson;
import com.model.MeterSettlement;
import com.mysql.fabric.Response;
import com.services.MeterSettlementServices;
import com.sun.net.httpserver.HttpServer;

@WebServlet("/MeterSettlement")
public class MeterSettlementController extends HttpServlet {

	private static Gson gson = new Gson();

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		// 用户所做的操作
		String oper = req.getParameter("oper");
		System.out.println("获取地址栏当中的数据为" + oper);
		// 电表结算表的数据
		System.out.println(req.getParameter("electricmeternumber"));
		
		
		MeterSettlement me = new MeterSettlement();
		if (req.getParameter("electricmeternumber") != null) {
			int electricmeternumber = Integer.parseInt(req.getParameter("electricmeternumber"));
			int metersandsettlementid = Integer.parseInt(req.getParameter("metersandsettlementid"));
			
			
//			System.out.println("获取地址栏当中的数据为" + electricmeternumber);

			
			
			if (oper != null) {
				MeterSettlementServices meterSettlementServices = new MeterSettlementServices();
				MeterSettlement meterSettlement = new MeterSettlement();
				// 进行赋值
				meterSettlement.setElectricmeternumber(electricmeternumber);
				meterSettlement.setMetersandsettlementid(metersandsettlementid);
				
				
				// 操作内容
				switch (oper) {
				case "1":
					// 查询
					if(metersandsettlementid!=0&&electricmeternumber != 0) {
						List <MeterSettlement> lister=meterSettlementServices.getAll(meterSettlement);
						String str = gson.toJson(lister);
						resp.getWriter().print(str);
					}

					break;
				case "2":
					// 添加
					if (electricmeternumber != 0) {
						int a=meterSettlementServices.add(meterSettlement);
						String str = gson.toJson(a);
						resp.getWriter().print(str);
					} else {

					}

					break;
				case "3":
					// 更新
					float unitprice = Float.valueOf(req.getParameter("unitprice"));
					meterSettlement.setPrice(unitprice);
					int gx = meterSettlementServices.update(meterSettlement);
					System.out.println(gx);
					break;
				case "4":
					// 删除
					int sc = meterSettlementServices.del(meterSettlement);

					System.out.println(sc);
					break;

				}
			} else {

			}
		}
		// 设置返回信息
		List<MeterSettlement> meterSettlementList = new ArrayList<MeterSettlement>();
		// 将所有的返回值写入map中
		Map map = new HashMap();

		map.put("code", "1");// 返回编号 1:成功 0:失败 -1:电表编号重复
		map.put("statue", "success");
		map.put("result", "meterSettlement");
		map.put("electricmeternumber",me.getElectricmeternumber());
		map.put("metersandsettlementid", me.getMetersandsettlementid());
		
		// 将数据转化为字符串
		String rs = gson.toJson(map);
		// 将数据发送后进行打印
		resp.getWriter().print(rs);

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doGet(req, resp);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值