准备工作:
首先,安装达梦6数据库。安装完之后如下建表

然后,很重要的一点(写法一定要这样写,否则无限报错)
达梦数据库查表方式:
select * from "库名"."模式名"."表名"
其次,下载达梦数据库驱动包(这个通过maven在线下载是下载不到的!)

网上的包很多,有dm6,dm7 ...。。。。。。
都试过,和springboot不兼容。用上面这个名字的最新的包。
再然后,把驱动包打入本地maven仓库,命令如下:
mvn install:install-file -DgroupId=com.dm -DartifactId=DmJdbcDriver -Dversion=1.7.0 -Dpackaging=jar -Dfile=D:\DmJdbcDriver.jar
搭建项目:
新建springboot 1.5.21,只选择web
架构如下图:

pom文件:
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>1.5.21.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.qif.xdqdm</groupId> 12 <artifactId>xdqdm</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <packaging>war</packaging> 15 <name>xdqdm</name> 16 17 <description>Demo project for Spring Boot</description> 18 19 <properties> 20 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 21 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 22 <java.version>1.8</java.version> 23 </properties> 24 25 <dependencies> 26 27 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-thymeleaf</artifactId> 31 </dependency> 32 33 34 <!--添加servlet的依赖--> 35 <dependency> 36 <groupId>javax.servlet</groupId> 37 <artifactId>javax.servlet-api</artifactId> 38 <version>3.1.0</version> 39 <scope>provided</scope> 40 </dependency> 41 42 43 <dependency> 44 <groupId>org.mybatis.spring.boot</groupId> 45 <artifactId>mybatis-spring-boot-starter</artifactId> 46 <version>1.3.2</version> 47 </dependency> 48 49 <!--必须指定mybatis版本为3.4.1否则无法连接达梦数据库 --> 50 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> 51 <dependency> 52 <groupId>org.mybatis</groupId> 53 <artifactId>mybatis</artifactId> 54 <version>3.4.1</version> 55 </dependency> 56 57 58 <dependency> 59 <groupId>com.dm</groupId> 60 <artifactId>DmJdbcDriver</artifactId> 61 <version>1.7.0</version> 62 </dependency> 63 <dependency> 64 <groupId>org.springframework.boot</groupId> 65 <artifactId>spring-boot-starter-test</artifactId> 66 <scope>test</scope> 67 </dependency> 68 <dependency> 69 <groupId>com.alibaba</groupId> 70 <artifactId>fastjson</artifactId> 71 <version>1.2.32</version> 72 </dependency> 73 74 75 <!-- 热部署 --> 76 <dependency> 77 <groupId>org.springframework.boot</groupId> 78 <artifactId>spring-boot-devtools</artifactId> 79 <optional>true</optional> 80 </dependency> 81 82 </dependencies> 83 84 <build> 85 <plugins> 86 <plugin> 87 <artifactId>maven-war-plugin</artifactId> 88 <version>3.0.0</version> 89 </plugin> 90 </plugins> 91 </build> 92 93</project>
Myconfig(设置初始页面为index):
1package com.qif.xdqdm.config; 2 3import org.springframework.context.annotation.Bean; 4import org.springframework.context.annotation.Configuration; 5import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; 6import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 7 8 9@Configuration 10public class MyConfig extends WebMvcConfigurerAdapter { 11 12 //所有的WebMvcConfigurerAdapter组件都会一起起作用 13 @Bean //将组件注册在容器 14 public WebMvcConfigurerAdapter webMvcConfigurerAdapter() { 15 WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() { 16 @Override 17 public void addViewControllers(ViewControllerRegistry registry) { 18 registry.addViewController("/").setViewName("index"); 19 20 } 21 }; 22 return adapter; 23 } 24 25 26}
TxtUtil不用管,自己用的工具
UserController:
1package com.qif.xdqdm.controller; 2 3import com.qif.xdqdm.model.User; 4import com.qif.xdqdm.service.UserService; 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Controller; 7import org.springframework.web.bind.annotation.RequestMapping; 8import org.springframework.web.bind.annotation.ResponseBody; 9 10import javax.servlet.http.HttpServletRequest; 11import java.util.HashMap; 12import java.util.List; 13import java.util.Map; 14 15/** 16 * @author 17 * @Title: UserController 18 * @ProjectName xdqdm 19 * @Description: TODO 20 * @date 2019/7/24 11:13 21 */ 22@Controller 23public class UserController { 24 25 @Autowired 26 UserService userService; 27 28 29 @RequestMapping("/getUserList") 30 @ResponseBody 31 public Map<String, Object> getUserList(HttpServletRequest request){ 32 Map<String, Object> map = new HashMap<String, Object>(); 33 List<User> userList = userService.getUser(); 34 35 36 map.put("data", userList); 37 map.put("message", "成功"); 38 39 return map; 40 } 41}
UserDao:
1package com.qif.xdqdm.dao; 2 3import com.qif.xdqdm.model.User; 4import org.springframework.stereotype.Repository; 5 6import java.util.List; 7 8/** 9 * @author 10 * @Title: UserDao 11 * @ProjectName xdqdm 12 * @Description: TODO 13 * @date 2019/7/24 11:17 14 */ 15@Repository 16public interface UserDao { 17 List<User> getUserList(); 18}
User:
1package com.qif.xdqdm.model; 2 3/** 4 * @author 5 * @Title: User 6 * @ProjectName sfyz 7 * @Description: TODO 8 * @date 2019/7/24 10:51 9 */ 10public class User { 11 private Integer id; 12 private String name; 13 14 public Integer getId() { 15 return id; 16 } 17 18 public void setId(Integer id) { 19 this.id = id; 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29}
UserService:
1package com.qif.xdqdm.service; 2 3import com.qif.xdqdm.model.User; 4 5import java.util.List; 6 7/** 8 * @author 9 * @Title: UserService 10 * @ProjectName xdqdm 11 * @Description: TODO 12 * @date 2019/7/24 11:15 13 */ 14public interface UserService { 15 List<User> getUser(); 16} 17 18UserServiceImpl: 19 20package com.qif.xdqdm.service.impl; 21 22import com.qif.xdqdm.dao.UserDao; 23import com.qif.xdqdm.model.User; 24import com.qif.xdqdm.service.UserService; 25import org.springframework.beans.factory.annotation.Autowired; 26import org.springframework.stereotype.Service; 27 28import java.util.List; 29 30/** 31 * @author 32 * @Title: UserServiceImpl 33 * @ProjectName xdqdm 34 * @Description: TODO 35 * @date 2019/7/24 11:15 36 */ 37@Service 38public class UserServiceImpl implements UserService { 39 40 @Autowired 41 UserDao userDao; 42 @Override 43 public List<User> getUser() { 44 return userDao.getUserList(); 45 } 46}
XdqdmApplication:
这里不能用springboot自带tomcat8启动类启动,与达梦6驱动包不兼容!
1package com.qif.xdqdm; 2 3import org.mybatis.spring.annotation.MapperScan; 4import org.springframework.boot.SpringApplication; 5import org.springframework.boot.autoconfigure.SpringBootApplication; 6import org.springframework.boot.builder.SpringApplicationBuilder; 7import org.springframework.boot.web.support.SpringBootServletInitializer; 8//扫描dao包 9@MapperScan(value = "com.qif.xdqdm.dao") 10@SpringBootApplication 11public class XdqdmApplication extends SpringBootServletInitializer { 12 13 public static void main(String[] args) { 14 SpringApplication.run(XdqdmApplication.class, args); 15 } 16 17 18 @Override 19 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 20 return builder.sources(this.getClass()); 21 } 22 23}
选择tomcat7:

UserDao.xml:
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 3<mapper namespace="com.qif.xdqdm.dao.UserDao"> 4 5 <select id="getUserList" resultType="com.qif.xdqdm.model.User"> 6 7 SELECT * FROM "TEST"."SYSDBA"."USER" ; 8 9 </select> 10 11 12</mapper>
index: "helloworld"
application.properties:
1#驱动包 2spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver 3#12345为达梦6默认端口号 Test为库名 4spring.datasource.url=jdbc:dm://localhost:12345/TEST 5 6#达梦数据库6默认的账户和密码 7spring.datasource.username=SYSDBA 8spring.datasource.password=SYSDBA
application.yml:
1mybatis: 2 # 指定sql映射文件位置 3 mapper-locations: classpath:mybatis/mapper/*.xml
logback(乱码则修改GBK为UTF-8):
1<?xml version="1.0" encoding="GBK"?> 2<configuration scan="true" scanPeriod="60 seconds" debug="false"> 3 <contextName>logback</contextName> 4 <springProperty scope="context" name="logLevel" source="logging.levels"/> 5 <springProperty scope="context" name="logPath" source="logging.path"/> 6 <!--输出到控制台--> 7 <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 8 <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 9 <level>ERROR</level> 10 </filter>--> 11 <encoder> 12 <pattern>%d{HH:mm:ss.SSS} =================%contextName [%thread] %-5level %logger{36} - %msg%n</pattern> 13 <charset>GBK</charset> 14 </encoder> 15 </appender> 16 17 <!--输出到文件--> 18 <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> 19 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 20 <fileNamePattern>${logPath}logback.%d{yyyy-MM-dd}.log</fileNamePattern> 21 </rollingPolicy> 22 <encoder> 23 <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> 24 <charset>UTF-8</charset> 25 </encoder> 26 </appender> 27 28 <root level="info"> 29 <appender-ref ref="console" /> 30 <appender-ref ref="file" /> 31 </root> 32 33</configuration>