在开发中,使用Spring Boot框架结合MyBatis来操作数据库是一种常见的做法。本篇博客将介绍如何在Spring Boot项目中配置MyBatis来连接达梦数据库6,并提供一个简单的示例供参考。(达梦六不仅分表还分模式.) 我拿SYSTEM表的LPS模式下面Student表做案例。
1. 添加依赖
首先,我们需要在pom.xml
文件中添加相关依赖:
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency><!-- 添加dm6 jdbc jar 包依赖--><dependency><groupId>com.github.tianjing</groupId><artifactId>Dm6JdbcDriver</artifactId><version>1.0.0</version></dependency>
2. 配置数据源、配置MyBatis
接下来,我们需要在application.yml
文件中配置数据源信息:
spring:datasource:url: jdbc:dm6://localhost:12345/SYSTEMusername: SYSDBApassword: 密码自己写啦driver-class-name: dm6.jdbc.driver.DmDriverhikari:connection-test-query: select 1mybatis:mapper-locations: classpath:/mappers/*.xml # 修改为你的 MyBatis XML 映射文件路径configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplserver:# 服务器的HTTP端口port: 8081servlet:# 应用的访问路径context-path: /
3. 编写Mapper接口和SQL映射文件
在src/main/resources
目录下创建mappers
文件夹,用于存放MyBatis的SQL映射文件。然后,编写Mapper接口和SQL映射文件,示例如下:
@Mapper
public interface StudentMapper {List<Student> selectList();
}
<select id="selectList" resultType="com.lps.domain.Student">select<include refid="Base_Column_List" />from LPS.STUDENT</select>
4. 编写Controller(偷懒没写service)
最后,编写相应的Controller层代码,调用Mapper接口执行数据库操作,并提供API接口供外部调用。
@RestController
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;
//增删改同理....@RequestMapping("/list")public String list() {List<Student> students = studentMapper.selectList();return students.toString();}
}
5、网页访问
总结
通过本文的介绍,我们学习了如何在Spring Boot项目中使用MyBatis连接达梦数据库6。首先,我们添加了必要的依赖项,然后配置了数据源和MyBatis,并编写了Mapper接口和SQL映射文件。最后,我们编写了Controller层代码来调用Mapper接口执行数据库操作,并提供API接口供外部调用。
报错注意事项:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method dm6/jdbc/driver/DmdbPreparedStatement.isClosed()Z is abstract] with root cause
java.lang.AbstractMethodError: Method dm6/jdbc/driver/DmdbPreparedStatement.isClosed()Z is abstract