Sharding-JDBC(版本3.0) 入门demo-2,java+yaml方式

先创建好数据库和表,maven添加依赖,可参考博文
https://blog.csdn.net/qq_41712271/article/details/105708447

1 在main/resources目录下,创建sharding.yaml文件

# 真实数据源配置,这里的ds_0,ds_1会在下面的配置中引用
dataSources:
  #可配置多个: !!数据库连接池实现类
  ds_0: !!com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ds_0?useSSL=false
    username: root
    password: 123456
  ds_1: !!com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ds_1?useSSL=false
    username: root
    password: 123456

    
 #分库分表配置,可配置多个逻辑表
shardingRule:
  tables:
  #指定逻辑表
    t_order:
    #指定主键字段
      keyGeneratorColumnName: order_id
      #配置实际节点,这里的ds就是引用上面定义的名称
      actualDataNodes: ds_${0..1}.t_order_${0..1}
      #数据库的分片策略 根据user_id,分成ds_0,ds_1两个数据库
      databaseStrategy: 
        inline:
          shardingColumn: user_id
          algorithmExpression: ds_${user_id % 2}
      #表的分片策略根据 order_id,分成t_order_0,t_order_1两个表
      tableStrategy: 
        inline:
          shardingColumn: order_id
          algorithmExpression: t_order_${order_id % 2}
          
  #属性配置(可选)
  props:
    #是否开启SQL显示,默认值: false
    sql.show: true
    #executor.size: 工作线程数量,默认值: CPU核数   

2 编写测试类进行测试

package net.huawei.shardingjdbc_study_1;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;
import io.shardingsphere.shardingjdbc.api.yaml.YamlShardingDataSourceFactory;

/**
 * 1. 通过Druid构建数据源. 
 * 2. 通过ShardingDataSourceFactory 构建分片数据源. 
 * 3. 编写测试例子:
 * 通过DataSource获取到Connection.
 */
public class App2 {

	/**
	 * 3. 编写测试例子: 通过DataSource获取到Connection.
	 * 
	 * @param args
	 * @throws SQLException
	 * @throws IOException
	 */
	public static void main(String[] args) throws SQLException, IOException {

		/*
		 * 1. 需要到DataSource 
		 * 2. 通过DataSource获取Connection 
		 * 3. 定义一条SQL语句. 
		 * 4. 通过Connection获取到PreparedStament. 
		 * 5. 执行SQL语句. 
		 * 6. 关闭连接.
		 */

		// * 1. 需要到DataSource
		String filePath = App2.class.getResource("/sharding.yaml").getFile();
		DataSource dataSource = YamlShardingDataSourceFactory.createDataSource(new File(filePath));

		// * 2. 通过DataSource获取Connection
		Connection connection = dataSource.getConnection();
		
		// * 3. 定义一条SQL语句.
        // ######sql语句中使用的表名,是定义的逻辑表######
		String sql = "insert into t_order(order_id,user_id,status) values(99,11,'insert')";

		// * 4. 通过Connection获取到PreparedStament.
		PreparedStatement preparedStatement = connection.prepareStatement(sql);

		// * 5. 执行SQL语句.
		preparedStatement.execute();

		connection = dataSource.getConnection();

		sql = "insert into t_order(order_id,user_id,status) values(100,12,'insert')";
		preparedStatement = connection.prepareStatement(sql);
		preparedStatement.execute();

		// * 6. 关闭连接.
		preparedStatement.close();
		connection.close();

		System.out.println("结束");
	}
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
mycat和sharding-jdbc项目demo.zip是两个与数据库分片和分库相关的开源项目的演示文件。 Mycat是一个基于MySQL协议的分布式数据库管理工具,它可以将一个逻辑数据库按照表和行的方式分片存储在多个物理数据库中,提供高可用性和扩展性。Mycat的demo.zip文件包含了一个演示项目,用于展示Mycat在实际应用中的使用场景和功能。通过演示项目,我们可以学习和了解如何配置和使用Mycat来管理和操作分片数据库。 Sharding-JDBC是一个基于JDBC的中间件,它基于分库分表原理,将多个数据库视为一个逻辑数据库,通过透明化的方式将数据分散存储在多个物理数据库中。Sharding-JDBCdemo.zip文件包含了一个演示项目,用于展示Sharding-JDBC在实际应用中的使用方式和功能。通过演示项目,我们可以学习和了解如何配置和使用Sharding-JDBC来实现数据库的分库分表操作。 这两个项目都是为了解决大规模应用系统中数据库性能瓶颈和扩展性问题而开发的。它们通过将数据分散存储在多个物理数据库中,实现了数据的横向扩展和负载均衡。同时,它们提供了简化配置和操作的接口,使得开发人员可以更加方便地使用和管理分片数据库。 通过使用这些演示项目,我们可以学习和理解如何配置和使用Mycat和Sharding-JDBC来实现分片数据库,并在实际应用中提高数据库的性能和可扩展性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值