mybatis的sql构建语言

1、首先创建SQLProvider类,用来设置crud的sql语句相关的方法。

package com.qfedu.sql;

import org.apache.ibatis.jdbc.SQL;
import org.junit.Test;

/**
 * Created by asus on 2020/3/16.
 */
public class SQLProvider {
    public String getUsers(){
        return new SQL()
                .SELECT("id")
                .SELECT("username","birthday")
                .SELECT("sex","address")
                .FROM("user")
                .toString();
    }

    public String getUserById(){
        return new SQL()
                .SELECT("id")
                .SELECT("username","birthday")
                .SELECT("sex","address")
                .FROM("user")
                .WHERE("id=1")
                .OR()
                .WHERE("username='沙和尚'")
                .toString();
    }

    public String saveUser(){
        return new SQL()
                .INSERT_INTO("user")
                .VALUES("username","'zhangsan'")
                .VALUES("birthday","'2020-03-12 17:35:34'")
                .VALUES("sex","'n'")
                .VALUES("address","'beijing'")
                .toString();
    }
}

在这个类中创建crud 的各种方法,并且设置它的返回值为 string ,这样我们就可以得到 sql 语句,这样写的好处也就是防止我们的sql语句写错。
2、创建IUserDao接口,并且使用注解的方式的mybatis 进行设置 sql语句

package com.qfedu.dao;

import com.qfedu.pojo.User;
import com.qfedu.sql.SQLProvider;
import org.apache.ibatis.annotations.*;

import javax.annotation.PostConstruct;
import java.util.List;

/**
 * Created by asus on 2020/3/16.
 */
public interface IUserDao3 {

    /*type是sql构建语言的类对象 ,method 是 类对象中的方法*/
    @SelectProvider(method = "getUsers",type = SQLProvider.class)
    List<User> getAllUsers();

    @SelectProvider(method = "getUserById",type = SQLProvider.class)
    List<User> getUserById();

    @InsertProvider(method = "saveUser",type = SQLProvider.class)
    /*  是否 使用主键,*/
    @Options(useGeneratedKeys = true,keyProperty = "id")
    int saveUsers();
}

3、最后进行测试,使用SqlSessine的 getMapper() 方法,进行创建代理对象,并且由代理对象调用 crud的 四个方法。

@Test
    public void saveUser2() {
        IUserDao3 udao = mSession.getMapper(IUserDao3.class);
        int i = udao.saveUsers();
        System.out.println(i);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值