快速WEB开发框架MVC+ORM QUI-DEVELOP

GPL
Java
跨平台
2014-03-31
liubingsmile

QUI-Framework个快速开发框架,里面有定制化ORM,MVC 。简单容易上手。

 Action 层代码:


@Route(value = "/WebDemo")
@Controller(value = "webDemoAction")
public class WebDemoAction extends BaseController{

 @Override
 protected PageResultgetPageContent() {
  // TODO Auto-generated method stub
  IWebDemoService webDemoService=(IWebDemoService) BaseServiceFactory.getInstance(WebDemoServiceImpl.class);
  this.processQueryCondiction();
  return webDemoService.findByCriteria(queryCriteria);
 }

 @Override
 protected void processQueryCondiction() {
  // TODO Auto-generated method stub
  Mapcondition =new HashMap();
  if(!StringUtil.isNullOrEmpty(searchforms)&&!StringUtils.equals("null", searchforms)){
   JSONObject o = JSONObject.parseObject(searchforms);
   if(!StringUtil.isNullOrEmpty(o.get("id"))){
            condition.put("id", o.getInteger("id"));
   }
   if(!StringUtil.isNullOrEmpty(o.get("name"))){
            condition.put("name", "%"+o.getString("name")+"%");
   }
  }
  queryCriteria.setQueryCondition(condition);
  if(!StringUtil.isNullOrEmpty(sortField)){
      if("id".equals(sortField)){
       queryCriteria.setOrderField("WEB_DEMO_ID");
      }
      if("name".equals(sortField)){
       queryCriteria.setOrderField("WEB_DEMO_NAME");
      }
  }
  if(!StringUtil.isNullOrEmpty(sortOrder)){
   queryCriteria.setOrderDirection(sortOrder);
  }else{
   queryCriteria.setOrderDirection("desc");
  }
  if(!StringUtil.isNullOrEmpty(pageIndex)){
   queryCriteria.setStartIndex(pageIndex);
  }
  if(!StringUtil.isNullOrEmpty(pageSize)){
   queryCriteria.setPageSize(pageSize);
  }
 }
 
 
 @Route(value = "/searchWebDemos.htm")
 @MethodType(type = mType.post)
 public String searchWebDemoEntitys(@FormParam("pageIndex") int pageIndex ,@FormParam("pageSize") int pageSize ,@FormParam("sortField") String sortField,@FormParam("sortOrder") String sortOrder ,@FormParam("params") String params) throws Exception{
  String result="";
  this.pageIndex=pageIndex-1;
  this.pageSize=pageSize;
  this.sortField=sortField;
  this.sortOrder=sortOrder;
  this.searchforms=params;
  IWebDemoService webDemoService=(IWebDemoService) BaseServiceFactory.getInstance(WebDemoServiceImpl.class);
  result=webDemoService.convertPageResultToString(getPageContent());
  return result;
 }
 
 @Route(value = "/saveWebDemos.htm")
 @MethodType(type = mType.post)
 public String saveWebDemoEntity(@FormParam("saveforms") String saveforms) throws Exception{
  WebDemoEntity webDemoEntity=JSONObject.parseObject(saveforms, WebDemoEntity.class);
  IWebDemoService webDemoService=(IWebDemoService) BaseServiceFactory.getInstance(WebDemoServiceImpl.class);
  webDemoService.doCreateEntity(webDemoEntity);
  return "save successful";
 }
 
 @Route(value = "/searchWebDemo.htm")
 @MethodType(type = mType.post)
 public String searchWebDemoEntity(@FormParam("id") Integer id) throws Exception{
  IWebDemoService webDemoService=(IWebDemoService) BaseServiceFactory.getInstance(WebDemoServiceImpl.class);
  WebDemoEntity webDemoEntity=webDemoService.findById(id);
  String result=webDemoService.convertEntityToString(webDemoEntity);
  return result;
 }
 
 @Route(value = "/removeWebDemos.htm")
 @MethodType(type = mType.post)
 public String removeWebDemoEntitys(@FormParam("idString") String idString)throws Exception{
  if(!StringUtil.isNullOrEmpty(idString)){
    String[] ids = idString.split(",");
    IWebDemoService webDemoService=(IWebDemoService) BaseServiceFactory.getInstance(WebDemoServiceImpl.class);
   
        Listentitys=new ArrayList();
        for(String id:ids){
         WebDemoEntity webDemoEntity=webDemoService.findById(Integer.parseInt(id));
         entitys.add(webDemoEntity);
        }
        webDemoService.doRemoveEntitys(entitys);
   }
  return "Delete successful";
 }
}

 Service 层 接口代码:

  public interface IWebDemoService{
 
 public void doCreateEntity(WebDemoEntity webDemoEntity);
 
 public void doCreateEntity(Listentities);
 
 public void doRemoveEntitys(Listentities);
 
 
 public WebDemoEntity findById(Integer integer);
 
 public ListfindByParams(Mapparams);
 
 public PageResultfindByCriteria(QueryCriteria criteria);
 
 public String convertEntityToString(WebDemoEntity  webDemoEntity);
 
 public String convertListToString(Listentities);
 
 public String convertPageResultToString(PageResultresult);
 
 
}

Service 层实现类:

 

@Override
 public void doCreateEntity(WebDemoEntity  webDemoEntity) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);
  if(!StringUtil.isNullOrEmpty(webDemoEntity.getId())){
   webDemoDao.doUpdateEntity(webDemoEntity);
  }else{
   webDemoDao.doCreateEntity(webDemoEntity);
  }
 
 }

 @Override
 public void doRemoveEntitys(Listentities) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);
  for(WebDemoEntity webDemoEntity :entities){
   webDemoDao.doRemoveEntity(webDemoEntity);
  }
  
 }

 @Override
 public WebDemoEntity findById(Integer id) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);
  return webDemoDao.findById(id);
 }

 @Override
 public ListfindByParams(Mapparams) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);

  return webDemoDao.findByParams(params);
 }

 @Override
 public PageResultfindByCriteria(QueryCriteria criteria) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);

  return webDemoDao.findByCriteria(criteria);
 }

 @Override
 public String convertEntityToString(WebDemoEntity  webDemoEntity) {
  // TODO Auto-generated method stub
  
  return webDemoEntity.toJSONObject().toJSONString().replaceAll("null", "");
 }

 @Override
 public String convertListToString(Listentities) {
  // TODO Auto-generated method stub
  return JSONConvertUtils.convertBeanToJson(entities, new WebDemoEntity());
 }

 @Override
 public String convertPageResultToString(PageResultresult) {
  // TODO Auto-generated method stub
  Setfilters=new HashSet();
  filters.add("id");
  filters.add("name");
  return JSONConvertUtils.convertPageResultToJsonString(result, filters, WebDemoEntity.class);
 }

 @Override
 public void doCreateEntity(Listentities) {
  // TODO Auto-generated method stub
  IWebDemoDao webDemoDao= (IWebDemoDao) new BaseDaoFactory().getInstance(IWebDemoDao.class);
  for(WebDemoEntity webDemoEntity :entities){
   if(StringUtil.isNullOrEmpty(webDemoEntity.getId())){
    webDemoDao.doCreateEntity(webDemoEntity);
   }else{
    webDemoDao.doUpdateEntity(webDemoEntity);
   }
  }
 }

}

Dao 层接口代码:(无Dao 实现类)

import java.util.List;
import java.util.Map;

import qui.orm.PageResult;
import qui.orm.QueryCriteria;
import qui.orm.annotation.Delete;
import qui.orm.annotation.Insert;
import qui.orm.annotation.Insert.insertType;
import qui.orm.annotation.Query;
import qui.orm.annotation.Query.queryType;
import qui.orm.annotation.Query.returnType;
import qui.orm.annotation.Update;
import com.weirong.web.entity.WebDemoEntity;

/**
 * @author liubing
 * @version 1.0
 */
public interface IWebDemoDao {
 
 @Insert
 public void doCreateEntity(WebDemoEntity webDemoEntity );
 
 @Update
 public void doUpdateEntity(WebDemoEntity webDemoEntity );
 
 @Delete
 public void doRemoveEntity(WebDemoEntity  webDemoEntity);
 
 @Query(type=queryType.findByKey)
 public WebDemoEntity findById(Integer id);
 
 @Query(type=queryType.findByParams,returnEntityClass=WebDemoEntity.class)
 public ListfindByParams(Mapparams);
 
 @Query(type=queryType.findByCriteria,returnEntityClass=WebDemoEntity.class)
 public PageResultfindByCriteria(QueryCriteria criteria);
 
 @Query(type=queryType.findBycustom,returnType=returnType.List,returnEntityClass=WebDemoEntity.class)
 public ListfindByCustom(String sql,Mapparams);
 
 @Insert(type=insertType.insertBycustom)
 public void doCreateEntity(String sql,Mapparams);
}

Entity 层代码:


 

import java.io.Serializable;
import com.alibaba.fastjson.JSONObject;
import qui.orm.annotation.Column;
import qui.orm.annotation.Table;
import qui.orm.schema.data.BaseEntity;

 @SuppressWarnings("serial")
@Table(name="WEB_DEMO")
public class WebDemoEntity extends BaseEntity{

    private Integer  id;
    private String  name;
 @Override
 public Serializable generateId() {
  // TODO Auto-generated method stub
  if(id==null){
   id=super.sequenceIdProvider.create("WEB_DEMO").nextVal();
  }
  return (Integer) id;
 }
 
    @Column(isKey=true,name="WEB_DEMO_ID",isNull=true,typeLength=11,typeScale=0)
 public Integer  getId() {
  return id;
 }

 public void setId(Integer id) {
  this.id = id;
 }
    @Column(isKey=false,name="WEB_DEMO_NAME",isNull=true,typeLength=300,typeScale=0)
 public String  getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
 
 public JSONObject toJSONObject() {
  // TODO Auto-generated method stub
  JSONObject _json = new JSONObject();
           _json.put("id", id);
           _json.put("name", name);
        return _json;
 }
}

而且新版本可后台代码自动生成。请查看地址的附件,代码没有用git。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

企业级框架 QUI 推荐

如果你喜欢 zTree,但又觉得缺少系统的完整性,不妨可以考虑一下 QUI 框架, QUI框架实现了一整套企业级方案,同时对 zTree 进行了扩展,使用起来更加简便。 QUI框架网址:http://www.quicku...

2012/11/20 14:42
919
0
vraiment obtenir baquette et Diesel Uhren kaufen

il ya une chance formidable qui habituellement dans plusieurs positions fossile avait été impliqué dans le processus de développement. Electrique: L'électricité est devenu...

2014/10/11 16:16
3
0
Montres Diesel sont toujours un bon choix

Les hommes aiment les montres Diesel car ils sont élégants mais raffiné et seront toujours les durer toute une vie. Les hommes n'ont pas toujours besoin d'avoir le plus voyan...

2014/08/22 13:58
13
0
Se révèle être l . a . nouvelle Asics Teeth whiten

Bull crap effectuer les Jeux olympiques de Questionnaire en 2000, l'approbation ASICS Naoko Takahashi, outre portait des chaussures ASICS any remporté les femmes médaille Moth...

2014/05/06 14:54
1
0
Dans le Diesel pas cher france cas où vous adéquat

Beaucoup de gens peuvent être trouvés vaste choix de types, et en plus de caractéristiques qui peuvent dirigent personne perplexe ce qui est le mieux pour vous aider à paye...

2014/09/30 16:28
6
0
Homme Nike Blazer Low Premium Vintage Suede Total

blazer nike pas cher,blazer nike leopard,blazer nike fille,nike blazer femme

2015/02/06 17:23
8
0
360UI 界面框架

两年前我曾发布一款名为QUI的前端框架V2.0版,掀起过一阵使用热潮,下载量也突破了一万大关。不过最终得到的评价是毁誉参半,喜欢的人说它的界面美观,组件使用简单方便,不喜欢的人说浏览器...

2013/05/28 14:13
194
0
adidas chaussures homme en ligne

Les athlètes sportifs choisissent des chaussures qui vont mieux se voir et se sentir merveilleusement bien. adidas chaussures homme en ligne L'idée a possédé une sorte de s...

2018/01/12 16:17
1
0
360UI树形下拉框

我在很久以前曾发布过一个美化的单选下拉框组件,一度很火爆。相信现在读我帖子的人里面仍然有在用这个组件的。 以前那个帖子地址:http://www.iteye.com/topic/851317 这次给大家介绍一款非...

2013/05/04 20:10
213
0
360UI 界面框架 最完美的select下拉框美化

最完美的select下拉框美化 很多人为select的诸多不完善而头痛,如无法自定义样式、IE6中无法被浮动层遮住等等。下面介绍一款堪称最完美的下拉框组件:360UI即QUI下拉框( ) 特点1:美化的并...

2013/05/06 11:21
1K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部