Spring Boot中使用mybatis访问达梦数据库详解

3 篇文章 0 订阅
1 篇文章 0 订阅

Spring Boot中使用mybatis访问达梦数据库详解


目录

Spring Boot中使用mybatis访问达梦数据库详解

 

前言

一、创建SpringBoot项目

二、代码编写

三、测试

总结


前言

       武汉达梦数据库股份有限公司作为国产数据库的龙头企业,是国内鲜有掌握数据管理与数据分析领域的核心前沿技术,拥有全部源代码,具有完全自主知识产权的国产数据库厂商,在国内数据库份额越来越多,深扎传统领域的关键业务场景,我们来学习下如果使用mybatis访问达梦数据库进行基本的Druid操作。

一、创建SpringBoot项目

创建项目,按下图选项进行勾选:

点击next进入下一步,配置项目基本信息,如下图:

勾选项目所需要的的依赖坐标,如下图:

点击next,finish结束后开始初始化项目,第一次建立项目,需要下载很多包,请耐心等待一下。初始化完毕后,由于我们要使用的是达梦数据库,需要我们自己增加达梦的jdbc驱动依赖,在maven的本地仓库中添加驱动包,驱动包在达梦的安装目录里有,可自行挪移,打开项目中的pom.xml文件,增加依赖坐标,如下图:

修改application.properties文件为application.yml文件,添加项目端口和jdbc链接相关信息,同时增加mybatis的配置项,如下图:

二、代码编写

在启动类同级目录下创建entity,service,serviceImpl,dao,controller文件夹,resources文件夹下建立mapper文件夹,用来存放sql语句的xml文件在此目录下如下图:

在entity文件夹下创建Plan实体类

package com.dm.jdbcdemo.entity;

public class Plan {
    private String id;
    private String gznr;
    private String tdfw;
    private String czlx;

    public String getId() {
        return id;
    }

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

    public String getGznr() {
        return gznr;
    }

    public void setGznr(String gznr) {
        this.gznr = gznr;
    }

    public String getTdfw() {
        return tdfw;
    }

    public void setTdfw(String tdfw) {
        this.tdfw = tdfw;
    }

    public String getCzlx() {
        return czlx;
    }

    public void setCzlx(String czlx) {
        this.czlx = czlx;
    }
}

在dao文件夹下创建PlanMapper接口,mybatis的持久层调用有两张方式,一致是注解,在接口上添加@Select,@Delete等增删查改注解,另一种是通过映射调用resource/*mapper文件夹下的xml文件的接口操作

package com.dm.mybatis.dao;
import com.dm.mybatis.entity.Plan;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface PlanMapper {

    List<Plan> getPlanData();

    int updatePlanData();

    @Delete(value = "delete from plan where id in ('1111111','2222222','3333333')")
    int deletePlanData();

    int insertPlanData(List<Plan> list);

    @Select("select * from log a inner join plan b ON a.par_obj_id=b.id")
    List<Map> getPlanRecordData();

}

在service文件夹下创建PlanService接口

package com.dm.jdbcdemo.service;

import java.util.List;

public interface PlanService {

    List getPlanData();

    int updatePlanData();

    int deletePlanData();

    int[] insertPlanData();

    List getPlanRecordData();
}

在serviceImpl文件夹下创建PlanServiceImpl实现类

package com.dm.jdbcdemo.serviceImpl;

import com.dm.jdbcdemo.dao.PlanDao;
import com.dm.jdbcdemo.service.PlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class PlanServiceImpl implements PlanService {

    @Autowired
    PlanDao planDao;

    @Override
    public List getPlanData() {
        return planDao.getPlanData();
    }

    @Override
    public int updatePlanData() {
        return planDao.updatePlanData();
    }

    @Override
    public int deletePlanData() {
        return planDao.deletePlanData();
    }

    @Override
    public int[] insertPlanData() {
        Object[] firstPlan = {"1111111","a","b"};
        Object[] secondPlan = {"2222222","aa","bb"};
        Object[] thirdPlan = {"3333333","aaa","bbb"};
        List<Object[]> planList = new ArrayList();
        planList.add(firstPlan);
        planList.add(secondPlan);
        planList.add(thirdPlan);
        return planDao.insertPlanData(planList);
    }

    @Override
    public List getPlanRecordData() {
        return planDao.getPlanRecordData();
    }
}

在controller文件夹下创建PlanController类

package com.dm.jdbcdemo.controller;

import com.dm.jdbcdemo.service.PlanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class PlanController {

    @Autowired
    PlanService planService;

    @RequestMapping("/")
    public String index() {
        return "欢迎使用jdbcdTemplate!";
    }

    //查询plan数据
    @RequestMapping("/getPlanData")
    public List getPlanData() {
        return planService.getPlanData();
    }

    //修改plan数据
    @RequestMapping("/updatePlanData")
    public int updatePlanData() {
        return planService.updatePlanData();
    }

    //删除plan数据
    @RequestMapping("/deletePlanData")
    public int deletePlanData() {
        return planService.deletePlanData();
    }

    //新增plan数据
    @RequestMapping("/insertPlanData")
    public int[] insertPlanData() {
        return planService.insertPlanData();
    }

    //查询plan操作记录数据
    @RequestMapping("/getPlanRecordData")
    public List getPlanRecordData() {
        return planService.getPlanRecordData();
    }
}

在resource/mapper下创建PlanMapper.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.dm.mybatis.dao.PlanMapper">
    <resultMap id="BaseResultMap" type="com.dm.mybatis.entity.Plan">
        <id column="id" jdbcType="VARCHAR" property="id"/>
        <result column="gznr" jdbcType="VARCHAR" property="gznr"/>
        <result column="tdfw" jdbcType="VARCHAR" property="tdfw"/>
        <result column="czlx" jdbcType="VARCHAR" property="czlx"/>
    </resultMap>

    <sql id="ColumnList">
        id, gznr, tdfw
    </sql>

    <!-- 查询所有数据 -->
    <select id="getPlanData" resultMap="BaseResultMap">
        select
        <include refid="ColumnList"/>
        from plan
    </select>

    <!-- 修改数据 -->
    <update id="updatePlanData">
        update plan set gznr='aaaaa' where id='1111111'
    </update>

    <!-- 插入数据 -->
    <!--<insert id="savePlan" parameterType="com.dm.mybatis.entity.Plan">
        insert into plan(id, gznr, tdfw) values (#{id,jdbcType=VARCHAR}, #{gznr,jdbcType=VARCHAR}, #{tdfw,jdbcType=VARCHAR})
    </insert>-->

    <!--批量插入数据 -->
    <insert id="insertPlanData" parameterType="com.dm.mybatis.entity.Plan">
        insert into plan(id, gznr, tdfw) values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id},#{item.gznr},#{item.tdfw})
        </foreach>
    </insert>


</mapper>

三、测试

开始启动项目,并查看日志是否启动正常,如下图:

打开谷歌浏览器,测试数据库的增删查改功能,浏览器地址解析如图:

插入三条数据,显示为1则代表插入成功,如下图:

修改一条数据,显示为1则代表修改成功,如下图:


总结

数据库访问是数据库应用系统中非常重要的组成部分。DM 作为一个通用数据库管理系统,提供了多种数据库访问接口,包括 ODBC、JDBC、DPI 等方式。本指南的主要读者是从事过数据库应用系统开发,并具有 SQL 使用基础的程序员。开发一个应用系统,需要对其使用的数据库管理系统所具有的功能、性能、特性有较深入的了解。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值