Spring Boot集成MyBatis与分页插件

37 篇文章 5 订阅

1.MyBatisConfig.java

@Configuration
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {

    @Autowired
    DataSource dataSource;

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactoryBean() {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        //分页插件
        PageHelper pageHelper = new PageHelper();
        Properties props = new Properties();
        props.setProperty("reasonable", "true");
        props.setProperty("supportMethodsArguments", "true");
        props.setProperty("returnPageInfo", "check");
        props.setProperty("params", "count=countSql");
        pageHelper.setProperties(props);
        //添加插件
        bean.setPlugins(new Interceptor[]{pageHelper});
        try {
            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
            bean.setConfigLocation(resolver.getResource("classpath:mybatis-config.xml"));
            return bean.getObject();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

    @Bean
    @Override
    public PlatformTransactionManager annotationDrivenTransactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }
}

然后就是mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
        
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>

</configuration>
这样就找到了xml,UserMapper.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.test.xjs.demo.mapper.UserMapper">

    <resultMap id="BaseResultMap" type="com.test.xjs.demo.domain.User">
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="name" property="name" jdbcType="VARCHAR" />
    </resultMap>

    <select id="selectById" resultMap="BaseResultMap">
        select * from user_info where id = #{id}
    </select>

    <select id="list" resultMap="BaseResultMap">
        select * from user_info
    </select>

</mapper>

然后就找到了UserMapper.java

@Mapper
public interface UserMapper {
    public User selectById(@Param("id") int id);
    public List<User> list();
}
引用mapper:

@RestController
public class UserController {
    
    @Autowired
    UserMapper userMapper;

    @RequestMapping("/query/{page}/{pageSize}")
    public PageInfo query(@PathVariable Integer page, @PathVariable Integer pageSize) {
        if(page!= null && pageSize!= null){
            PageHelper.startPage(page, pageSize);
        }
        List<User> users = userMapper.list();
        return new PageInfo(users);
    }
}

看下pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test.xjs.demo</groupId>
  <artifactId>mybatis</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <modules>
    <module>../simple</module>
  </modules>
  <packaging>pom</packaging>
  <name>mybatis</name>
  <url>http://maven.apache.org</url>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.0.RELEASE</version>
    <relativePath />
  </parent>


  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>


  <dependencies>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>1.3.0.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.1.1</version>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.5</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.25</version>
    </dependency>

    <!--分页插件-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>4.1.1</version>
    </dependency>

  </dependencies>


</project>

参考:

1.集成mybatis,多数据源 http://blog.csdn.net/xiaoyu411502/article/details/48164311

2.集成mybatis,分页插件 http://blog.csdn.net/isea533/article/details/50359390

3.mybatis模糊查询 http://blog.csdn.net/zhang98722/article/details/6956571

4.spring boot静态资源处理 http://blog.csdn.net/isea533/article/details/50412212


源码下载:http://download.csdn.net/detail/goldenfish1919/9553362



  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,可以给你提供一些思路和代码示例。 首先,在pom.xml文件中添加依赖: ``` <!-- Spring Boot MyBatis 依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> </dependency> <!-- 分页插件 PageHelper 依赖 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pagehelper.version}</version> </dependency> ``` 其中,mybatis.version 和 pagehelper.version 可以根据需要进行指定。 接着,创建一个 Mapper 接口,使用 MyBatis 注解编写查询语句: ``` @Mapper public interface UserMapper { @Select("SELECT * FROM user") List<User> findAll(); } ``` 这里的 findAll() 方法只是一个简单的查询所有数据的方法,可以根据实际情况进行调整。 然后,在 Service 层中注入 UserMapper,并使用 PageHelper 进行分页查询: ``` @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public PageInfo<User> findAll(int pageNum, int pageSize) { // 开启分页查询 PageHelper.startPage(pageNum, pageSize); // 查询数据 List<User> userList = userMapper.findAll(); // 封装成 PageInfo 对象并返回 return new PageInfo<>(userList); } } ``` 最后,在 Controller 层中调用 UserService 的 findAll() 方法,将查询结果返回给前端: ``` @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/user") public PageInfo<User> findAll(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { return userService.findAll(pageNum, pageSize); } } ``` 这里使用 @RequestParam 注解指定了 pageNum 和 pageSize 的默认值,方便测试。 以上就是使用 Spring Boot 整合 MyBatis 进行分页查询的基本流程和示例代码。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值