方式一:使用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.运行结果