整个开发流程:首先根据需求写service和serviceImpl,以及controller,接着做出前端的页面以及写出js。
在开发过程中找bug的几种方法:如果程序出了问题,首先进页面F12,看js是否报错,以及查看js里面的变量,是否是想要的。在排除了js的问题之后,如果还是得不到我们想要的结果,这个时候前端的问题已经排除,那就看看后台有没有报错,设置断点看是否能够进入后台的方法,看变量看是否是我们想要的结果。如果前端,后台的问题都解决了,基本上就没有什么大问题了。
在后台方面的收获:对Vo类的了解,对底层mapper封装方法的熟悉,对于js的使用。
对于Vo类,其实就是自己定义的一个实体,里面可以包含任何属性。Vo类里面可以包含自动生成的实体类的所有属性,也可以添加其他的属性。Vo类通常用于条件查询里面,也可以用于对数据库的操作。例如要进行插入操作,我们只能把.xml文件生成的实体类插入到数据库中,所以先要把Vo类转换成对应的实体类,然后再进行操作就行了。Vo类里面通常也封装查询条件,在包含实体类对应属性的同时,增加我们的查询条件,从而实现条件查询。
通常做开发,都需要知道底层的mapper封装的方法,所以先看底层封装的方法,以便以后的调用。不会调用?先看看别人是怎么调用的。
后台编写条件查询的方法:
Example example = new Example();
Example.Criteria criteria = example.createCriteria();
criteria.and***EqualTo();
criteria.and***Like("%"+String+"%");//模糊查询
return super.selectPageByExample(example);
又或者
Example example = new Example();
example.createCriteria().and***EqualTo();
example.createCriteria().and***Like();
return super.selectPageByExample(example);
当然还需要写sql语句
前端js:
$dataSourceManager.getDataSource("***Source").then(function(dataSource)){
$scope.search = function(){
dataSource.doRequestData(1,angular.extend({},$scope.searchMyPosDevice));
}
}
页面会有一个请求数据的url,其name为***Source,根据$scope.searchMyPosDevice里面的值来请求数据
$dataSourceManager.getDataSource("***Source").then(function(dataSource)){
$scope delete = function(row){
var myId = row.***id;
GillionMsg.confirm('','是否删除数据?',
function(result){
if(result){
var path=Resource(basePath+'/**/**/**/:id',{id:'@id'});
path.remove({id:id},function(data){
if(data){
$scope.search();
GillionMsg.alert("","提示信息");
}else{
GillionMsg.alert("","提示信息");
}
})
}
}
)
}
}
关于条件查询,通常需要通过日期来查找:
前端有可能把Date类型传到后台,框架支持的话;也有可能框架不支持直接传一个Date类型到后台,但是支持传String类型到后台,这个时候就需要在后台定义一个String类型用来接收前端的Date。所以在前端js中,我们需要把前端的Date类型转换成String类型。可以通过Date的函数来getFullYear、getMonth、getDate,然后组成固定格式的String,传到后台,这个以固定格式传到后台的String可以通过toDate转换成Date类型(前提条件是特定的格式才可以转),然后就可以进一步进行处理了。