写在前面,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去使用