基于SpringBoot实现操作GaussDB(DWS)的项目实战
摘要:本文就使用springboot结合mybatis plus在项目中实现对GaussDB(DWS)的增删改查操作。
本文分享自华为云社区《基于SpringBoot实现操作GaussDB(DWS)的项目实战【玩转PB级数仓GaussDB(DWS)】》,作者:清雨小竹。
GaussDB(DWS)
数据仓库服务GaussDB(DWS) 是一种基于华为云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。GaussDB(DWS)是基于华为融合数据仓库GaussDB产品的云原生服务 ,兼容标准ANSI SQL 99和SQL 2003,同时兼容PostgreSQL/Oracle数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。
GaussDB(DWS) 基于Shared-nothing分布式架构,具备MPP (Massively Parallel Processing)大规模并行处理引擎,由众多拥有独立且互不共享的CPU、内存、存储等系统资源的逻辑节点组成。在这样的系统架构中,业务数据被分散存储在多个节点上,数据分析任务被推送到数据所在位置就近执行,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
Spring Boot
Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种简便,快捷的方式来设置,配置和运行基于Web的简单应用程序。它是一个Spring模块,提供了 RAD(快速应用程序开发)功能。它用于创建独立的基于Spring的应用程序,因为它需要最少的Spring配置,因此可以运行。简而言之,Spring Boot是 Spring Framework 和 嵌入式服务器的组合。在Spring Boot不需要XML配置(部署描述符)。它使用约定优于配置软件设计范例,这意味着可以减少开发人员的工作量。我们可以使用Spring STS IDE 或 Spring Initializr 进行开发Spring Boot Java应用程序。
Mybatis plus(MP)
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
华为云官方文档给出了使用JDBC连接GaussDB(DWS)并实现增删改查基本操作的教程和代码示例。https://support.huaweicloud.com/devg-dws/dws_04_0085.html,在java开发中springboot作为一个常用的开发框架在很多项目中使用,下面就使用springboot结合mybatis plus在项目中实现对GaussDB(DWS)的增删改查操作。
一、新建springboot项目
1.打开idea基于向导新建springboot项目。
2.添加依赖JDBC API和SpringWeb
3.项目新建完成后打开新建libs文件夹,把jdbc驱动复制到libs目录下。https://support.huaweicloud.com/mgtg-dws/dws_01_0032.html
- gsjdbc4.jar:与PostgreSQL保持兼容,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统中使用。
- gsjdbc200.jar:如果同一JVM进程内需要同时访问PostgreSQL及GaussDB(DWS) 请使用该驱动包。该包主类名为“com.huawei.gauss200.jdbc.Driver”(即将“org.postgresql”替换为“com.huawei.gauss200.jdbc”) ,数据库连接的URL前缀为“jdbc:gaussdb”,其余与gsjdbc4.jar相同。、
4.jar包上鼠标点击右键,点击Add as Library。
5.打开build.gradle,添加mybatis plus依赖,由于GaussDB DWS兼容PostgreSQL所以runtimeOnly可以使用org.postgresql:postgresql
dependencies { //mybatis-plus implementation 'com.baomidou:mybatis-plus-boot-starter:3.5.2' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'org.postgresql:postgresql' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
6.打开application.properties配置数据库源信息。
spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://xx.xx.xx.xx:8000/database?currentSchema=traffic_data spring.datasource.username=dbadmin spring.datasource.password=xxxxxx
二、配置mybatis plus
7.新增数据表
CREATE TABLE "traffic_data"."customer" ( "id" int4, "c_customer_sk" int4, "c_customer_name" varchar(32) );
8.新增包名com.zz.testdws.mapper和com.zz.testdws.entity
9.新建实体类对象customer.java和Mappder对象CustomerMapper.java文件
package com.zz.testdws.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; /** * <p> * * </p> * * @author zzzili * @since 2023-02-16 */ public class customer { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; private Integer cCustomerSk; private String cCustomerName; @Override public String toString() { return "customer{" + "id=" + id + ", cCustomerSk=" + cCustomerSk + ", cCustomerName='" + cCustomerName + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getcCustomerSk() { return cCustomerSk; } public void setcCustomerSk(Integer cCustomerSk) { this.cCustomerSk = cCustomerSk; } public String getcCustomerName() { return cCustomerName; } public void setcCustomerName(String cCustomerName) { this.cCustomerName = cCustomerName; } }
package com.zz.testdws.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zz.testdws.entity.customer; /** * <p> * Mapper 接口 * </p> * * @author zzzili * @since 2023-02-15 */ public interface CustomerMapper extends BaseMapper<customer> { }
10.打开TestDwsSpringBootApplication.java文件,添加mapper扫描器注解@MapperScan("com.zz.testdws.mapper")
package com.zz.testdws; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.zz.testdws.mapper") public class TestDwsSpringBootApplication { public static void main(String[] args) { SpringApplication.run(TestDwsSpringBootApplication.class, args); } }
三、测试数据
11.打开TestDwsSpringBootApplicationTests.java文件编写代码,测试用sql执行增删改查数据。
@Autowired DataSource dataSource; @Test void testDoSQL() throws SQLException { System.out.println(dataSource.getClass()); //获取连接 Connection con = dataSource.getConnection(); //调用Connection的createStatement方法创建语句对象 Statement stmt = con.createStatement(); //调用Statement的executeUpdate方法执行SQL语句 //int rc = stmt.executeUpdate("CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));"); //System.out.println("rc = " + rc); //int rc = stmt.executeUpdate("INSERT INTO customer_t1(c_customer_sk,c_customer_name) values('1001','zhangsan');"); //System.out.println("insert rc = " + rc); //查询数据 ResultSet rs= stmt.executeQuery("select * from customer_t1"); //遍历数据 while(rs.next()){ String sk = rs.getString("c_customer_sk"); String name = rs.getString("c_customer_name"); System.out.println("sk:"+sk+" 姓名:"+name); } con.close(); }
12.编写代码测试使用mybatis plus实现增删改查。
@Autowired CustomerMapper customerMapper; @Test void testMybatis(){ //增加 customer cus=new customer(); cus.setcCustomerName("zzzili"); cus.setcCustomerSk(123456); cus.setId(8); customerMapper.insert(cus); //改 cus.setcCustomerSk(66666); customerMapper.updateById(cus); //查 List<customer> list = customerMapper.selectList(null); System.out.println("list size="+list.size()); for(customer node :list){ System.out.println(node); } //删除 customerMapper.deleteById(1); }
总结:通过以上实验实现了在springboot框架中利用mybatis ORM框架对GaussDB(DWS)的增删改查(ARUD)操作,在项目开发中更具有实用性。本示例项目已上传至附件。
附件:测试项目代码.rar9.50MB

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
解决 2900 个漏洞,Google 奖励白帽子 1200 万美元
Vulnerability Reward Program(VRP)是 Google 为了提高其产品和服务的安全性,向找出漏洞的安全研究员支付奖金的一项计划。在 2021 年,Google 就通过 VRP 向安全研究员发放了 870 万美元的漏洞奖励。时间来到了 2023 年,Google 则是公布了 2022 年的年度回顾。 在 2022 年,Google 通过 VRP 共支付了 1200 万美元,相比 2021 年的 870 万美元,增长了约 40%。2021 年的 870 万美元曾是 VRP 计划的历史新高,如今则是再创新纪录。 这些安全研究员在 2022 年帮助 Google 修复了 2900 多个安全问题,其中还有一项单笔 60.5 万美元的漏洞奖励,而 2021 年最高的单笔奖励则是 15.7 万美元。 2022 年,Google 一共奖励了来自 68 个不同国家/地区的 703 名安全研究员(上图),虽说奖励金额提升了约 40%,但奖励人数则是跟 2021 相差不大, 2021 年这两个数字则是 62 个不同国家/地区的 696 名安全研究员(下图)。 Android 通过...
- 下一篇
有没有夫妻相?刷一下脸就知道!
摘要:本文利用ssim算法,帮你快速打造一个“刷脸测试夫妻相”Demo出来。 本文分享自华为云社区《情人节季,快来上传你的女神照片,测试下你们的夫妻相》,作者: HWCloudAI 。 “夫妻相”是指两人之间的相貌让人感觉是一对夫妻,还有一种说法是指夫妻之间面容相似。 有研究认为:两个人在一起生活得久了,表情动作彼此模仿,会越来越像。其实是因为大多数人都珍爱自己,看到跟自己相像的人格外顺眼,从一开头就是拿自己当范本选择另一半。“夫妻相”的大抵意思是因为常常接触,心灵相倾,习惯趋同,相同的作息、肠道菌落交换等相互影响,以致到了面容相像。夫妻相是面容相像,心灵相倾,习惯趋同,相互影响。 世界各地都有类似的说法:人们容易被面容与自己有共同之处的人吸引。一些进化生物学家认为,这是因为我们潜意识里觉得,与自己长相相似的人更值得信任。然而也有研究表明,当动物处于压力下,它们更倾向与同伴中遗传距离较远的个体交配。 尽管上述描述在当今心理学、生物学方面有争议,但是大多数人还是比较认同“夫妻相”这一说法的。(以上“夫妻相”解释来自百度百科) 基于此,本文利用ssim算法,帮你快速打造一个“刷脸测试夫妻相...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2全家桶,快速入门学习开发网站教程