注解和java代码方式的Sql语句

这种方式比较麻烦,不建议使用

dao层

在这里插入图片描述
例如:
dao接口

public interface JobDao {
    //查询记录条数
    @SelectProvider(type = JobProvider.class,method = "selectJobCounts")
    int selectJobCounts(String name);
    //查询总记录
    @SelectProvider(type = JobProvider.class,method = "selectAllJobs")
    List<Job> selectAllJobs(Map map);
    //根据id查询指定的job
    @Select("select * from job_inf where id = #{id}")
    Job selectJobById(Integer id);

    //防止前端未加修改条件为空的判断条件,在此做数据判断
    @UpdateProvider(type = JobProvider.class,method = "updateJobById")
    int updateJobById(Job job);

    //添加操作
    @InsertProvider(type = JobProvider.class,method = "insertJob")
    int insertJob(Job job);

    //删除
    @DeleteProvider(type = JobProvider.class,method = "deleteJobs")
    int deleteJobs(Map map);
}

daoprovider类(这是一个java类)

public class JobProvider {

    //查询总记录条数
    public String selectJobCounts(final String name){

       return new SQL(){
            {
                this.SELECT("count(*)");
                this.FROM("job_inf");
                if(name != null && !"".equals(name)){
                    this.WHERE("name like '%' #{name} '%'");
                }
            }
        }.toString();

    }
    //查询数据库数据
    public String selectAllJobs(final Map map){

        StringBuffer buffer = new StringBuffer();
        String sql = new SQL(){
            {
                this.SELECT("*");
                this.FROM("job_inf");
                if(map.get("name") != null && !"".equals(map.get("name"))){
                    this.WHERE("name like '%' #{name} '%'");
                }
            }
        }.toString();
        buffer.append(" limit #{start},#{pageSize}");
        return sql+buffer;
    }
    //根据传入的指定id做修改
    public String updateJobById(final Job job){
        String sql = new SQL(){
            {
                this.UPDATE("job_inf");
                if(job.getName() != null && !"".equals(job.getName()) && job.getRemark() != null && !"".equals(job.getRemark())){
                    this.SET("name = #{name},remark = #{remark}");
                }
                this.WHERE("id = #{id}");
            }
        }.toString();
        return sql;
    }
    //添加
    public String insertJob(final Job job){

        return new SQL(){
            {
                this.INSERT_INTO("job_inf");
                if(job.getName() != null && !"".equals(job.getName()) && job.getRemark() != null && !"".equals(job.getRemark())){
                    this.VALUES("name,remark","#{name},#{remark}");
                }
            }
        }.toString();
    }
    //删除
    public String deleteJobs(final Map map){
        StringBuffer buffer = new StringBuffer();
        /*String sql = new SQL(){
            {
                this.DELETE_FROM("job_inf");
            }
        }.toString();*/
        buffer.append("delete from job_inf where id in (");
        Integer[] idsArray = (Integer[]) map.get("ids");
        for (Integer id:idsArray
             ) {
            buffer.append(id+",");
        }
        buffer.deleteCharAt(buffer.length()-1);
        buffer.append(")");
        return buffer.toString();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值