Springboot集成mybatis
1.添加maven依赖
包括mybatis和要连接的数据库驱动,这里我连接的是postgres,使用MySQL的换成对应到依赖即可。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1209.jre7</version>
</dependency>
2. 创建数据库表,插入数据
CREATE TABLE "logframe"."alarm" (
"alarm_id" varchar(36) COLLATE "default" NOT NULL,
"alarm_rule_id" varchar(36) COLLATE "default",
"alarm_rule_name" varchar(127) COLLATE "default",
"alarm_rule_type" varchar(63) COLLATE "default",
"alarm_level" int4,
"source_name" varchar(127) COLLATE "default",
"alarm_value" varchar(63) COLLATE "default",
"description" text COLLATE "default",
"alarm_time" int8,
"status" int4,
"norm" varchar(64) COLLATE "default",
"threshold" float4,
"real_value" float4,
"unit" varchar(32) COLLATE "default"
)
WITH (OIDS=FALSE)
;
3.新建对应的类
Alarm,我这个类所在的包为com.test.model
package com.test.model;
public class Alarm {
private String alarmId;
private String alarmRuleId;
private String alarmRuleName;
private String alarmRuleType;
private Integer alarmLevel;
private String sourceName;
private String alarmValue;
private String description;
private Long alarmTime;
private Integer status;
private String norm;
private Float threshold;
private Float realValue;
private String unit;
public String getAlarmId() {
return alarmId;
}
public void setAlarmId(String alarmId) {
this.alarmId = alarmId;
}
public String getAlarmRuleId() {
return alarmRuleId;
}
public void setAlarmRuleId(String alarmRuleId) {
this.alarmRuleId = alarmRuleId;
}
public String getAlarmRuleName() {
return alarmRuleName;
}
public void setAlarmRuleName(String alarmRuleName) {
this.alarmRuleName = alarmRuleName;
}
public String getAlarmRuleType() {
return alarmRuleType;
}
public void setAlarmRuleType(String alarmRuleType) {
this.alarmRuleType = alarmRuleType;
}
public Integer getAlarmLevel() {
return alarmLevel;
}
public void setAlarmLevel(Integer alarmLevel) {
this.alarmLevel = alarmLevel;
}
public String getSourceName() {
return sourceName;
}
public void setSourceName(String sourceName) {
this.sourceName = sourceName;
}
public String getAlarmValue() {
return alarmValue;
}
public void setAlarmValue(String alarmValue) {
this.alarmValue = alarmValue;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Long getAlarmTime() {
return alarmTime;
}
public void setAlarmTime(Long alarmTime) {
this.alarmTime = alarmTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getNorm() {
return norm;
}
public void setNorm(String norm) {
this.norm = norm;
}
public Float getThreshold() {
return threshold;
}
public void setThreshold(Float threshold) {
this.threshold = threshold;
}
public Float getRealValue() {
return realValue;
}
public void setRealValue(Float realValue) {
this.realValue = realValue;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
}
4. 创建mapper
package com.test.dao;
import com.test.model.Alarm;
public interface AlarmMapper {
Alarm getAlarmById(String alarmId);
}
5. 创建对应的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.test.dao.AlarmMapper">
<resultMap id="BaseResultMap" type="com.test.model.Alarm">
<result column="alarm_id" property="alarmId" jdbcType="VARCHAR"/>
<result column="alarm_rule_id" property="alarmRuleId" jdbcType="VARCHAR"/>
<result column="alarm_rule_name" property="alarmRuleName" jdbcType="VARCHAR"/>
<result column="alarm_rule_type" property="alarmRuleType" jdbcType="VARCHAR"/>
<result column="alarm_level" property="alarmLevel" jdbcType="INTEGER"/>
<result column="source_name" property="sourceName" jdbcType="VARCHAR"/>
<result column="alarm_value" property="alarmValue" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
<result column="alarm_time" property="alarmTime" jdbcType="BIGINT"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<result column="norm" property="norm" jdbcType="VARCHAR"/>
<result column="threshold" property="threshold" jdbcType="REAL"/>
<result column="real_value" property="realValue" jdbcType="REAL"/>
<result column="unit" property="unit" jdbcType="VARCHAR"/>
</resultMap>
<!--根据id查询告警信息-->
<select id="getAlarmById" resultMap="BaseResultMap">
SELECT * from logframe.alarm where alarm_id = #{alarmId, jdbcType=VARCHAR}
</select>
</mapper>
6. springboot启动类加@MapperScan注解
为了扫描对应的mapper,比如我的mapper在com.test.dao内,配置如下:
package com.test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.test.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
7. 创建一个controller类测试下:
@RestController
public class TestController {
@Autowired
private AlarmMapper alarmMapper;
@RequestMapping(value = "/alarm", method = RequestMethod.GET)
public Alarm getAlarmById(String alarmId) {
return alarmMapper.getAlarmById(alarmId);
}
}
启动springboot应用,打开对于的接口即可看到返回数据。
比如我这边的测试:
http://localhost:8080/alarm?alarmId=409790cd-5633-4a47-b0bb-06b47dbbb52d