SSM框架crud(增删改查模糊查询加分页)之增删(一)

15 篇文章 0 订阅

进行crud的前提条件必须搭建好SSM框架!!!!

第一:增加

  1.         先看图:下面这个css样式用的是bootstrap的,待会上代码看

   2.看jsp页面(主要包框js,一个form表单)

       先看body内的内容

       

<body style="background: #E8EBEE;overflow-x:hidden;">
	<div class="row pl15 pr15">
		<div class="col-lg-12">
			<div class="main-box">
				<div class="main-box-body clearfix">
				<form class="form-horizontal mt20">
				 	<table>
					   <tr>
					    <td>
						<div class="label_css pt8 pr5 fl">
						<label>药品编码</label>
						</div>
					    </td>
					    <td>
					    <div class="col-md-10">
						<div class="width100">
						<input type="text" class="form-control" placeholder="必填" id="drugs_id" name="drugs_id" />
						</div>
						</div>
					     </td>
					       
					     <td>
						<div class="label_css pt8 pr5 fl">
						<label>商品名称</label>
						</div>
					    </td>
					    <td>
					    <div class="col-md-10">
						<div class="width100">
						<input type="text" class="form-control" placeholder="必填" id="drugs_name" name="drugs_name" />
						</div>
					   </div>
					    </td>
					   <td>
					    <div class="label_css pt8 pr5 fl">
						<label>生产批号</label>
					   </div>
					     </td>
					     <td>
					   <div class="col-md-10">
						<div class="width100">
							 <input type="text" class="form-control" placeholder="必填" id="pro_num" name="pro_num" />
							</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>生产厂家</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="factory" name="factory" />
									</div>
							</div>
					        </td>
					      </tr>
					     <tr style="height:80px;">
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>规格</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="gui_ge" name="gui_ge" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>包装</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="pack" name="pack" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>单位</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="unit" name="unit" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>剂型</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="ji_xi" name="ji_xi" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>用药途径</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="method" name="method" />
									</div>
							</div>
					        </td>
					      </tr>
					     <tr style="height:50px;">
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>最大剂量</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="max_dose" name="max_dose" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>生产日期</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="pro_date" name="pro_date"  onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'1900-01-01 00:00:00'})"/>
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>有效期</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="val_date" name="val_date"  onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'1900-01-01 00:00:00'})"/>
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>是否进口</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									  <select class="fl" style="width:150px" id="input" name="input" placeholder="必填">
											<option value="0">是</option>
											<option value="1">否</option>
										</select>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>批发价</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="who_price" name="who_price" />
									</div>
							</div>
					        </td>
					      </tr>
					     <tr style="height:50px;">
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>售价</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="price" name="price" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>是否医保</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									   <select class="fl" style="width:150px" placeholder="必填" id="med_insu" name="med_insu" >
											<option value="0">是</option>
											<option value="1">否</option>
										</select>
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>是否高危</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									   <select class="fl" style="width:150px" placeholder="必填" id="is_risk" name="is_risk" >
											<option value="0">是</option>
											<option value="1">否</option>
										</select>
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>危险级别</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									   <select class="fl" style="width:150px" placeholder="必填" id="ha_level" name="ha_level" >
											<option value="0">A</option>
											<option value="1">B</option>
											<option value="2">C</option>
										</select>
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>药品种类</label>
							</div>
					        </td>
					        <td>
							   <div class="col-md-10">
									<div class="width100">
										 <select class="pt10" style="width: 150px" id="drugs_type" name="drugs_type">
											<option value="">全部</option>
											<option value="0">静脉用和口服化疗药</option>
											<option value="1">抗血栓药物</option>
											<option value="2">硬膜外或鞘内注射药</option>
											<option value="3">口服降糖药</option>
											<option value="4">静脉用改变心肌力药 </option>
											<option value="5">静脉用中度镇静药物</option>
											<option value="6">神经肌肉阻断药</option>
											<option value="7">静脉用造影剂</option>
											<option value="8">肠外</option>
											<option value="9">营养</option>
											<option value="10">特殊高危药品</option>
										</select>
									</div>
								</div>
					        </td>
					      </tr>
					     <tr style="height:50px;">
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>库存</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="inventory" name="inventory" />
									</div>
							</div>
					        </td>
					        <td>
							<div class="label_css pt8 pr5 fl">
								<label>高储标准</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="max_inv" name="max_inv" />
									</div>
							</div>
					        </td>
					         <td>
							<div class="label_css pt8 pr5 fl">
								<label>低储标准</label>
							</div>
					        </td>
					        <td>
					        <div class="col-md-10">
									<div class="width100">
									  <input type="text" class="form-control" placeholder="必填" id="least_inv" name="least_inv" />
									</div>
							</div>
					        </td>
					    </table>
						<div class="form-group">
							<div class="col-md-12 text-center" style="margin-top:20px;">
								<input type="button" class="btn btn-primary" style="width: 120px" id="upLoadProudct" value="立即发布" />
							</div>
						</div>
					</form>
				</div>
			</div>
		</div>
	</div>
</body>

  3,js这个form表单有两种提交方式,一个通过name属性提交,通过bootstrap正则验真,效果比较好,我会在修改时用,另一个就是根据id提交,验证,这是最笨的方法,我就用的这种,当时没bootstrap-validator,哥们又在催,我就根据他的要求给写了一个dome

   

<script src="/resources/scripts/common/jquery.js"></script>
<script src="/resources/scripts/common/layer/layer.js"></script>
<script src="/resources/scripts/base/jquery.form.js"></script>
<script src="/resources/scripts/common/bootstrap.js"></script>
<script src="/resources/scripts/common/jquery.nanoscroller.min.js"></script>
<script src="/resources/scripts/common/select2.min.js"></script>
<script src="/resources/scripts/common/My97DatePicker/WdatePicker.js"></script>
联网可用
<script src="https://cdn.bootcss.com/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>
 
 
<link href="/resources/css/common.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="/resources/css/compiled/layout.css">
<link href="/resources/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="/resources/css/libs/font-awesome.min.css" type="text/css" rel="stylesheet"/>
<link rel="stylesheet" href="/resources/css/libs/nanoscroller.css" type="text/css" />
<link href="https://cdn.bootcss.com/bootstrap-validator/0.5.3/css/bootstrapValidator.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/resources/css/compiled/layout.css">
<link rel="stylesheet" type="text/css" href="/resources/css/compiled/elements.css">
<link rel="stylesheet" href="/resources/css/libs/select2.css" type="text/css" />
<link rel="stylesheet" href="/resources/scripts/common/layer/layer.css" type="text/css" />
<script type="text/javascript">
	$(function(){
     //这个是下拉框样式
		$('#drugs_type').select2();
		$('#ha_level').select2();
		$('#is_risk').select2();
		$('#med_insu').select2();
		$('#input').select2();
	//提交商品信息即商品详情图片
	  $("#upLoadProudct").click(function(){
     //根据id获取每个文本框的值
		  var drugs_id = $("#drugs_id").val();
		  var drugs_name = $("#drugs_name").val();
		  var pro_num = $("#pro_num").val();
		  var factory = $("#factory").val();
		  var gui_ge = $("#gui_ge").val();
		  var pack = $("#pack").val();
		  var unit = $("#unit").val();
		  var ji_xi = $("#ji_xi").val();
		  var method = $("#method").val();
		  var max_dose = $("#max_dose").val();
		  var pro_date = $("#pro_date").val();
		  var val_date = $("#val_date").val();
		  var input = $("#input").val();
		  var who_price = $("#who_price").val();
		  var price = $("#price").val();
		  var med_insu = $("#med_insu").val();
		  var is_risk = $("#is_risk").val();
		  var ha_level = $("#ha_level").val();
		  var drugs_type = $("#drugs_type").val();
		  var inventory = $("#inventory").val();
		  var max_inv = $("#max_inv").val();
		  var least_inv = $("#least_inv").val();
           //判断是否为空
		  if((drugs_id==""||drugs_id==null)||(drugs_name==""||drugs_name==null)||(pro_num==""||pro_num==null)||(factory==""||factory==null)||
					(gui_ge==""||gui_ge==null)||(pack==""||pack==null)||(unit==""||unit==null)||(price==null||price=="")||(drugs_type==""||drugs_type==null)||
					(ji_xi==""||ji_xi==null)||(method==""||method==null)||(max_dose==null||max_dose=="")||(pro_date==""||pro_date==null)||
					(val_date==null||val_date=="")||(who_price==""||who_price==null)||(inventory==null||inventory=="")||(max_inv==""||max_inv==null)||
					(least_inv==""||least_inv==null)){
				layer.alert("以上都为必填项,不能为空!!!!!");
			 }else{
          //Ajax提交
		  $.ajax({
				url : "/user/system/addDrug",
				dataType : "text",
				type:"post",
				cache : false,
				data:{
					drugs_id:drugs_id,drugs_name:drugs_name,
					pro_num:pro_num,factory:factory,
					gui_ge:gui_ge,pack:pack,
					unit:unit,ji_xi:ji_xi,method:method,
					max_dose:max_dose,pro_date:pro_date,val_date:val_date,
					input:input,who_price:who_price,
					price:price,med_insu:med_insu,
					is_risk:is_risk,ha_level:ha_level,
					drugs_type:drugs_type,inventory:inventory,
					max_inv:max_inv,least_inv:least_inv
				},
				success : function(obj) {
					if(obj=="success"){
						layer.alert('商品发布成功!', function(index){
							   window.location.reload();
 							 });
					} 
					else{
						layer.alert("商品发布失败,请重新发布")
						}
				},
				error : function(obj) {
					  layer.alert("网络出现异常,请稍后重新发布!!!!")
				}
			});
			 }
	  	});
	
	});
</script>

4,先控制层即controller层DrugContorller ,后台如何接收,参数比较多,这里也可以通过一个实体类接收,我这里是通过多个对应的string类型参数接收,然后放到map中

@Controller
@RequestMapping(value="user/system/")
public class DrugContorller {
   
	@Autowired
	private DrugService drugService;

/**
	 * 添加药品
	 * @param request
	 * @param cpage
	 * @return
	 */
	@RequestMapping(value="addDrug",method=RequestMethod.POST)
	@ResponseBody
	public String addDrug(String drugs_id,String drugs_name,String pro_num,String factory,String gui_ge,String pack,String unit,String ji_xi,String method,
			String max_dose,String pro_date,String input,String who_price,String price,String val_date,
			String med_insu,String is_risk,String ha_level,String drugs_type,String inventory,String max_inv,String least_inv){
		    Map<String,Object> map = new HashMap<String,Object>();
		    map.put("drugs_id", drugs_id);map.put("drugs_name", drugs_name); map.put("pro_num",pro_num);map.put("factory", factory);
		    map.put("gui_ge", gui_ge);map.put("pack", pack); map.put("unit", unit);map.put("ji_xi", ji_xi);
		    map.put("method", method);map.put("max_dose", max_dose); map.put("pro_date", pro_date);map.put("input", input);
		    map.put("who_price", who_price);map.put("price", price); map.put("med_insu", med_insu);map.put("is_risk", is_risk);
		    map.put("ha_level", ha_level);map.put("drugs_type", drugs_type); map.put("inventory", inventory);map.put("max_inv", max_inv);
		    map.put("least_inv", least_inv);  map.put("val_date", val_date); 
		return drugService.addDrug(map);
	}

}

 5,到对应接口 DrugService 

public interface DrugService {

   String addDrug(Map<String, Object> map);
 
}

6,接着业务层DrugServiceImpl ,逻辑业务主要在这里写。

@Service
public class DrugServiceImpl implements DrugService{
 
	@Autowired
	private IDrugMapper mapper;
	 
	@Override
	public String addDrug(Map<String, Object> map) {
		 try {
				boolean status =  mapper.addDrug(map);
				if (status== true) {
					return "success";
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			return "fail";
	}
}

7.下一个接口,这个接口是映射连接mybatis配置文件中的sql的。

public interface IDrugMapper {
 

	boolean addDrug(Map<String, Object> map);
 }

8.mybatis配置文件

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.wandu.webmanagement.data.mapper.drug.IDrugMapper">
   	
	<!--添加药品-->
	<insert id="addDrug" parameterType="com.wandu.webmanagement.data.entity.drug.Drug" >
		insert into drugs_info set drugs_id =#{drugs_id},drugs_name =
		#{drugs_name},pro_num=#{pro_num},factory=#{factory},gui_ge=#{gui_ge},pack=#{pack},
		unit=#{unit},ji_xi=#{ji_xi},method=#{method},
		max_dose=#{max_dose},pro_date=#{pro_date},val_date=#{val_date},input=#{input},
		who_price=#{who_price},price=#{price},med_insu=#{med_insu},is_risk=#{is_risk}, 
		ha_level=#{ha_level},drugs_type=#{drugs_type},inventory=#{inventory},max_inv=#{max_inv},
	    least_inv=#{least_inv},status=0,createTime=NOW() 
	</insert>
</mapper>

第二:删除

   1.  首先说明,我们所谓的删除基本都是假删除,即只改变删除数据的状态,让它不展示出来,而不是彻底的删除,一般sql都是update,而不是delete(切记!!!)

 2.删除即根据该数据的id删除,所以必须知道数据的id

  


 <a class="color6"  href="#" onclick="productDelete('${product.drugs_id }')"><i class="icon-file-alt"></i>删除</a>

3.然后通过onclik时间再加上id

 //删除商品
  function  productDelete(id){
		  layer.confirm('请确认是否删除该商品', {
		    	btn: ['删除','取消'] //按钮
		    	}, function()
		    	{ 
	    		  $.ajax({
	   				url : "/user/system/deleteDrug",
	   				dataType : "text",
	   				type:"post",
	   				cache : false,
	   				data:{
	   					id:id
	   				},
	   				success : function(obj) {
	   					if (obj =="success") {
	   						layer.alert('删除成功!', function(index){
								   window.location.reload();
								 });
	   					} else {
	   					 layer.alert("商品删除失败!");
	   					}
	   				},
	   				error : function(textStatus, e) {
	   					 layer.alert("系统ajax交互错误: " );
	   				}
		   			});  
		    	 });
  }

4.controller接收参数进行删除操作

/**
	 * 删除药品
	 * @param request
	 * @param cpage
	 * @return
	 */
	@RequestMapping(value="deleteDrug",method=RequestMethod.POST)
	@ResponseBody
	public String deleteDrug(String id){
		return drugService.updateDrugStatus(id);
		
		
	}

5.和添加一样,通过映射到DrugService接口

String updateDrugStatus(String id);

6.再到业务逻辑层

@Override
	public String updateDrugStatus(String id) {
		try {
			boolean status =mapper.updateDrugStatus(id);
			if (status==true) {
				return "success";
			}
		} catch (Exception e) {
		e.printStackTrace();
		}
		return "fail";
	}

7.再到映射mybatis的那个接口IDrugMapper

	boolean updateDrugStatus(String id);

8.写sql

   <!--删除商品 -->
   <update id="updateDrugStatus" parameterType="string">
        update drugs_info set status=1 where drugs_id = #{id}
   </update>
   

如果彻底删除的话(建议不要使用这个!!!)

  <delete id="updateDrugStatus">
     delete from  drugs_info  where drugs_id = #{id}
   </delete>

下期再说查询,修改

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值