SpringBoot 使用 MyBatis 将 Map 数据插入 Hive 数据库:代码示例
- 配置 MyBatis
在
application.properties中添加 MyBatis 的配置:
# mybatis配置
mybatis.config-location=classpath:mybatis-config.xml
在 src/main/resources 下新建 mybatis-config.xml 文件,配置 MyBatis:
<?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>
<typeAliases>
<package name='com.example.demo.entity' />
</typeAliases>
<mappers>
<mapper resource='mapper/UserMapper.xml' />
</mappers>
</configuration>
其中,typeAliases 指定实体类所在的包名,mappers 指定 Mapper 文件的位置。
- 配置 Hive 数据源
在
application.properties中添加 Hive 数据源的配置:
# hive数据源配置
spring.datasource.url=jdbc:hive2://localhost:10000/default
spring.datasource.driverClassName=org.apache.hive.jdbc.HiveDriver
- 编写 Mapper 文件
在
src/main/resources/mapper下新建UserMapper.xml文件,编写 insert 语句:
<?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.example.demo.mapper.UserMapper'>
<insert id='insertUser' parameterType='java.util.Map'>
INSERT INTO user(id, name, age) VALUES (#{id}, #{name}, #{age})
</insert>
</mapper>
其中,parameterType 指定参数类型为 Map<String, Object>。
- 编写服务类
在
com.example.demo.service下新建UserService.java文件,编写 insert 方法:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public int insertUser(Map<String, Object> userMap) {
return userMapper.insertUser(userMap);
}
}
- 编写控制器
在
com.example.demo.controller下新建UserController.java文件,编写 insert 方法:
@RestController
@RequestMapping('/user')
public class UserController {
@Autowired
private UserService userService;
@PostMapping('/insert')
public String insertUser(@RequestBody Map<String, Object> userMap) {
int result = userService.insertUser(userMap);
if (result > 0) {
return 'success';
} else {
return 'fail';
}
}
}
其中,@PostMapping('/insert') 指定请求路径为 /user/insert,@RequestBody 指定参数为请求体中的 JSON 数据。
- 测试
启动 Spring Boot 应用,使用 Postman 发送 POST 请求,请求路径为
http://localhost:8080/user/insert,请求体为 JSON 数据:
{
'id': '1',
'name': '张三',
'age': 20
}
如果返回 success,则表示插入成功。
注:以上示例代码仅供参考,实际开发中需要根据自己的业务需求进行修改。
原文地址: https://www.cveoy.top/t/topic/od3N 著作权归作者所有。请勿转载和采集!