MyBatis = MyBatis注解讲解和分页查询

注解开发查询,分页查询

一.mybatis注解

Mybatis 除了支持在 xml 中书写 SQL, 也支持使用注解的形式编写 SQL;
MyBatis可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件。
 
(1)MyBatis常用注解:
 

* @Insert:实现新增,代替了<insert></insert>
 
* @Update:实现更新,代替了<update></update>

* @Delete:实现删除,代替了<delete></delete>

* @Select:实现查询,代替了<select></select>

* @Result:实现结果集封装,代替了<result></result>

* @Results:可以与@Result 一起使用,封装多个结果集,代替了<resultMap></resultMap>

* @One:实现一对一结果集封装,代替了<association></association>
 
* @Many:实现一对多结果集封装,代替了<collection></collection>

 
(1)MyBatis注解:单表操作
基于user表通过注解实现,增删改查:
 
UserMapper接口:
 
public interface UserMapper {

    // 查询所有
    @Select("select id as uid,username as uname,birthday as bir , sex as gender, address as addr from user")
    @Results({ // resultMap标签手动映射
            @Result(column = "uid",property = "id",id=true), // result标签映射封装
            @Result(column = "uname",property = "username"),
            @Result(column = "bir",property = "birthday"),
            @Result(column = "gender",property = "sex"),
            @Result(column = "addr",property = "address")
    })
    public List<User> findAll();

    // id查询
    @Select("select * from user where id = #{id}")
    public User findById(Integer id);


    // 新增
    @Insert("insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})")
    public void save(User user);


    // 修改(动态sql还是推荐使用xml)
    @Update("update user set username = #{username}, birthday = #{birthday}, sex = #{sex}, address = #{address} where id = #{id}")
    public void update(User user);


    // 删除
    @Delete("delete from user where id = #{id}")
    public void delete(Integer id);
}

测试:

public class UserMapperTest extends BaseMapperTest {

    // 单表测试
    @Test
    public void test01() throws Exception {
        // 获取代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        // 查询所有
        List<User> list = userMapper.findAll();
        System.out.println(list);

       // 查询一个
       /* User user = userMapper.findById(41);
        System.out.println(user);*/

       // 新增
       /* User user = new User();
        user.setUsername("张红");
        user.setBirthday(new Date());
        user.setSex("女");
        user.setAddress("汉族....");

        userMapper.save(user);*/

       // 更新
       /* User user = new User();
        user.setId(53);
        user.setUsername("黎明");
        user.setBirthday(new Date());
        user.setSex("女");
        user.setAddress("北京....");
        userMapper.update(user);*/


       // 删除
       // userMapper.delete(53);
    }

}

(2)MyBatis注解:多表操作:

注解多表操作 是基于 嵌套查询来实现的

  • 一对一查询:
 
查询一个订单,与此同时查询出该订单的所属用户
 
一对一查询语句:
 
SELECT * FROM orders where id = #{id};
SELECT * FROM `user` WHERE id = #{订单的uid};

OrderMapper接口

public interface OrderMapper {


    // 一对一嵌套注解
    @Select("select * from orders where id = #{id}")
    @Results({
            @Result(column = "id",property = "id",id=true),
            @Result(column = "ordertime",property = "ordertime"),
            @Result(column = "money",property = "money"),
  @Result(property = "user",javaType = User.class,column = "uid",one =@One(select =
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值