分页
limit分页:
SELECT*fromuserlimit startIndex,pageSize;Mybatis分页,基于SQL
1.接口
List<User>getUserByLimit(Map<String,Object> map);2.mapper
<selectid="getUserByLimit"parameterType="map"resultType="user">
        select * from user limit #{startIndex},#{pageSize}</select>3.测试
@TestpublicvoidgetUserLimit(){SqlSession sqlSession=MybatisUtils.getSqlSession();UserMapper mapper= sqlSession.getMapper(UserMapper.class);HashMap<String,Object> map=newHashMap<>();
        map.put("startIndex",2);
        map.put("pageSize",2);List<User> userByLimit= mapper.getUserByLimit(map);for(User user: userByLimit){System.out.println(user);}
        sqlSession.close();}RowBounds分页
不再基于SQL,基于JAVA对象实现
 1.接口
List<User>getUserByRowBounce(Map<String,Object> map);2.mapper
<selectid="getUserByRowBounce"resultType="user">
        select * from user</select>3.测试使用:
@TestpublicvoidgetUserByRowBounceTest(){SqlSession sqlSession=MybatisUtils.getSqlSession();RowBounds rowBounds=newRowBounds(1,2);List<User> objects= sqlSession.selectList("com.lms.dao.UserMapper.getUserByRowBounce",null, rowBounds);for(User object: objects){System.out.println(object);}
        sqlSession.close();}注解开发
核心使用反射进行底层实现。
 1.注解在接口上实现
@Select("select * from user")List<User>getUsers();2.核心配置文件绑定
<mappers><mapperclass="com.lms.dao.UserMapper"/></mappers>3.测试
本质:反射机制
 底层:动态代理
注解CRUD
借助sqlSession自动提交事务功能,完成注解CRUD
publicstaticSqlSessiongetSqlSession(){return sqlSessionFactory.openSession(true);}publicSqlSessionopenSession(boolean autoCommit){returnthis.openSessionFromDataSource(this.configuration.getDefaultExecutorType(),(TransactionIsolationLevel)null, autoCommit);}接着再接口编写过程中添加注解
查询
@Select("select * from user where id = #{id}")UsergetUserByID(@Param("id")int id);注:无论注解、xml中的sql代码语句,当注解Param修饰参数时,#{}内参数名称对应注解内的内容,且当有多个参数时,要么都不加注解,要么都加注解
插入
@Insert("insert into user(id,name,pwd) values (#{id},#{name},#{pwd})")intaddUser(User user);更新
@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")intupdateUser(User user);删除
@Delete("delete from user where id=#{id}")intdeleteUser(int id);关于@Param()注解
基本类型参数或String类型需要添加
 引用类型不需添加
 若只有一个基本类型,可以忽略但推荐添加
#{}类似preparedStatement预编译中的?
 ${}将直接拼接,无法防止sql注入
Lombok工具
注解解释:
 @Data:自动生成无参构造、get、set、toString、hashcode、equals
 @AllArgsConstructor:全参构造
 @NoArgsConstructor:无参构造
 @ToString
 @EqualsAndHashcode
 @Getter:可修饰类或成员
 @Setter:可修饰类或成员
 在实体类上加注解可以自动生成对应内容。