首页 > 代码库 > ssh数据流代码
ssh数据流代码
Spring ,hibernate,和stutas2三大框架还是比较经典的,虽然目前最主流的是Spring,mybatis和SpringMvc,但是目前ssh运用量还是比较大的,所以还是得好好掌握。原理什么的书上一大把,有的时候光看原理,会有一种不想学的冲动(ps:冲动归冲动,原理还是要会的),下面是我做项目的一部分代码,比较粗浅
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
//这个是beanList的代码,当一个数据表中的数据不能满足需求,这个时候就要用到beanList(代码有点多,我就把get和set方法省略了)
public class DrmCustAddrBeanList {
// 条目识别码
private String recordId;
// 集团代号
private String comGroup;
//客户名称
private String custName;
// 客户直营属性
private String codeName;
//客户收货地址
private String sendAddr;
//收货人
private String recUser;
//收货人练习电话
private String sendTel;
//邮政编码
private String custZip;
//收货地址所属行政区代号
private String regiId;
//失效日期
private String deleteDate;
//最近一次更新时间
private Date lastUpdTime;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
封装在js中的分页函数,下面会用到
function page(pagejson){
var pageparms=eval(pagejson);
//要被分页的list列表
var list=pageparms.list;
//每页显示的记录数
var pagerecords=(pageparms.pagerecords!=null)?pageparms.pagerecords:15;
//连续显示分页数
var showpages=(pageparms.showpages!=null)?pageparms.showpages:4;
//要展示分页的容器
var pagelay=pageparms.pagelay;
//要展示记录的容器
var tablediv=pageparms.tablediv;
//要展示分页情况的容器
var recordinfo=pageparms.recordinfo;
//点击页码按钮执行的事件
var clickpages=pageparms.clickpages;
var pages=Math.ceil(list.length/pagerecords);
var thisdate=function(curr){
var htmlDatahttp://www.mamicode.com/= "";
var startindex=(curr-1)*pagerecords;
var endindex;
if(curr<pages){
endindex=curr*pagerecords;
}else{
endindex=list.length;
}
return clickpages(list,startindex,endindex);
}
laypage({
cont: $(pagelay), //容器。值支持id名、原生dom对象,jquery对象,
pages: pages, //总页数
skip: true,
skin: ‘#3785AD‘, //加载内置皮肤,也可以直接赋值16进制颜色值,如:#c00
groups: showpages ,//连续显示分页数
jump: function(e){ //触发分页后的回调
$(tablediv).html(thisdate(e.curr));
if(pages==0){
$(record_info).html(‘共 0 条数据‘)
}else{
var record_start=(e.curr-1)*pagerecords+1;
var record_end=(e.curr<pages)?e.curr*pagerecords:list.length;
$(recordinfo).html(‘共 ‘+list.length+‘ 条数据,目前处于 ‘+record_start+‘ 到 ‘+record_end+‘ 条 ‘+e.curr+‘/‘+e.pages+‘页‘);
}
}
});
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据是从前台页面发起请求的,我的项目用到的是ajax异步请求
//查询方法
function serchCustAddr(){
$("#custDivTbody").html("");//把内容体清空
layer.load(2);
$.ajax({
type:"POST",
url :"findCustAddrAjax",
datatype:"json",
data:{
‘custAddrSerchBean.recUser‘:$("#recUser").val(),
‘custAddrSerchBean.sendAddr‘:$("#sendAddr").val(),
‘custAddrSerchBean.addr‘:$("#addr").val()
},
success:function(data){
var list = eval(data);
var newDate = new Date();
//异步返回的结果进行分页显示
page({
list : list,
pagerecords : 17,
showpages : 4,
pagelay : ‘#page_lay‘,
tablediv : ‘#custDivTbody‘,
recordinfo : ‘#record_info‘,
clickpages : function(list, startindex,
endindex) {
var htmlDatahttp://www.mamicode.com/= "";
for (var i = startindex; i < endindex; i++) {
newDate.setTime(list[i].lastUpdTime.time);
htmlData +=‘<tr>‘;
htmlData +=" <td><input type=‘checkbox‘ class=‘chksize‘ name=‘chkBox‘ id=‘"+list[i].recordId+"‘ value=http://www.mamicode.com/‘"+list[i].recordId+"‘></td>";
htmlData +=‘ <td>‘+(i+1)+‘</td>‘;
htmlData +=‘ <td>‘+list[i].sendAddr+‘</td>‘;
htmlData +=‘ <td>‘+list[i].recUser+‘</td>‘;
htmlData +=‘ <td>‘+list[i].sendTel+‘</td>‘;
htmlData +=‘ <td>‘+list[i].custZip+‘</td>‘;
htmlData +=‘ <td>‘+list[i].regiId+‘</td>‘;
htmlData +=‘ <td>‘+list[i].deleteDate+‘</td>‘;
htmlData +=‘ <td>‘+newDate.format(‘yyyy-MM-dd hh:mm:ss‘)+‘</td>‘;
htmlData +=‘ <td><a href="javascript:void(0)" class="tablelink" onclick=addOrChuangAddr("‘+ list[i].recordId+ ‘")>修改</a></td>‘;
htmlData +=‘</tr>‘;
}
return htmlData;
}
});
},
error : function(XMLHttpRequest, textStatus,
errorThrown) {
alert("服务器连接失败,请重新尝试!");
}
});
layer.closeAll(‘loading‘);
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
前台发起请求后,stutas2就开始工作了,以下是stutas2的一个配置文件,根据这个配置文件可以找到对应action中的方法
<package name="cust" extends="struts-default">
<action name="findCustAddrAjax" method="findCustAddr" class="com.pec.action.CustAction"></action>
</package>
因为是采用异步请求,所以没有result
----------------------------------------------------------------------------------------------------------------------------------------------
根据这个配置就能action层
public class CustAction extends BaseAction{
public void findCustAddr() throws IOException, ServiceException{
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
try {
if(CollectionUtils.isNullOrEmpty(custAddrSerchBean)){
custAddrSerchBean=new CustAddrSerchBean ();
}
list= custService.findCustAddr(custAddrSerchBean,user.getUserId());//userId获取比较多代码,就不列出来
JSONArray array=JSONArray.fromObject(list);//用json数组把数据封装起来
out.println(array.toString());//然后发送到前台去
out.flush();
out.close();
}catch (ServiceException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
然后到了service层
/**
* 查询客户地址
*/
@Override
public List<DrmCustAddrBeanList> findCustAddr(
CustAddrSerchBean custAddrSerchBean,String userId) throws ServiceException {
return drmCustAddrDao.findCustAddr(custAddrSerchBean,userId);
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
最后是dao层
@Repository("drmCustAddrDao")
public class DrmCustAddrDaoImp extends
BaseHibernateDAO<DrmCustAddr, Serializable> implements IDrmCustAddrDao {
//创建一个session工厂
@Autowired
public void setMySessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
/*
* 查找出客户地址
*/
@SuppressWarnings("unchecked")
@Override
public List<DrmCustAddrBeanList> findCustAddr(
CustAddrSerchBean custAddrSerchBean, String userId)
throws ServiceException {
StringBuffer sb = new StringBuffer();
sb.append("sql语句");
SQLQuery q = this.getSession().createSQLQuery(sb.toString());
List<DrmCustAddrBeanList> beanList = null;
try {
q.setResultTransformer(new BeanTransFormatUtil(
DrmCustAddrBeanList.class));
beanList = q.list();
} catch (Exception e) {
e.printStackTrace();
}
return beanList;
}
}
最后得到数据后原路返回
ssh数据流代码