环境:Springboot 2.7.17 、Java 1.8
1,引入mysql相关依赖
<!--引入springboot和mybatis的依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- 引入mysql依赖和durid连接池 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
2,配置mysql相关参数
#mysql相关配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://IP:PORT/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.jackson.time-zone=GMT+8
spring.datasource.username=xxx
spring.datasource.password=xxx
3,根据数据库表的结构创建对应的实体
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Accessors( chain = true )
public class RealTime {
private Integer id;
private Date time;
private String name;
private float value;
private String influxdb_database;
}
4,controller同级目录创建dao包,新建dao类的模板,BaseDAO接口
@Mapper
public interface BaseDAO<T,K> {
void save(T t);
void update(T t);
void delete(K k);
List<T> findAll();
}
5,dao包内创建需要操作的表的DAO接口
@Mapper
public interface RealTimeDAO extends BaseDAO<RealTime , String > {
}
6,在resource目录下新建com/bh/sfapi/mapper包,根据DAO接口,创建对应的RealTimeDAOMapper.xml,根据需求编写对应的sql语句(注意:id需要和dao接口中对应一致 )
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bh.sfapi.dao.RealTimeDAO">
<!-- 查询realtime表所有的记录 -->
<select id="findAll" resultType="RealTime">
select * from realtime
</select>
</mapper>
7,需要在配置文件中引入mapper和entity的路径,在springboot项目运行起来之后才能找到对应的文件
mybatis.mapper-locations=classpath:com/xx/xxxx/mapper/*.xml
mybatis.type-aliases-package=com.xx.xxxx.entity
8,根据业务需求,创建service包内的对应的接口类
public interface RealTimeApi {
// 查询所有记录
List<RealTime> findAll();
}
9,service包内创建上一步的接口的对应实现类,并引入dao接口,调用对应的方法
@Service
public class RealTimeApiImpl implements RealTimeApi{
@Autowired
RealTimeDAO realTimeDAO;
@Override
public List<RealTime> findAll() {
return realTimeDAO.findAll();
}
}
10,controller创建对应的方法,引入service的实现类,调用对应的接口方法获取返回值
@RequestMapping("xxxx")
@RestController
@CrossOrigin
@Slf4j
public class RealTimeController {
@Autowired
RealTimeApi realTimeApi = new RealTimeApiImpl();
@GetMapping("findAll")
public List<RealTime> findAll(){
List<RealTime> all = realTimeApi.findAll();
System.out.println( all );
return all;
}
}
11,运行springboot的启动文件application,即可获取到mysql数据库的查询返回值。(注意这个地方如果运行main方法,获取返回值,会报NullPointterException异常,这个问题需想办法解决!!!)