崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的要求。
官网传送门:【https://www.yashandb.com】
本篇博文简单记录一下使用springBoot+druid集成yashandb的过程
环境准备
1.一台已经装好yanshan数据库的服务器【安装教程此处不在赘述,详细教程请看官方文档,传送门:https://doc.yashandb.com/】
2.创建一张user1表,并插入5条数据
3.下载好崖山数据库的jdbc驱动,我这里使用的版本是 yashandb-jdbc-1.6.9.jar,【下载传送门:https://download.yashandb.com/download】
构建项目
使用IDEA构建demo项目结构
Java环境:Jdk8
Springboot版本:2.1.11.RELEASE
Maven版本:3.8.1
druid版本:1.1.21
将YashanDB驱动上传到本地的Maven私服,然后在Pom文件中引入,添加本地仓库脚本:
mvn install:install-file -Dfile=C:\Users\10641\Downloads\yashandb-jdbc-1.6.9.jar -DgroupId=com.yashandb -DartifactId=yashandb -Dversinotallow=1.6.9 -Dpackaging=jar
Maven的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 https://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>2.1.11.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>springboot-yashan-druid-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-yashan-druid-demo</name>
<description>springboot-yashan-druid-demo</description>
<url/>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- ============= 数据库连接jdbc依赖 start ============= -->
<!--阿里druid数据库链接依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!--添加崖山数据库依赖-->
<dependency>
<groupId>com.yashandb</groupId>
<artifactId>yashandb</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.15</version>
</dependency>
<!-- ============= 数据库连接jdbc依赖 end ============= -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</project>
或者打开IDEA的ProjectStructure,使用Libraries添加YashanDB的连接驱动,对于多模块,只需要添加到对应的模块即可。
application.yml配置信息:
# postgresql 环境配置
server:
port: 8000
max-http-request-header-size: 20480
servlet:
encoding:
charset: UTF-8
force: true
enabled: true
#配置日志
logging:
level:
root: info
# 不同目录下的日志可配置不同级别 info, error
com.euler: debug
org.springfromework.web: info
spring:
application:
name: druid-jdbc-yasdb
mvc.async.request-timeout: 20000
# your_host_id 修改成你的主机所在IP
# your_ip 修改成你的数据库端口
# your_dbname 修改成你的数据库名
# your_username 修改成你的账户名
# your_password 修改成你的账户密码
datasource:
url: jdbc:yasdb://your_host_id:your_ip/your_dbname
username: your_username
password: your_password
driverClassName: com.yashandb.jdbc.Driver
platform: yashan
type: com.alibaba.druid.pool.DruidDataSource
#type: org.apache.commons.dbcp2.BasicDataSource
# initialization-mode: always
# ============================== druid ============================== #
druid:
#最大活跃数
max-active: 20
#初始化数量
initial-size: 1
#最大连接等待超时时间
max-wait: 60000
min-idle: 1
#通过connectionProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#useGlobalDataSourceStat: true
# JDBC 配置(驱动类自动从url的mysql识别,数据源类型自动识别)
# spring.datasource.url: 或者:
# spring.datasource.druid.url: jdbc:mysql://192.168.1.1:3306/test?useUnicode=true&characterEncoding=UTF8
# spring.datasource.username: 或者
# spring.datasource.druid.username: root
# spring.datasource.password: 或者:
# spring.datasource.druid.password: root
# spring.datasource.driver-class-name: 或者:
# spring.datasource.druid.driver-class-name: com.mysql.jdbc.Driver
# 连接池配置(通常来说,只需要修改initialSize、minIdle、maxActive
# 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。
# 分库分表较多的数据库,建议配置为false。removeabandoned不建议在生产环境中打开如果用SQL Server,建议追加配置)
#打开PSCache,并且指定每个连接PSCache的大小
poolPreparedStatements: true
max-pool-prepared-statement-per-connection-size: 20
# max-open-prepared-statements: 和上面的等价
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
# max-evictable-idle-time-millis
# SELECT 'x'
validation-query: select 1 from dual
# validation-query-timeout:
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
# filters: stat, wall, log4j
# Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置
# aop-patterns: # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
代码集成
编写YasDbDataSourceConfig代码:
@Configuration
public class YasDbDataSourceConfig {
@Bean(name = "jdbcTemplate")
@Qualifier("jdbcTemplate")
public JdbcTemplate jdbcTemplate(@Qualifier("dataSource") DruidDataSource dds) {
return new JdbcTemplate(dds);
}
@Bean(name = "dataSource")
@Qualifier("dataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DruidDataSource DataSource() {
return DruidDataSourceBuilder.create().build();
}
}
编写查询语句:
@Controller
@RequestMapping("/user")
public class queryList {
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping("/queryUserInfo")
@ResponseBody
public Object queryUserInfo(){
String sql = "select * from USER1";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
System.out.println("执行sql:"+sql);
System.out.println("查询成功");
System.out.println(list.toString());
return list;
}
}
项目验证
启动项目测试验证,浏览器访问 http://localhost:8000/user/queryUserInfo
到此集成结束,更多相关内容即可自己探索了。
项目git地址:https://gitee.com/junluoyu/muyu 未指定任何开源许可证,可自行创建
感谢支持!