springboot+mybatis+达梦数据库

Easter79
• 阅读 639

准备工作:

首先,安装达梦6数据库。安装完之后如下建表

springboot+mybatis+达梦数据库

然后,很重要的一点(写法一定要这样写,否则无限报错)

达梦数据库查表方式:

select  *  from    "库名"."模式名"."表名"

其次,下载达梦数据库驱动包(这个通过maven在线下载是下载不到的!)

springboot+mybatis+达梦数据库

网上的包很多,有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

架构如下图:

springboot+mybatis+达梦数据库

pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.21.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qif.xdqdm</groupId>
    <artifactId>xdqdm</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>xdqdm</name>

    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>


        <!--添加servlet的依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>


        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!--必须指定mybatis版本为3.4.1否则无法连接达梦数据库 -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>


        <dependency>
             <groupId>com.dm</groupId>
             <artifactId>DmJdbcDriver</artifactId>
        <version>1.7.0</version>
         </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.32</version>
        </dependency>


        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
        </plugins>
    </build>

</project>

Myconfig(设置初始页面为index):

package com.qif.xdqdm.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


@Configuration
public class MyConfig extends WebMvcConfigurerAdapter {

    //所有的WebMvcConfigurerAdapter组件都会一起起作用
    @Bean //将组件注册在容器
    public WebMvcConfigurerAdapter webMvcConfigurerAdapter() {
        WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
            @Override
            public void addViewControllers(ViewControllerRegistry registry) {
                registry.addViewController("/").setViewName("index");

            }
        };
        return adapter;
    }


}

TxtUtil不用管,自己用的工具

UserController:

package com.qif.xdqdm.controller;

import com.qif.xdqdm.model.User;
import com.qif.xdqdm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 
 * @Title: UserController
 * @ProjectName xdqdm
 * @Description: TODO
 * @date 2019/7/24  11:13
 */
@Controller
public class UserController {

    @Autowired
    UserService userService;


    @RequestMapping("/getUserList")
    @ResponseBody
    public Map<String, Object> getUserList(HttpServletRequest request){
        Map<String, Object> map = new HashMap<String, Object>();
        List<User> userList =  userService.getUser();


        map.put("data", userList);
        map.put("message", "成功");

        return map;
    }
}

UserDao:

package com.qif.xdqdm.dao;

import com.qif.xdqdm.model.User;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 
 * @Title: UserDao
 * @ProjectName xdqdm
 * @Description: TODO
 * @date 2019/7/24  11:17
 */
@Repository
public interface UserDao {
    List<User> getUserList();
}

User:

package com.qif.xdqdm.model;

/**
 * @author
 * @Title: User
 * @ProjectName sfyz
 * @Description: TODO
 * @date 2019/7/24  10:51
 */
public class User {
    private Integer id;
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

UserService:

package com.qif.xdqdm.service;

import com.qif.xdqdm.model.User;

import java.util.List;

/**
 * @author 
 * @Title: UserService
 * @ProjectName xdqdm
 * @Description: TODO
 * @date 2019/7/24  11:15
 */
public interface UserService {
    List<User> getUser();
}

UserServiceImpl:

package com.qif.xdqdm.service.impl;

import com.qif.xdqdm.dao.UserDao;
import com.qif.xdqdm.model.User;
import com.qif.xdqdm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 
 * @Title: UserServiceImpl
 * @ProjectName xdqdm
 * @Description: TODO
 * @date 2019/7/24  11:15
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserDao userDao;
    @Override
    public List<User> getUser() {
        return userDao.getUserList();
    }
}

XdqdmApplication:

这里不能用springboot自带tomcat8启动类启动,与达梦6驱动包不兼容!

package com.qif.xdqdm;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
//扫描dao包
@MapperScan(value = "com.qif.xdqdm.dao")
@SpringBootApplication
public class XdqdmApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(XdqdmApplication.class, args);
    }


    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }

}

选择tomcat7:

springboot+mybatis+达梦数据库

UserDao.xml:

<?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.qif.xdqdm.dao.UserDao">

    <select id="getUserList" resultType="com.qif.xdqdm.model.User">

        SELECT * FROM "TEST"."SYSDBA"."USER" ;

    </select>


</mapper>

index: "helloworld"

application.properties:

#驱动包
spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver
#12345为达梦6默认端口号 Test为库名
spring.datasource.url=jdbc:dm://localhost:12345/TEST

#达梦数据库6默认的账户和密码
spring.datasource.username=SYSDBA
spring.datasource.password=SYSDBA

application.yml:

mybatis:
  # 指定sql映射文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml

logback(乱码则修改GBK为UTF-8):

<?xml version="1.0" encoding="GBK"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <springProperty scope="context" name="logLevel" source="logging.levels"/>
    <springProperty scope="context" name="logPath" source="logging.path"/>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
             <level>ERROR</level>
         </filter>-->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} =================%contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>GBK</charset>
        </encoder>
    </appender>

    <!--输出到文件-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logPath}logback.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    </root>

</configuration>
点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
不是海碗 不是海碗
1年前
梦的解析 —— 周公版,包括【周公解梦】在内的超多免费可用 API 推荐(二)
梦是人们日常生活中经常出现的现象,人们对梦的解析一直是一个重要的研究领域。周公解梦是中国古代传统文化中的一部分,它对于梦的解析提供了很多有价值的参考,成为了梦解释的重要参考工具之一。
Peter20 Peter20
3年前
mysql 基础教程很全
(一)数据库操作1、创建数据库createdatabase数据库名;createdatabaserunoob;2、选择数据库use数据库名;userunoob;3、删除数据库dropdatabase数据库名;dropdatabaserunoob;(二)数值类型(三)数据表1、创建数据表CREATETABLE数据表名(字段名
Wesley13 Wesley13
3年前
MySQL与Oracle的区别
1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。2\.Oracle支持大并发,大访问量,是OLTP最好的工具。3\.安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特
Wesley13 Wesley13
3年前
MySQL.授权管理
查看权限:showgrantsfor'用户’@‘IP地址’  授权:grant权限on数据库.表to‘用户’@‘IP地址’取消权限:revoke权限on数据库.表from‘用户’@‘IP地址’常用权限:allprivileges除grant外的所有权限     select  仅查权限     select,i
Wesley13 Wesley13
3年前
Java 反射机制的应用
点击上方关注“追梦Java”↑,一起追梦!!(https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9ZSzV0MXFLM05pYzZNZDZlcTJEaWNiNnlQMlZxQ1NTWW9OSnlTaWJxaWJWZjhKZk1xQ2RFcG1aOX
Wesley13 Wesley13
3年前
oracle存储过程迁移达梦心得
这几天把项目的存储过程从oracle迁移到了达梦8,记录一下心得。国产数据库做到这样,已经算很了不起了,跟oracle兼容性确实很高。但还是有一些细节没做好,主要是出错提示不友好,另外一个网上的资料也很少,出问题不好定位。(达梦的错误码比较简单,就是一个负数,不像oracle是ora错误码,在百度时输入一个负数搜索信息,跟一长串错误码搜索效率差很远)
Wesley13 Wesley13
3年前
mysql 权限管理,一个非db管理员创建mysql的做法
安装了mysql,建了数据库,需要几个账号,进行权限管理,现总结如下一个建了四个账号。1.    root账号,这是安装数据库时设置的,假设账号密码如下:root passwd此账号具有管理数据库的最高权限,可以创建用户,建数据库,修改表等全部权限2.  第二个账户createpasswd此账户具有对特定数据库操作的全部
天翼云发布云原生关系型数据库TeleDB for openGauss
近年来,开源软件强势崛起,从开源使用者到开源贡献者,中国的开源数据库产品,让数据库市场格局产生了新的变化。12月28日,openGauss开源社区在北京举办主题为”汇聚数据库创新力量逐梦数字时代星辰大海“的年度开源数据库技术峰会。中国电信天翼云首席专家侯圣文现场发布了运营商首个云原生关系型数据库TeleDBforopenGauss。目前,数字经济占我国
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k