工作中没有办法通过pip install的方式安装ibm_db,本地正好有ibm的jar包,便想到通过java开发数据服务提供给python使用的想法,java使用的db2的依赖如下,连接db2依赖该jar包:
<groupId>com.ibm.db2</groupId>
<artifactId>jcc</artifactId>
<version>runtime</version>
项目的代码如下:
Mybatis的配置如下,主要是进行驼峰转换,因为数据库和代码的命名规范不同,这样数据库字段和代码字段可以保持一致
@org.springframework.context.annotation.Configuration
public class MyBatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer(){
@Override
public void customize(Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);
}
};
}
}
<?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>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>```
controller和mapper的代码如下,这里直接返回的是一个Map,而不是一个自定义的对象,减少了创建对象的过程,简化的代码
```java
@RestController
public class OtpController {
@Autowired
OtpMapper otpMapper;
@GetMapping("/dept/{uid}")
public Map<String,String> rspOtp(@PathVariable("uid") String uid){
return otpMapper.getOtp(uid);
}
}
public interface OtpMapper {
public Map<String,String> getOtp(String uid);
}
Spring的配置如下,可以根据自己的需求,更改连接数据库的驱动,如连接DB2可以更改为:
spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver
spring.datasource.url=jdbc:db2://120.25.253.110:50011/mybatis
server.port=5555
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.ibm.db2.jcc.DB2Driver
#spring.datasource.url=jdbc:mysql://120.25.253.110/mybatis
spring.datasource.url=jdbc:db2://120.25.253.110:50011/mybatis
spring.datasource.username=root
spring.datasource.password=
mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
logging.level.com.penn.mybatis.mapper=debug
最后通过postman访问本地启动的服务,效果如下
项目地址: https://gitee.com/penn520/simple-mybatis