当前位置: 首页 > 知识库问答 >
问题:

如何在Spring启动中配置 mybatis 数据库连接?

宋瀚海
2023-03-14

我有我的巴蒂斯 xml config SqlMapConfig.xml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE configuration
        PUBLIC '-//mybatis.org//DTD Config 3.0//EN'
        'http://mybatis.org/dtd/mybatis-3-config.dtd'>

<configuration>

    <!--<typeAliases>-->
        <!--<typeAlias alias = "class_alias_Name" type = "absolute_clas_Name"/>-->
    <!--</typeAliases>-->

    <environments default = "development">
        <environment id = "development">
            <transactionManager type = "JDBC"/>

            <dataSource type = "POOLED">
                <property name = "driver" value = "oracle.jdbc.driver.OracleDriver"/>
                <property name = "url" value = "jdbc:oracle:thin:@my_ip:port/dbname"/>
                <property name = "username" value = "username"/>
                <property name = "password" value = "password"/>
            </dataSource>

        </environment>
    </environments>

    <!--<mappers>-->
        <!--<mapper resource = "path of the configuration XML file"/>-->
    <!--</mappers>-->

</configuration>

我有依赖关系

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

我有存储库

@Mapper
public interface ImsiByMsisdnModelRepository {

    final String query = "....";

    @Select(query )
    @Results(value = {
            @Result(property = "msisdn", column = "MSISDN"),
            @Result(property = "terminalid", column = "TERMINALID"),
            @Result(property = "startDate", column = "START_DATE"),
            @Result(property = "endDate", column = "END_DATE"),
    })
    List<ImsiByMsisdnModel> getAll(@Param("msisdn") String msisdn);
}

但是当我尝试构建priject时,我出错了。

描述:

无法确定数据库类型 NONE 的嵌入式数据库驱动程序类

行动:

如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有配置文件处于活动状态)。

我怎么设置SqlMapConfig.xml?

我尝试在应用程序属性行中写入

mybatis.config-location=

但是我不知道写哪个路径。SqlMapConfig.xml放在资源中

共有2个答案

邵毅
2023-03-14

我发现你所要做的就是在应用程序中添加以下内容。属性文件:

spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://host/table_name
spring.datasource.username=user
spring.datasource.password=password
党佐
2023-03-14

当你有依赖关系时

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
</dependency>

Spring boot将自动配置Spring jdbc和mybatisboth.The它在Spring jdbc中使用的唯一配置是spring.datasource.*,你错过了它们,然后你得到的错误(出现此错误是因为自动配置Spring jdbc失败)。

那么你应该怎么做呢?添加< code>spring.datasource.*,这样就可以成功地自动配置spring jdbc。

spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://host/table_name
spring.datasource.username=user
spring.datasource.password=password

那么你的米巴蒂斯将成功自动配置。

 类似资料:
  • 我试图在我的应用程序中配置2个不同的数据源,因为它是必需的。

  • 我正在用spring boot开发一个应用程序。我使用Mysql数据库来实现持久性。我的数据库在远程服务器上。如何为远程数据库连接配置数据源? 请帮助我在属性文件和数据源bean配置中使用我的配置类中的注释来配置它。

  • 我有一个用于使用Oracle DB的mybatis+springs的现有设置。我有一组java映射器接口,一组对应的映射器XML(每个都有对其对应的java映射器的引用)。我也需要设置对MSSQL的支持,但发现很难做到这一点。我在com/mycomp/mob/db/mappers/MSSQL中创建了一组单独的XML(特定于MSSQL的查询)。 下面是我的applicationconext.xml的

  • 我使用Spring初始值设定项创建了一个新的Spring Boot项目。我正在构建一个内部部署后端,所以我试图实现的是,当用户打开jar可执行文件并启动服务器时,他应该能够通过在他的web浏览器中转到localhost:8080/来配置数据库连接。基本上是索引。html将有一个包含IP地址、数据库名称、用户名和密码4个字段的表单。提交表单后,spring将尝试使用提供的信息连接到数据库。 我拥有所

  • 我创建了一个mvc控制器来处理用户的登录请求。 在控制器中,我需要完成一些与数据库相关的任务,每个任务将访问一个由spring自动连线的mybatis映射器的服务对象,这将创建一个mybatis sqlsession并使用它和关闭它。 我的问题是,我们能让所有这些任务共享同一个mybatis sqlsession吗? 那么如何让多个映射器共享一个SqlSessionTemplate呢?

  • 请注意:这个问题不是一个骗局,我甚至引用了下面的另一个类似问题。我断言我的情况与所提到的另一个问题完全不同。 我正在建立一个SpringBootWeb服务,它没有任何数据库、JDBC或RDBMS数据源的支持。 启动时,我得到一个错误: 在这里,我看到一个非常类似的问题,在这里,公认的答案是: "您没有为Spring Boot提供足够的信息来自动配置" ...并继续解释如何在应用配置文件中设置适当的