使用properties配置jdbc信息报错问题
Posted mengqianforliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用properties配置jdbc信息报错问题相关的知识,希望对你有一定的参考价值。
今天使用properties文件来配置mysql驱动,url,user,password,然后配置到spring-dao.xml(spring和mybatis整合文件)中运行后报错
java.sql.SQLException: Access denied for user \'ASUS\'@\'localhost\' (using password: YES) 用户ASUS访问被拒绝,在properties中user配置的是root。
解决方法:在properties配置中key的名字要加jdbc的前缀
读取properties配置文件的信息
1. 读取Properties配置文件的信息
Java程序员经常使用properties文件来存储配置信息,下面我就来简单的说一下怎么用Java程序来读取properties文件吧
1.1 新建测试用例
db.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
jdbc.username=root
jdbc.password=317525
1.2 开始测试
Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件.
1.2.1 方法一:getProperty()方法读取属性(重点掌握)
getProperty ( String key),用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。
TestProperties.java
package com.tian;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* ClassName: TestProperties
* Description: Java程序读取 db.properties 配置信息
*
* @author Administrator
* @date 2021/6/5 13:55
*/
public class TestProperties {
public static void main(String[] args) {
// 新建一个配置类的实例对象
Properties params = new Properties();
/*
* TestProperties.class 获取当前类的class对象
* TestProperties.class.getClassLoader() 把TestProperties类加载到内存中
* TestProperties.class.getClassLoader().getResourceAsStream("db.properties") 把db.properties以流(二进制)的形式读取出来
*/
InputStream is = TestProperties.class.getClassLoader().getResourceAsStream("db.properties");
try {
/*
* 从输入流中读取属性列表(键和元素对)。
* 通过对指定的文件(比如说上面的 db.properties 文件)
* 进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索。
* */
params.load(is);
} catch (IOException e) {
e.printStackTrace();
}
/*
* 开始一一读取属性
* */
System.out.println("driver: " + params.getProperty("jdbc.driver"));
System.out.println("url: " + params.getProperty("jdbc.url"));
System.out.println("username: " + params.getProperty("jdbc.username"));
System.out.println("password: " + params.getProperty("jdbc.password"));
}
}
运行结果:
1.2.2 get()方法读取
package com.tian;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* ClassName: TestProperties
* Description: Java程序读取 db.properties 配置信息
*
* @author Administrator
* @date 2021/6/5 13:55
*/
public class TestProperties {
public static void main(String[] args) {
// 新建一个配置类的实例对象
Properties params = new Properties();
/*
* TestProperties.class 获取当前类的class对象
* TestProperties.class.getClassLoader() 把TestProperties类加载到内存中
* TestProperties.class.getClassLoader().getResourceAsStream("db.properties") 把db.properties以流(二进制)的形式读取出来
*/
InputStream is = TestProperties.class.getClassLoader().getResourceAsStream("db.properties");
try {
/*
* 从输入流中读取属性列表(键和元素对)。
* 通过对指定的文件(比如说上面的 db.properties 文件)
* 进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索。
* */
params.load(is);
} catch (IOException e) {
e.printStackTrace();
}
/*
* 开始一一读取属性
* */
System.out.println("driver: " + params.get("jdbc.driver").toString());
System.out.println("url: " + params.get("jdbc.url").toString());
System.out.println("username: " + params.get("jdbc.username").toString());
System.out.println("password: " + params.get("jdbc.password").toString());
}
}
运行结果:
以上是关于使用properties配置jdbc信息报错问题的主要内容,如果未能解决你的问题,请参考以下文章
MySQL Connector/J 6.x jdbc.properties 配置, mysql-connector-java-6.0.4.jar 异常
jdbc的数据库连接信息在属性文件中的配置(db.properties)