目 录CONTENT

文章目录

SpringBoot+druid集成YashanDB教程

暮渔木鱼
2025-01-16 / 0 评论 / 0 点赞 / 2 阅读 / 0 字 / 正在检测是否收录...

崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的要求。

戳官网了解

本篇博文简单记录一下使用springBoot+druid集成yashandb的过程

环境准备

1.一台已经装好yanshan数据库的服务器【安装教程此处不在赘述,详细教程请看官方文档,传送门: [安装文档](https://doc.yashandb.com/)】或者参考我另一篇文章【[YashanDB一键安装脚本分享](https://blog.csdn.net/m0_37873601/article/details/143480924)】按照教程一键安装

2.创建一张user1表,并插入5条数据

3.下载好崖山数据库的jdbc驱动,我这里使用的版本是 yashandb-jdbc-1.6.9.jar,根据使用时官方放出的可下载版本而定。 点击下载

构建项目

使用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

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

到此集成结束,更多相关内容即可自己探索了。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区