暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase Cloud快速入门第22期:如何用 SpringBoot 连接 OceanBase 数据库?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

本文介绍 SpringBoot 连接示例。

环境配置

JDK1.8 和 OceanBase 3.x(MySQL 模式/Oracle 模式)

示例代码

Pom.xml 文件

<?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> <groupId>com.alipay.test</groupId> <artifactId>SpringBootOracleJPA</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-json</artifactId> <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.oceanbase</groupId> <artifactId>oceanbase-client</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.5</version> </dependency> </dependencies> </project>

application.yml 文件

server: port: 8081 spring: jpa: database: oracle show-sql: true datasource: driver-class-name: com.alipay.oceanbase.jdbc.Driver url: jdbc:oceanbase://host:port/test?characterEncoding=UTF-8 username: **u*** password: **p*** #spring.jpa.hibernate.ddl-auto=update jackson: serialization: indent_output: true

测试类

相关代码如下:

package com.alipay; import javax.persistence.*; import java.io.Serializable; import java.sql.Date; /* * CREATE TABLE A(id integer, flightNo varchar2(50)) * */ @Entity @Table( name = "A" ) public class A implements Serializable { public Integer getFlightId() { return flightId; } public void setFlightId(Integer flightId) { this.flightId = flightId; } public String getFlightNo() { return flightNo; } public void setFlightNo(String flightNo) { this.flightNo = flightNo; } @Id // @GeneratedValue // oracle 没有自增策略,添加该注解可以自动生成一个序列,提供自增主键,若数据库已有相关序列,可以忽 //略该注解。 @Column(name = "id") private Integer flightId; @Column( name = "flightNo" ) private String flightNo; } package com.alipay; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface AMapper extends JpaRepository<A, Integer> { } package com.alipay; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Optional; @RestController @RequestMapping("/") public class Test { @Autowired private AMapper a; @GetMapping("/{id}") public String getOne(@PathVariable int id) { Optional<A> obj = a.findById(id); String result = "A.id is:" + obj.get().getFlightId() + ", no is :" + obj.get().getFlightNo(); System.out.println(result); return result; } } package com.alipay; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main( String[] args ) { SpringApplication.run(App.class, args); } }

运行上面的代码,返回如下日志则表示启动成功。

SpringBoot 连接示例

然后通过 http://localhost:8081/xxxxx 就可以访问数据库, xxxxx 就是对应的数据库 id 字段,如果数据库存在就可以查询到结果。

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论