springboot+mybatis+oracle+pagehelper

写在前面,springboot的优势就是自动装配,就是配置文件就决定了装配的bean。
下文依据的是springboot2.0.0,mybatis-spring-boot-starter引用了spring-boot-starter-jdbc,去自动创建dataSource,sqlSessionFactory,sqlSessionTemplate,通过注解开始事务管理器DataSourceTransactionManagement,通过配置文件创建pageHelper。

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--pagehelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!--ojdbc-->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>
</dependencies>

MonitorController

@RestController
public class MonitorController {
    @Autowired
    private MonitorMapper monitorMapper;

    @ResponseBody
    @RequestMapping(path = "/check", method = RequestMethod.GET)
    public String check(){
        String aaa = monitorMapper.check();
        return aaa;
    }
}

MonitorMapper

@Mapper
public interface MonitorMapper {
    /**
     * 检测数据库连接
     * @return
     */
    String check();
}

MonitorMapper.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.ch.kafkacontrol.mapper.MonitorMapper">
    <select id="check" resultType="java.lang.String">
        SELECT 'success' from dual
    </select>
</mapper>

application.properties

#配置数据源
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
#配置数据库连接池
spring.datasource.hikari.pool-name=myHikari
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-test-query=SELECT 1 from dual

#mybatis
#自动映射mapper.xml文件
mybatis.mapper-locations=classpath:mapper/*.xml
#自动映射实体
mybatis.type-aliases-package=com.ch.kafkacontrol.entity.po
#自动转化为驼峰命名
mybatis.configuration.map-underscore-to-camel-case=true

#pagehelper
#分页插件方言oracle
pagehelper.helperDialect=oracle
#分页合理化
pagehelper.reasonable=true
#允许传参分页信息
pagehelper.supportMethodsArguments=true
#如果POJO或者Map中发现了countSql属性,就会作为count参数使用
pagehelper.params=count=countSql

写在最后:
文中没有写查询数据库转化为实体的例子,下面单独列出来一个

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TopicPO {
    private Long id;
    private String topic;
    private Long partitions;
    private Long replications;
    private String department;
    private String remark;
    private String status;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone = "GMT+8")
    private Date createTime;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",locale = "zh",timezone = "GMT+8")
    private Date updateTime;
}

文中没有自动扫描Mapper接口,可以用@MapperScan去扫描包,也可以手动使用@Mapper注解

文中没有定义事务管理,可以在Application启动类中使用注解@EnableTransactionManagement开启,使用@Transactional去使用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容