MyBatis

方式一:使用mybatis原生功能

1.在flex_demo下创建数据库表:

create table if not exists tb_userinfo
(
    id int auto_increment comment '用户编号'
        primary key,
    user_name varchar(20) not null comment '用户姓名',
    password  varchar(32) not null comment '密码'
)
    comment '用户表'

2.查入数据库数据

INSERT INTO tb_userinfo (user_name, password)
VALUES ('张三', 'password123'), 
       ('李四', 'securepassword456'),
       ('王五', 'mypassword789');

3.在entity创建实体类Userinfo

 
package com.mybatisflex.demo.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;

@Data
@Table("tb_userinfo")
public class Userinfo {
    @Id(keyType = KeyType.Auto)
    private int id;
    private String user_name;
    private String password;

}

 

4.在mapper创建接口UserinfoMapper

 
package com.mybatisflex.demo.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.demo.entity.Userinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserinfoMapper extends BaseMapper<Userinfo> {
        @Select("SELECT  * from tb_userinfo  where id=#{id}")
        Userinfo selectById(@Param("id") int id);

}

5.在application.yml配置数据源

# DataSource Config
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flex_demo
    username: root
    password: 123456
server:
  port: 8080

6.编写测试类并运行

package com.mybatisflex.demo;

import com.mybatisflex.demo.entity.Account;
import com.mybatisflex.demo.mapper.AccountMapper;
import com.mybatisflex.demo.mapper.UserinfoMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class MybatisFlexApplicationTests {
    @Autowired
    private AccountMapper accountMapper;

    @Test
    void contextLoads() {
        List<Account> accounts;
        accounts = accountMapper.selectAll();
        accounts.forEach(System.out::println);
    }
    @Autowired
    private UserinfoMapper userinfoMapper;
    @Test
    void selectById(){
        System.out.println(userinfoMapper.selectById(2));//查询id=2的信息
    }

}

方式二:使用xml方式进行分页查询

1.在flex_demo下创建数据库表:同上

2.查入数据库数据 :同上

3.在application.yml配置mybatis 的 xml 存放路径

# DataSource Config
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flex_demo
    username: root
    password: 123456
server:
  port: 8080
mybatis-flex:
  mapper-locations:
    - classpath*:/mapper/*.xml

4.配置xml在resources中创建mapper包,创建xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatisflex.demo.mapper.UserinfoMapper">

    <select id="selectById" parameterType="java.lang.Integer" resultType="com.mybatisflex.demo.entity.Userinfo">
        select * from `flex_demo`.tb_userinfo where `id` = #{id}
    </select>

    <select id="selectByPage" parameterType="com.mybatisflex.demo.entity.Page" resultType="com.mybatisflex.demo.entity.Userinfo">
        select * from flex_demo.tb_userinfo limit #{limit} offset #{offset}
    </select>

</mapper>

5.在entity下创建实体类Page

package com.mybatisflex.demo.entity;


import lombok.Getter;

public class Page {
    @Getter
    private int currrenPage;
    private int pageSize;
    public Page(int currrenPage,int pageSize){
        this.currrenPage=currrenPage;
        this.pageSize=pageSize;

    }

    public void setCurrrenPage(int currrenPage) {
        this.currrenPage = currrenPage;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getOffset(){return (currrenPage-1)*pageSize;}//分页
    public int getLimit(){return pageSize;}

}

6.在mapper下创建接口UserinfoMapper

package com.mybatisflex.demo.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.demo.entity.Page;
import com.mybatisflex.demo.entity.Userinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface UserinfoMapper extends BaseMapper<Userinfo> {
        //@Select("SELECT  * from tb_userinfo  where id=#{id}")
        Userinfo selectById(@Param("id") int id);
        List<Userinfo> selectByPage(Page page);

}

7.编辑测试类

package com.mybatisflex.demo;

import com.mybatisflex.demo.entity.Account;
import com.mybatisflex.demo.entity.Page;
import com.mybatisflex.demo.entity.Userinfo;
import com.mybatisflex.demo.mapper.AccountMapper;
import com.mybatisflex.demo.mapper.UserinfoMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class MybatisFlexApplicationTests {
   
    @Autowired
    private UserinfoMapper userinfoMapper;
    @Test
    void selectById(){
        System.out.println(userinfoMapper.selectById(2));
    }
    @Test
    void testUserinfoPagination(){
        int pageNumber=2;
        int pageSize=6;
        Page page =new Page(pageNumber,pageSize);
        List<Userinfo> userinfos =userinfoMapper.selectByPage(page);
        userinfos.forEach(System.out::println);

    }
}

8.运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值