MSP97126 2023-05-04 15:04 采纳率: 0%
浏览 6

shardingJDBC水平分库分表报错!

shardingJDBC报错,水平分库分表跟着尚硅谷的课程写的,运行各种报错。要不就是报错找不到bean name = dataSourse要不就是找不到mapper。求解
application.properties

# 环境设置
spring.profiles.active=dev
# 配置真实数据源
spring.shardingsphere.datasource.names=m1,m2
# 配置第 1 个数据源
spring.shardingsphere.datasource.m1.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m1.driver-class-name=org.postgresql.Driver
spring.shardingsphere.datasource.m1.jdbc-url=jdbc:postgresql://127.0.0.1:5432/db01
spring.shardingsphere.datasource.m1.username=postgres
spring.shardingsphere.datasource.m1.password=root
# 配置第 2 个数据源
spring.shardingsphere.datasource.m2.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.m2.driver-class-name=org.postgresql.Driver
spring.shardingsphere.datasource.m2.jdbc-url=jdbc:postgresql://127.0.0.1:5432/db02
spring.shardingsphere.datasource.m2.username=postgres
spring.shardingsphere.datasource.m2.password=root

#指定数据库分布情况,数据库里面表分布情况
# m1 m2 course_1 course_2
spring.shardingsphere.sharding.tables.course.actual-data-nodes=m$->{1..2}.course_$->{1..2}

# 一个实体类对应两张表,覆盖
spring.main.allow-bean-definition-overriding=true

# 指定 course 表里面主键 cid 生成策略 SNOWFLAKE
spring.shardingsphere.sharding.tables.course.key-generator.column=cid
spring.shardingsphere.sharding.tables.course.key-generator.type=SNOWFLAKE

# 指定数据库分片策略 约定 user_id 是偶数添加 m1,是奇数添加 m2
spring.shardingsphere.sharding.tables.course.database-strategy.inline..sharding-column=user_id
spring.shardingsphere.sharding.tables.course.database-strategy.inline.algorithm-expression=m$->{user_id % 2 + 1}

# 指定表分片策略 约定 cid 值偶数添加到 course_1 表,如果 cid 是奇数添加到course_2 表
spring.shardingsphere.sharding.tables.course.table-strategy.inline.sharding-column=cid
spring.shardingsphere.sharding.tables.course.table-strategy.inline.algorithm-expression=course_$->{cid % 2 + 1}



# 打开 sql 输出日志
spring.shardingsphere.props.sql.show=true


pom文件

<?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.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>chuizhi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>chuizhi</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.23</version>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </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>
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>
    </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>

</project>
@SpringBootTest
class ChuizhiApplicationTests {

    @Autowired
    CourseMapper courseMapper;

    @Test
    void contextLoads() {
        Course course = new Course();
        course.setCname("java");
        course.setUserid(1);
        course.setCstatus("1");
        System.out.println(courseMapper.insert(course));
    }

}
2023-05-04 14:57:41.911 ERROR 25104 --- [-Create-7519287] com.alibaba.druid.pool.DruidDataSource   : create connection SQLException, url: null, errorCode 0, state null

java.sql.SQLException: url is null
    at org.postgresql.Driver.connect(Driver.java:211) ~[postgresql-42.3.8.jar:42.3.8]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644) ~[druid-1.1.23.jar:1.1.23]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710) ~[druid-1.1.23.jar:1.1.23]
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2774) ~[druid-1.1.23.jar:1.1.23]


  • 写回答

1条回答 默认 最新

  • 肥橙且内敛 2023-05-04 15:13
    关注

    如果您在使用 ShardingJDBC 时出现了 "找不到bean name = dataSource" 或 "找不到Mapper" 的错误,可能是您的配置有误或者代码存在问题。
    找不到bean name = dataSource:这个错误通常是因为您的数据源配置有误或者 Spring 容器没有正确加载数据源。请检查您的数据源配置是否正确,并且确保在 Spring 配置文件中正确定义了数据源的 bean。找不到Mapper:这个错误通常是因为您的 Mapper 配置有误或者 Mybatis 无法正确加载 Mapper 文件。请检查您的 Mapper 配置是否正确,并且确保在 Spring 配置文件中正确定义了 Mapper 的 bean。同时,您也需要确保 Mapper 文件的命名空间、SQL 语句的 ID 等信息正确无误。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月4日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算