Mybatis(四)分页和注解

分页

分页是为了减少数据处理量。

Limit实现分页

语法:

select * from user limit startIndex,pageSize

使用Mybatis实现分页:

1.接口

List<User> getUserByLimit(Map<String,Integer> map);

2.UserMapper.xml

<select id="getUserByLimit" parameterType="map" resultType="com.skdjq.pojo.User">
    select * from mybatis.user limit #{startIndex},#{pageSize};
</select>

3.测试

@Test
public void getUserByLimit(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserDao mapper = sqlSession.getMapper(UserDao.class);
    HashMap<String, Integer> map = new HashMap<String, Integer>();
    map.put("startIndex",0);
    map.put("pageSize",1);
    List<User> userByLimit = mapper.getUserByLimit(map);
    for(User user:userByLimit){
        System.out.println(user);
    }
}

使用注解开发

1.注解在接口上实现

public interface UserDao {
    @Select("select * from mybatis.user")
    List<User> getUserList();
}

2.需要在核心配置文件中绑定接口:

<mappers>
    <mapper class="com.skdjq.Dao.UserDao"/>
</mappers>

3.测试:

@Test
//查
public void test(){
    //获取SqlSession对象
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    //getMapper
    UserDao userDao = sqlSession.getMapper(UserDao.class);
    List<User> userList = userDao.getUserList();
    for(User user:userList){
        System.out.println(user.getName() + "    " + user.getId() + "    " + user.getPwd());
    }
    //关闭SqlSession
    sqlSession.close();
}

注意:当方法存在多个参数时,必须在参数前加上@Param(“xxx”),如:

@Select("select * from mybatis.user")
    User getUserID(@Param("id") int id,@Param("name") int name);

实际查询时的参数名与@Param中的保持一致。

@Param()注解

  • 基本类型的参数或String类型的参数,需要加上
  • 引用类型不需要加
  • 如果只有一个基本类型可以忽略,但是建议加上
  • 在SQL中引用的就是这里的@Param里面设定的属性名

Lombok使用

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok

简单来说,就是我们可以使用注解来替代那些杂乱的get,set,toString方法。

首先安装Lombok插件,这个相信大家都会。

然后导入maven对应的依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

常用的注解:

@Data:

自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法

为非final字段添加@Setter,和@RequiredArgsConstructor!

import lombok.Data;

@Data
public class User {
    private int id;
    private String name;
    private String pwd;

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }
}

@NoArgsConstructor: 自动生成无参数构造函数。

@AllArgsConstructor: 自动生成全参数构造函数。

还有其他一些比如自动生成日志对象等等之类的注解可以到官方网站去了解,就不一一列举了。

根据情况使用,但请不要依赖这个插件!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值