Jimoshi成长经历:前面的笔记后面再慢慢整理-------方便自己
目录:展示车辆管理系统的数据、删除车辆管理系统的数据、添加车辆管理系统的数据、修改车辆管理系统的数据
三大框架完成DLS-物流管理系统的车辆管理系统增删改
一、展示车辆管理系统的数据
1、编写car.jsp页面
代码示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--引入easyui的样式 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">
<!-- js文件 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>
</head>
<script type="text/javascript">
(function(){
//更改底部工具栏 getPager返回页面对象
var pager = $('#toolbar').datagrid('getPager');
pager.pagination({
pageList: [10,20,30],
});
})
</script>
<body>
<table id="CarList" class="easyui-datagrid"
toolbar="#toolbar" pagination="true" fit="true"
url="${pageContext.request.contextPath}/car/car_showCarMsg.action" striped="true"
rownumbers="true" fitColumns="true" border="false">
<thead>
<tr>
<th field="ck" checkbox=true></th>
<th field="cid" hidden="true" >车辆ID</th>
<th field="cname" width='50' resizable='false' >车辆名字</th>
<th field="cvolume" width='50' resizable='false'>车辆容量</th>
<th field="csname" width='50' resizable='false'>车辆状态</th>
</tr>
</thead>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" οnclick="addcar()">增加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" οnclick="updatecar()">修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" οnclick="deletecar()">删除</a>
</div>
</body>
</html>
2、编写struts.xml文件
代码示例:
<include file="zhj.xml"></include>
3、添加zhj.xml,编写请求
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="cars" namespace="/car" extends="struts-default">
<action name="car_*" method="{1}" class="com.zr.action.CarAction">
</action>
</package>
</struts>
3、创建CarAction类编写showCarMsg方法
代码示例:
public void showCarMsg(){
System.out.println(111);
}
4、编写CarDao接口
代码示例:
/**
* 车辆的dao层
* @author Administrator
*
* @param <T>
*/
public interface CarDao<T> extends BaseDao<T> {
/**
* 查询车辆信息的数量
* @return
*/
public long showCarCount();
/**
* 根据页码返回车辆的信息
* @param page
* @param rows
* @return
*/
public List<TCar> showCarMsg(int page,int rows);
}
5、编写CarDaoImpl类
代码示例:
/**
* 重写车辆的dao层编写具体实现
* @author Administrator
*
*/
@Repository("carDao")
public class CarDaoImpl<T> extends BaseDaOImpl<T> implements CarDao<T>{
@Override
public long showCarCount() {
// TODO Auto-generated method stub
//查询车辆总数的hql语句
String hql = "select count(*) from TCar";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TCar> showCarMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询车辆信息的sql语句
String sql = "select cid,cname,cvolume,csname from t_car,t_carstate where t_car.csid=t_carstate.csid limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
System.out.println(query);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TCar> cars = query.list();
return cars;
}
}
6、编写CarService接口
代码示例:
/**
* 车辆的service层
* @author Administrator
*
*/
public interface CarService {
/**
* 查找车辆的信息
* @param page
* @param rows
* @return
*/
public JSONObject showCarMsg(int page,int rows);
}
7、编写CarServiceImpl类
代码示例:
/**
* 重写车辆的service层编写具体实现
* @author Administrator
*
*/
//把这个类当做一个service层
@Service("carService")
public class CarServiceImpl implements CarService {
//按照配置(依据名称或者依据类型)给属性注入实例
@Resource
private CarDao<TCar> carDao;
@Override
public JSONObject showCarMsg(int page, int rows) {
// TODO Auto-generated method stub
//Map<String,Object> obj = new HashMap<String,Object>();
JSONObject obj = new JSONObject();
obj.put("total", carDao.showCarCount());
obj.put("rows", carDao.showCarMsg(page, rows));
//JSONObject jso = JSONObject.fromObject(obj);
return obj;
}
}
8、编写CarAction类
代码示例:
/**
* 车辆的控制层
* @author Administrator
*
*/
@Controller
// 保证当有请求的时候,都创建一个Action对象
@Scope(value="prototype")
public class CarAction extends ActionSupport implements ServletResponseAware{
private HttpServletResponse response;
private int page;
private int rows;
public int getPage() { return page; }
public void setPage(int page) { this.page = page; }
public int getRows() { return rows; }
public void setRows(int rows) { this.rows = rows; }
@Resource
private CarService carService;
public void showCarMsg(){
JSONObject obj = carService.showCarMsg(page, rows);
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
}
9、测试,请求:http://localhost:8080/LDS/main.jsp
二、删除车辆管理系统的数据
1、编写car.jsp页面
代码示例:
//删除用户信息
function deletecar(){
//获取被选中需要删除的数据
var data = $("#CarList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要删除的数据',
timeout:1000,
showType:'slide',
style:{
top:'100',
}
});
}else{
//声明一个空的数组 装选中的uid
var cids = [];
for (var i = 0; i < data.length; i++) {
cids.push(data[i].cid);
}
$.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){
if (r){
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:'${pageContext.request.contextPath}/car/car_deleteCarMsg.action',
data:{"cids":cids},
dataType:"text",
success:function(data){
//提示删除成功
$.messager.alert('提示','删除成功','info',function(){
$("#CarList").datagrid('reload');
$("#CarList").datagrid('uncheckAll');
});
}
});
}
});
}
}
2、编写CarAction测试请求是否成功
代码示例:
//删除车辆信息
public void deleteCarMsg(){
System.out.println(111);
}
3、编写CarDao接口方法
代码示例:
/**
* 删除车辆信息
* @param cid 传入车辆id
*/
public void deleteCarMsg(int cid);
4、编写CarDaoImpl类重写CarDao接口方法
代码示例:
@Override
public void deleteCarMsg(int cid) {
// TODO Auto-generated method stub
TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
this.getCurrentSession().delete(car);
}
5、编写CarService接口的方法
代码示例:
/**
* 批量删除车辆的信息
* @param cids 传入选中的车辆id
*/
public void deleteCarMsg(String cids[]);
6、编写CarDaoServiceImpl类重写CarService接口方法
代码示例:
@Override
public void deleteCarMsg(String[] cids) {
// TODO Auto-generated method stub
for (int i = 0; i < cids.length; i++) {
carDao.deleteCarMsg(Integer.valueOf(cids[i]));
}
}
7、编写CarAction类
代码示例:
private HttpServletRequest request;
private int cids[];
public int[] getCids() {return cids;}
public void setCids(int[] cids) {this.cids = cids;}
//删除车辆信息
public void deleteCarMsg(){
String cids[]=request.getParameterValues("cids[]");
carService.deleteCarMsg(cids);
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
8、请求测试功能是否完成
三、添加车辆管理系统的数据
1、编写car.jsp页面
代码示例:
<script type="text/javascript">
//显示添加车辆信息框
function addcar(){
$("#dlg").dialog("open").dialog('setTitle', '添加车辆');
$('#carupdate').hide();
$('#caradd').show();
$('#ccid').hide();
}
//确认添加车辆信息
function caradd(){
//获得新增窗口内输入的文本框的值
var car = new Object();
car.cname = $("#cname").val();
car.cvolume = $("#cvolume").val();
car.csid = $("#cs").combobox('getValue');
var json = JSON.stringify(car);
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/car/car_addCarMsg.action",
data:{"json":json},
dataType:"text",
success:function(data){
$.messager.alert('提示','添加成功','info',function(){
//刷新页面,关闭窗口,清除表单内容
$("#CarList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
});
}
})
};
</script>
<div id="dlg" class="easyui-dialog"
style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle" id="">车辆信息</div>
<form id="fm" method="post" novalidate>
<div class="fitem" id="carid">
<div class="fitem" id="ccid">
<label>车辆ID:</label>
<input id="cid" name="cid" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>车辆名字:</label>
<input id="cname" name="cname" class="easyui-textbox" required="true" >
</div>
<div class="fitem">
<label>车辆容量:</label>
<input id="cvolume" name="cvolume" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>车辆状态:</label>
<input id="cs" class="easyui-combobox" name="cs"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/car/car_findCarCsnameMsg.action'" />
</div>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
style="width:90px" οnclick="carupdate()" id="carupdate">确认修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
οnclick="caradd()" style="width:90px" id="caradd" >确认添加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"
οnclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>
</div>
2、编写CarAction测试请求是否成功
代码示例:
//展示车辆状态信息(动态加载车辆状态)
public void findCarCsnameMsg(){
System.out.println(1111);
}
//添加车辆信息
public void addCarMsg(){
System.out.println(1111);
}
3、编写CarDao接口
代码示例:
/**
* 查询车辆 状态信息(动态加载状态)
* @return
*/
public JSONArray findCarCsnameMsg();
/**
* 添加车辆信息
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入车辆状态
* @return
*/
public boolean addCarMsg(String cname,String cvolume,TCarstate TCarstate);
/**
* 查询状态id
* @return
*/
public TCarstate findTCarstateCsid(int csid);
4、编写CarDaoImpl类重写CarDao的方法
代码示例:
@Override
public JSONArray findCarCsnameMsg() {
// TODO Auto-generated method stub
//声明一个map数据集合
Map<String, String> map = new HashMap<String,String>();
//声明一个jso数组
JSONArray jso=new JSONArray();
//查询车辆状态信息的hql语句
String hql="from TCarstate";
//查询hql语句
Query query=this.getCurrentSession().createQuery(hql);
//将查询出来的hql数据放入list中
List<TCarstate> tcarstate=query.list();
for (TCarstate tc : tcarstate) {
//获得状态的id和名字
String CSid=String.valueOf(tc.getCsid());
String CSname=tc.getCsname();
//将状态id和名字放入mao集合中
map.put("id", CSid);
map.put("text", CSname);
//将这个集合放入jso数组中
jso.add(map);
}
//返回jso数组
return jso;
}
@Override
public boolean addCarMsg(String cname, String cvolume,TCarstate TCarstate) {
// TODO Auto-generated method stub
boolean flag =false;
TCar car = new TCar();
car.setCname(cname);
car.setCvolume(cvolume);
car.setTCarstate(TCarstate);;
this.getCurrentSession().save(car);
return flag;
}
@Override
public TCarstate findTCarstateCsid(int csid) {
// TODO Auto-generated method stub
TCarstate TCarstate = (TCarstate) this.getCurrentSession().get(TCarstate.class, Integer.valueOf(csid));
return TCarstate;
}
5、编写CarService接口
代码示例:
/**
* 查询车辆状态的信息
* @return
*/
public JSONArray findCarCsnameMsg();
/**
* 添加车辆的信息
* @param cname
* @param cvolume
* @param csid
* @return
*/
public boolean addCarMsg(String cname,String cvolume,int csid);
6、编写CarServiceImpl类
代码示例:
@Override
public JSONArray findCarCsnameMsg() {
// TODO Auto-generated method stub
return carDao.findCarCsnameMsg();
}
@Override
public boolean addCarMsg(String cname, String cvolume, int csid) {
// TODO Auto-generated method stub
return carDao.addCarMsg(cname, cvolume,carDao.findTCarstateCsid(csid));
}
7、编写CarAction类
代码示例:
//展示车辆状态信息
public void findCarCsnameMsg(){
JSONArray obj = carService.findCarCsnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加车辆信息
public void addCarMsg(){
JSONObject jso = JSONObject.fromObject(json);
int csid=jso.getInt("csid");
String cname=jso.getString("cname");
String cvolume=jso.getString("cvolume");
Boolean flag=carService.addCarMsg(cname, cvolume, csid);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write(flag+"");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、测试添加是否成功
四、修改车辆管理系统的数据
1、编写car.jsp页面
代码示例:
//修改用户信息
function updatecar(){
var data = $("#CarList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要修改的数据',
timeout:1500,
showType:'slide',
style:{
left:100,
right:'',
top:100
}
});
}else if(data.length!=1){
$.messager.show({
title:'警告',
msg:'你只能选择一条数据修改',
timeout:1500,
showType:'slide',
style:{
left:100,
right:'',
top:100
}
});
}else{
var car =$("#CarList").datagrid('getSelected');
$("#cid").textbox('setValue',car.cid)
$("#cname").textbox('setValue',car.cname)
$("#cvolume").textbox('setValue',car.cvolume);
$("#cs").textbox('setValue',car.csname);
$('#dlg').dialog('open').dialog('center').dialog('setTitle','修改信息');
//隐藏保存按钮
$('#caradd').hide();
//隐藏id框
$('#ccid').hide();
//显示确认按钮
$('#carupdate').show();
}
}
//确认修改用户信息
function carupdate(){
var car = new Object();
car.cid = $("#cid").val();
car.cname = $("#cname").val();
car.cvolume = $("#cvolume").val();
car.csid = $("#cs").combobox('getValue');
var json1 = JSON.stringify(car);
$.ajax({
type:"post", url:"${pageContext.request.contextPath}/car/car_updateCarMsg.action",
data:{"json1":json1},
dataType:"text",
success:function(data){
$.messager.alert('提示','修改成功', data)
//刷新页面,关闭窗口,清除表单内容
$("#CarList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
}
})
}
2、编写CarAction测试请求是否成功
代码示例:
//修改车辆信息
public void updateCarMsg(){
System.out.println(111);
}
3、编写CarDao接口添加修改的方法
代码示例:
/**
* 修改车辆信息
* @param cid 传入车辆id
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入车辆状态
* @return
*/
public void updateCarMsg(int cid,String cname,String cvolume,TCarstate TCarstate);
4、编写CarDaoImpl类重写CarDao接口修改信息的方法
代码示例:
@Override
public void updateCarMsg(int cid, String cname, String cvolume, TCarstate TCarstate) {
// TODO Auto-generated method stub
TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
car.setCname(cname);
car.setCvolume(cvolume);
car.setTCarstate(TCarstate);
this.getCurrentSession().update(car);
}
5、编写CarService接口添加修改信息的方法
代码示例:
/**
* 修改车辆信息
* @param cid 传入车辆id
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入状态id
*/
public void updateCarMsg(int cid,String cname,String cvolume,int csid);
6、编写CarServiceImpl类重写CarService接口的修改方法
代码示例:
@Override
public void updateCarMsg(int cid, String cname, String cvolume, int csid) {
// TODO Auto-generated method stub
carDao.updateCarMsg(cid, cname, cvolume, carDao.findTCarstateCsid(csid));
}
7、编写CarAcrion类完成修改车辆信息的具体实现方法
代码示例:
private String json1;
public String getJson1() { return json1; }
public void setJson1(String json1) { this.json1 = json1; }
//修改车辆信息
public void updateCarMsg(){
JSONObject jso = JSONObject.fromObject(json1);
int csid=jso.getInt("csid");
int cid = jso.getInt("cid");
String cname=jso.getString("cname");
String cvolume=jso.getString("cvolume");
carService.updateCarMsg(cid, cname, cvolume, csid);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、请求测试修改功能是否完成
目录:展示车辆管理系统的数据、删除车辆管理系统的数据、添加车辆管理系统的数据、修改车辆管理系统的数据
三大框架完成DLS-物流管理系统的车辆管理系统增删改
一、展示车辆管理系统的数据
1、编写car.jsp页面
代码示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--引入easyui的样式 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">
<!-- js文件 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>
</head>
<script type="text/javascript">
(function(){
//更改底部工具栏 getPager返回页面对象
var pager = $('#toolbar').datagrid('getPager');
pager.pagination({
pageList: [10,20,30],
});
})
</script>
<body>
<table id="CarList" class="easyui-datagrid"
toolbar="#toolbar" pagination="true" fit="true"
url="${pageContext.request.contextPath}/car/car_showCarMsg.action" striped="true"
rownumbers="true" fitColumns="true" border="false">
<thead>
<tr>
<th field="ck" checkbox=true></th>
<th field="cid" hidden="true" >车辆ID</th>
<th field="cname" width='50' resizable='false' >车辆名字</th>
<th field="cvolume" width='50' resizable='false'>车辆容量</th>
<th field="csname" width='50' resizable='false'>车辆状态</th>
</tr>
</thead>
<div id="toolbar">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" οnclick="addcar()">增加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" plain="true" οnclick="updatecar()">修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" οnclick="deletecar()">删除</a>
</div>
</body>
</html>
2、编写struts.xml文件
代码示例:
<include file="zhj.xml"></include>
3、添加zhj.xml,编写请求
代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="cars" namespace="/car" extends="struts-default">
<action name="car_*" method="{1}" class="com.zr.action.CarAction">
</action>
</package>
</struts>
3、创建CarAction类编写showCarMsg方法
代码示例:
public void showCarMsg(){
System.out.println(111);
}
4、编写CarDao接口
代码示例:
/**
* 车辆的dao层
* @author Administrator
*
* @param <T>
*/
public interface CarDao<T> extends BaseDao<T> {
/**
* 查询车辆信息的数量
* @return
*/
public long showCarCount();
/**
* 根据页码返回车辆的信息
* @param page
* @param rows
* @return
*/
public List<TCar> showCarMsg(int page,int rows);
}
5、编写CarDaoImpl类
代码示例:
/**
* 重写车辆的dao层编写具体实现
* @author Administrator
*
*/
@Repository("carDao")
public class CarDaoImpl<T> extends BaseDaOImpl<T> implements CarDao<T>{
@Override
public long showCarCount() {
// TODO Auto-generated method stub
//查询车辆总数的hql语句
String hql = "select count(*) from TCar";
//将查出来的数据放在list中
List<Object> obj = this.getCurrentSession().createQuery(hql).list();
//获取数据
return (long) obj.get(0);
}
@Override
public List<TCar> showCarMsg(int page, int rows) {
// TODO Auto-generated method stub
//查询车辆信息的sql语句
String sql = "select cid,cname,cvolume,csname from t_car,t_carstate where t_car.csid=t_carstate.csid limit :start,:scount";
//将查出来的数据转成map
Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//指定当前分页查询的起始位置和行数
query.setInteger("start",(page-1)*rows);
query.setInteger("scount",rows);
System.out.println(query);
//将Query对象query转换成集合,并且把该集合赋值给一个新的集合
List<TCar> cars = query.list();
return cars;
}
}
6、编写CarService接口
代码示例:
/**
* 车辆的service层
* @author Administrator
*
*/
public interface CarService {
/**
* 查找车辆的信息
* @param page
* @param rows
* @return
*/
public JSONObject showCarMsg(int page,int rows);
}
7、编写CarServiceImpl类
代码示例:
/**
* 重写车辆的service层编写具体实现
* @author Administrator
*
*/
//把这个类当做一个service层
@Service("carService")
public class CarServiceImpl implements CarService {
//按照配置(依据名称或者依据类型)给属性注入实例
@Resource
private CarDao<TCar> carDao;
@Override
public JSONObject showCarMsg(int page, int rows) {
// TODO Auto-generated method stub
//Map<String,Object> obj = new HashMap<String,Object>();
JSONObject obj = new JSONObject();
obj.put("total", carDao.showCarCount());
obj.put("rows", carDao.showCarMsg(page, rows));
//JSONObject jso = JSONObject.fromObject(obj);
return obj;
}
}
8、编写CarAction类
代码示例:
/**
* 车辆的控制层
* @author Administrator
*
*/
@Controller
// 保证当有请求的时候,都创建一个Action对象
@Scope(value="prototype")
public class CarAction extends ActionSupport implements ServletResponseAware{
private HttpServletResponse response;
private int page;
private int rows;
public int getPage() { return page; }
public void setPage(int page) { this.page = page; }
public int getRows() { return rows; }
public void setRows(int rows) { this.rows = rows; }
@Resource
private CarService carService;
public void showCarMsg(){
JSONObject obj = carService.showCarMsg(page, rows);
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
}
9、测试,请求:http://localhost:8080/LDS/main.jsp
二、删除车辆管理系统的数据
1、编写car.jsp页面
代码示例:
//删除用户信息
function deletecar(){
//获取被选中需要删除的数据
var data = $("#CarList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要删除的数据',
timeout:1000,
showType:'slide',
style:{
top:'100',
}
});
}else{
//声明一个空的数组 装选中的uid
var cids = [];
for (var i = 0; i < data.length; i++) {
cids.push(data[i].cid);
}
$.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){
if (r){
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:'${pageContext.request.contextPath}/car/car_deleteCarMsg.action',
data:{"cids":cids},
dataType:"text",
success:function(data){
//提示删除成功
$.messager.alert('提示','删除成功','info',function(){
$("#CarList").datagrid('reload');
$("#CarList").datagrid('uncheckAll');
});
}
});
}
});
}
}
2、编写CarAction测试请求是否成功
代码示例:
//删除车辆信息
public void deleteCarMsg(){
System.out.println(111);
}
3、编写CarDao接口方法
代码示例:
/**
* 删除车辆信息
* @param cid 传入车辆id
*/
public void deleteCarMsg(int cid);
4、编写CarDaoImpl类重写CarDao接口方法
代码示例:
@Override
public void deleteCarMsg(int cid) {
// TODO Auto-generated method stub
TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
this.getCurrentSession().delete(car);
}
5、编写CarService接口的方法
代码示例:
/**
* 批量删除车辆的信息
* @param cids 传入选中的车辆id
*/
public void deleteCarMsg(String cids[]);
6、编写CarDaoServiceImpl类重写CarService接口方法
代码示例:
@Override
public void deleteCarMsg(String[] cids) {
// TODO Auto-generated method stub
for (int i = 0; i < cids.length; i++) {
carDao.deleteCarMsg(Integer.valueOf(cids[i]));
}
}
7、编写CarAction类
代码示例:
private HttpServletRequest request;
private int cids[];
public int[] getCids() {return cids;}
public void setCids(int[] cids) {this.cids = cids;}
//删除车辆信息
public void deleteCarMsg(){
String cids[]=request.getParameterValues("cids[]");
carService.deleteCarMsg(cids);
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
}
8、请求测试功能是否完成
三、添加车辆管理系统的数据
1、编写car.jsp页面
代码示例:
<script type="text/javascript">
//显示添加车辆信息框
function addcar(){
$("#dlg").dialog("open").dialog('setTitle', '添加车辆');
$('#carupdate').hide();
$('#caradd').show();
$('#ccid').hide();
}
//确认添加车辆信息
function caradd(){
//获得新增窗口内输入的文本框的值
var car = new Object();
car.cname = $("#cname").val();
car.cvolume = $("#cvolume").val();
car.csid = $("#cs").combobox('getValue');
var json = JSON.stringify(car);
//通过ajax请求将对应数据发送到后台中
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/car/car_addCarMsg.action",
data:{"json":json},
dataType:"text",
success:function(data){
$.messager.alert('提示','添加成功','info',function(){
//刷新页面,关闭窗口,清除表单内容
$("#CarList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
});
}
})
};
</script>
<div id="dlg" class="easyui-dialog"
style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle" id="">车辆信息</div>
<form id="fm" method="post" novalidate>
<div class="fitem" id="carid">
<div class="fitem" id="ccid">
<label>车辆ID:</label>
<input id="cid" name="cid" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>车辆名字:</label>
<input id="cname" name="cname" class="easyui-textbox" required="true" >
</div>
<div class="fitem">
<label>车辆容量:</label>
<input id="cvolume" name="cvolume" class="easyui-textbox" required="true">
</div>
<div class="fitem">
<label>车辆状态:</label>
<input id="cs" class="easyui-combobox" name="cs"
data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/car/car_findCarCsnameMsg.action'" />
</div>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
style="width:90px" οnclick="carupdate()" id="carupdate">确认修改</a>
<a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
οnclick="caradd()" style="width:90px" id="caradd" >确认添加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"
οnclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>
</div>
2、编写CarAction测试请求是否成功
代码示例:
//展示车辆状态信息(动态加载车辆状态)
public void findCarCsnameMsg(){
System.out.println(1111);
}
//添加车辆信息
public void addCarMsg(){
System.out.println(1111);
}
3、编写CarDao接口
代码示例:
/**
* 查询车辆 状态信息(动态加载状态)
* @return
*/
public JSONArray findCarCsnameMsg();
/**
* 添加车辆信息
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入车辆状态
* @return
*/
public boolean addCarMsg(String cname,String cvolume,TCarstate TCarstate);
/**
* 查询状态id
* @return
*/
public TCarstate findTCarstateCsid(int csid);
4、编写CarDaoImpl类重写CarDao的方法
代码示例:
@Override
public JSONArray findCarCsnameMsg() {
// TODO Auto-generated method stub
//声明一个map数据集合
Map<String, String> map = new HashMap<String,String>();
//声明一个jso数组
JSONArray jso=new JSONArray();
//查询车辆状态信息的hql语句
String hql="from TCarstate";
//查询hql语句
Query query=this.getCurrentSession().createQuery(hql);
//将查询出来的hql数据放入list中
List<TCarstate> tcarstate=query.list();
for (TCarstate tc : tcarstate) {
//获得状态的id和名字
String CSid=String.valueOf(tc.getCsid());
String CSname=tc.getCsname();
//将状态id和名字放入mao集合中
map.put("id", CSid);
map.put("text", CSname);
//将这个集合放入jso数组中
jso.add(map);
}
//返回jso数组
return jso;
}
@Override
public boolean addCarMsg(String cname, String cvolume,TCarstate TCarstate) {
// TODO Auto-generated method stub
boolean flag =false;
TCar car = new TCar();
car.setCname(cname);
car.setCvolume(cvolume);
car.setTCarstate(TCarstate);;
this.getCurrentSession().save(car);
return flag;
}
@Override
public TCarstate findTCarstateCsid(int csid) {
// TODO Auto-generated method stub
TCarstate TCarstate = (TCarstate) this.getCurrentSession().get(TCarstate.class, Integer.valueOf(csid));
return TCarstate;
}
5、编写CarService接口
代码示例:
/**
* 查询车辆状态的信息
* @return
*/
public JSONArray findCarCsnameMsg();
/**
* 添加车辆的信息
* @param cname
* @param cvolume
* @param csid
* @return
*/
public boolean addCarMsg(String cname,String cvolume,int csid);
6、编写CarServiceImpl类
代码示例:
@Override
public JSONArray findCarCsnameMsg() {
// TODO Auto-generated method stub
return carDao.findCarCsnameMsg();
}
@Override
public boolean addCarMsg(String cname, String cvolume, int csid) {
// TODO Auto-generated method stub
return carDao.addCarMsg(cname, cvolume,carDao.findTCarstateCsid(csid));
}
7、编写CarAction类
代码示例:
//展示车辆状态信息
public void findCarCsnameMsg(){
JSONArray obj = carService.findCarCsnameMsg();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加车辆信息
public void addCarMsg(){
JSONObject jso = JSONObject.fromObject(json);
int csid=jso.getInt("csid");
String cname=jso.getString("cname");
String cvolume=jso.getString("cvolume");
Boolean flag=carService.addCarMsg(cname, cvolume, csid);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write(flag+"");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、测试添加是否成功
四、修改车辆管理系统的数据
1、编写car.jsp页面
代码示例:
//修改用户信息
function updatecar(){
var data = $("#CarList").datagrid('getSelections');
if(data.length==0){
$.messager.show({
title:'警告',
msg:'请选中需要修改的数据',
timeout:1500,
showType:'slide',
style:{
left:100,
right:'',
top:100
}
});
}else if(data.length!=1){
$.messager.show({
title:'警告',
msg:'你只能选择一条数据修改',
timeout:1500,
showType:'slide',
style:{
left:100,
right:'',
top:100
}
});
}else{
var car =$("#CarList").datagrid('getSelected');
$("#cid").textbox('setValue',car.cid)
$("#cname").textbox('setValue',car.cname)
$("#cvolume").textbox('setValue',car.cvolume);
$("#cs").textbox('setValue',car.csname);
$('#dlg').dialog('open').dialog('center').dialog('setTitle','修改信息');
//隐藏保存按钮
$('#caradd').hide();
//隐藏id框
$('#ccid').hide();
//显示确认按钮
$('#carupdate').show();
}
}
//确认修改用户信息
function carupdate(){
var car = new Object();
car.cid = $("#cid").val();
car.cname = $("#cname").val();
car.cvolume = $("#cvolume").val();
car.csid = $("#cs").combobox('getValue');
var json1 = JSON.stringify(car);
$.ajax({
type:"post", url:"${pageContext.request.contextPath}/car/car_updateCarMsg.action",
data:{"json1":json1},
dataType:"text",
success:function(data){
$.messager.alert('提示','修改成功', data)
//刷新页面,关闭窗口,清除表单内容
$("#CarList").datagrid('reload');
$('#dlg').dialog('close');
$('#dlg').form('clear');
}
})
}
2、编写CarAction测试请求是否成功
代码示例:
//修改车辆信息
public void updateCarMsg(){
System.out.println(111);
}
3、编写CarDao接口添加修改的方法
代码示例:
/**
* 修改车辆信息
* @param cid 传入车辆id
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入车辆状态
* @return
*/
public void updateCarMsg(int cid,String cname,String cvolume,TCarstate TCarstate);
4、编写CarDaoImpl类重写CarDao接口修改信息的方法
代码示例:
@Override
public void updateCarMsg(int cid, String cname, String cvolume, TCarstate TCarstate) {
// TODO Auto-generated method stub
TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
car.setCname(cname);
car.setCvolume(cvolume);
car.setTCarstate(TCarstate);
this.getCurrentSession().update(car);
}
5、编写CarService接口添加修改信息的方法
代码示例:
/**
* 修改车辆信息
* @param cid 传入车辆id
* @param cname 传入车辆名字
* @param cvolume 传入车辆容量
* @param csid 传入状态id
*/
public void updateCarMsg(int cid,String cname,String cvolume,int csid);
6、编写CarServiceImpl类重写CarService接口的修改方法
代码示例:
@Override
public void updateCarMsg(int cid, String cname, String cvolume, int csid) {
// TODO Auto-generated method stub
carDao.updateCarMsg(cid, cname, cvolume, carDao.findTCarstateCsid(csid));
}
7、编写CarAcrion类完成修改车辆信息的具体实现方法
代码示例:
private String json1;
public String getJson1() { return json1; }
public void setJson1(String json1) { this.json1 = json1; }
//修改车辆信息
public void updateCarMsg(){
JSONObject jso = JSONObject.fromObject(json1);
int csid=jso.getInt("csid");
int cid = jso.getInt("cid");
String cname=jso.getString("cname");
String cvolume=jso.getString("cvolume");
carService.updateCarMsg(cid, cname, cvolume, csid);
response.setCharacterEncoding("utf8");
PrintWriter pw;
try {
pw = response.getWriter();
pw.write("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
8、请求测试修改功能是否完成