HAP框架--自己写查询语句

刚接触HAP框架,水平很菜,这篇文章用来记录如何在HAP框架中写自己的查询语句。

第一步、查询语句的编写:

在Hec20500DemoMapper.xml里编写SQL语句,可以先在数据库里跑跑,看SQL语句有没有写对。

<?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="wht.hec20500.mapper.Hec20500DemoMapper">
    <resultMap id="BaseResultMap" type="wht.hec20500.dto.Hec20500Demo">
        <result column="id" property="id" jdbcType="DECIMAL" />
        <result column="name" property="name" jdbcType="VARCHAR" />
    </resultMap>
    <!--在这里可以写自己的SQL语句-->
    <select id="selectAllOrderByName" resultMap="BaseResultMap"
            parameterType="wht.hec20500.dto.Hec20500Demo">
        SELECT a.id,a.name FROM hap_demo_b a order by a.name
    </select>
</mapper>

                                                                           定义mapper映射文件

第二步、编写Hec20500DemoMapper.java-接口文件

package wht.hec20500.mapper;

import com.hand.hap.mybatis.common.Mapper;
import wht.hec20500.dto.Hec20500Demo;

import java.util.List;

public interface Hec20500DemoMapper extends Mapper<Hec20500Demo>{
    /**
     *
     * @param dto
     * @return
     */
    List<Hec20500Demo> selectAllOrderByName(Hec20500Demo dto);


}

注意:

Mapper接口定义有如下特点:

1、Mapper接口方法名与Mapper.xml中定义的statement的id相同

2、Mapper接口方法的输入参数类型和mapper.xml中定义的statement的parameterType的类型相同

3、 Mapper接口方法的输出参数类型和mapper.xml中定义的statement的resultType的类型相同

第三步、在IHec20500DemoService.java定义方法:

代码如下:

package wht.hec20500.service;

import com.hand.hap.core.IRequest;
import com.hand.hap.core.ProxySelf;
import com.hand.hap.system.service.IBaseService;
import wht.hec20500.dto.Hec20500Demo;

import java.util.List;

public interface IHec20500DemoService extends IBaseService<Hec20500Demo>, ProxySelf<IHec20500DemoService>{

    /**
     *
     * @param iRequest
     * @param hec20500Demo
     * @param i
     * @param i1
     * @return
     */
    List<Hec20500Demo> selectAllOrderByName(IRequest iRequest, Hec20500Demo hec20500Demo, int i, int i1);
}

第四步、在Hec20500DemoServiceImpl.java里实现service层的方法

代码如下:

package wht.hec20500.service.impl;

import com.github.pagehelper.PageHelper;
import com.hand.hap.core.IRequest;
import com.hand.hap.system.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import wht.hec20500.dto.Hec20500Demo;
import wht.hec20500.mapper.Hec20500DemoMapper;
import wht.hec20500.service.IHec20500DemoService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class)
public class Hec20500DemoServiceImpl extends BaseServiceImpl<Hec20500Demo> implements IHec20500DemoService {

    @Autowired
    private Hec20500DemoMapper hec20500DemoMapper;
    @Override
    public List<Hec20500Demo> selectAllOrderByName(IRequest iRequest, Hec20500Demo hec20500Demo, int i, int i1) {
        PageHelper.startPage(i,i1);
        return hec20500DemoMapper.selectAllOrderByName(hec20500Demo);
    }
}

第五步、到这里就可以在控制层调用我们写的方法了。

代码如下:

@RequestMapping(value = "/hap/demo/query/byorder")
    @ResponseBody
    public ResponseData queryByOrderName(Hec20500Demo dto, @RequestParam(defaultValue = DEFAULT_PAGE) int page,
                              @RequestParam(defaultValue = DEFAULT_PAGE_SIZE) int pageSize, HttpServletRequest request) {
        IRequest requestContext = createRequestContext(request);
        return new ResponseData(service.selectAllOrderByName(requestContext,dto,page,pageSize));
    }

最后看一下运行效果:

猜你喜欢

转载自blog.csdn.net/qq_39331713/article/details/81226319
今日推荐