【Spring】连接数据库的username是当前系统用户名

问题描述

基于 XML 方式编写 Spring 代码时,引入的 jdbc.properties 属性配置文件的 username 被神奇的替换为当前系统的用户名,例如属性配置文件里的 username 明明写的是 root,但代码运行显示 username  却是 Administrator,非常的诡异。

Spring 主配置文件中问题相关代码如下:

<context:property-placeholder location="jdbc.properties"/>
<bean id="dataSource" class="com.ltb.MyDataSource">
    <property name="properties">
        <props>
            <prop key="driver">${driver}</prop>
            <prop key="url">${url}</prop>
            <prop key="username">${username}</prop>
            <prop key="password">${password}</prop>
        </props>
    </property>
</bean>

jdbc.properties 属性配置文件代码如下:

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123

原因分析

开启 Spring 启动的日志信息,发现日志中有这么一条信息:

2023-08-09 01:16:34 401 [main] DEBUG org.springframework.core.env.SystemEnvironmentPropertySource - PropertySource 'systemEnvironment' does not contain property 'username', but found equivalent 'USERNAME'

发现关键点,原来是 Spring 将系统环境变量中的 USERNAME 拿来用了,并没有用到我们属性配置文件里的配置。

解决方案

属性配置文件中的 key 尽量不要和系统环境变量重名,添加一些必要的前缀用来区分。修改上述 jdbc.properties 内容如下:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在Spring框架中连接Doris数据库,你可以按照以下步骤进行操作: 1. 首先,在你的项目中添加Doris JDBC驱动的依赖。你可以在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.apache.doris</groupId> <artifactId>doris-jdbc</artifactId> <version>0.14.0</version> <!-- 根据你使用的Doris版本进行调整 --> </dependency> ``` 2. 在Spring的配置文件中配置数据源。你可以使用`org.apache.doris.jdbc.Driver`作为驱动类,以及Doris数据库的连接URL、用户名和密码等信息。例如: ```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.apache.doris.jdbc.Driver" /> <property name="url" value="jdbc:doris://localhost:9030/database_name" /> <property name="username" value="your_username" /> <property name="password" value="your_password" /> </bean> ``` 请注意,将`localhost:9030`替换为你的Doris数据库实例的主机名和端口号,`database_name`替换为你要连接的数据库名称。 3. 配置一个JdbcTemplate bean以便于执行SQL语句。例如: ```xml <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> ``` 4. 现在,你可以在Spring应用程序的代码中使用注入的JdbcTemplate对象来执行Doris数据库的操作。例如: ```java @Autowired private JdbcTemplate jdbcTemplate; public void queryData() { String sql = "SELECT * FROM your_table"; List<Map<String, Object>> results = jdbcTemplate.queryForList(sql); // 处理查询结果 // ... } ``` 这样,你就可以使用Spring来连接和操作Doris数据库了。请确保你已经正确配置了Doris数据库的连接信息,包括主机名、端口号、数据库名称、用户名和密码等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李哞哞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值