7.24Java之配置JDBC配置文件
思路
创建File目录,存放数据库的一些信息
创建MySQL目录,存放三个连接配置类
MySQL配置类:存放从File目录下获取到的数据库的配置信息--->是数据库类和配置文件交互的中间类
MySQL有用的类(util):存放文件连接到具体的数据库的方法,返回Properties内容对象
MySQL连接类:具体的连接到数据库的方法--->反射连接
后期预计做一个SQL类,存放写的sql语句
File目录
DRIVER=
URL=
USERNAME=
PASSWORD=
MySQLConfig
package MySQLConnection;
/**
* 一个数据库连接工具类,负责连接数据库。
* 提供连接MySQL数据库需要的属性信息
* @since JDK 1.8
* @date 2021/07/24
* @author Lucifer
*/
public class MySQLConfig {
/*设置配置文件的四个属性*/
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
public static void setDriver(String driver) {
MySQLConfig.driver = driver;
}
public static void setUrl(String url) {
MySQLConfig.url = url;
}
public static void setUsername(String username) {
MySQLConfig.username = username;
}
public static void setPassword(String password) {
MySQLConfig.password = password;
}
public static String getDriver() {
return driver;
}
public static String getUrl() {
return url;
}
public static String getUsername() {
return username;
}
public static String getPassword() {
return password;
}
/*提供一个构造器*/
public MySQLConfig() {
}
@Override
public String toString() {
return "MySQLConfig Information Is:" + "\r\n"
+ "Driver--->" + getDriver() + "\r\n"
+ "Url--->" + getUrl() + "\r\n"
+ "UserName--->" + getUsername() + "\r\n"
+ "PassWord--->" + getPassword();
}
}
MySQLUtil
package MySQLConnection;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Properties;
/**
* 提供File类去读取不同的数据库配置文件--->这是一个方法,形参传入不同的数据库配置文件路径
* 提供静态初始化方法去获取里面的信息
* @since JDK 1.8
* @date 2021/07/24
* @author Lucifer
*/
public class MySQLUtil extends MySQLConfig{
/*定义文件路径--->oms的路径*/
private static String omsFilePath = "D:/workspace/JDBC/src/File/OmsOnlineMySQL.properties";
/*定义文件路径--->erp的路径*/
private static String erpFilePath = "D:/workspace/JDBC/src/File/ErpOnlineMySQL.properties";
/*定义文件路径--->gms的路径*/
private static String gmsFilePath = "D:/workspace/JDBC/src/File/GmsOnlineMySQL.properties";
/*定义文件路径--->rbac的路径*/
private static String rbacFilePath = "D:/workspace/JDBC/src/File/RbacOnlineMySQL.properties";
/*定义文件路径--->listing的路径*/
private static String skuFilePath = "D:/workspace/JDBC/src/File/SkuListingOnlineMySQL.properties";
/*定义文件路径--->stock的路径*/
private static String stockFilePath = "D:/workspace/JDBC/src/File/StockOnlineMySQL.properties";
/*创建内容引用属性*/
private static Properties properties = new Properties();
/*提供一个构造器*/
public MySQLUtil() {
}
/*提供一个获取内容(Properties)的方法返回一个内容对象,形参传入文件路径*/
public static Properties getConfig(String filePath){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(filePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接OMS数据库*/
public static Properties getOmsConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(omsFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接ERP数据库*/
public static Properties getErpConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(erpFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接GMS数据库*/
public static Properties getGmsConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(gmsFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接RBAC数据库*/
public static Properties getRbacConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(rbacFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接listing数据库*/
public static Properties getListingConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(skuFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
/*连接STOCK数据库*/
public static Properties getStockConfig(){
//创建读取内容的引用
Reader in;
try {
in = new FileReader(stockFilePath);
//load方法 从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
properties.load(in);
}catch (IOException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
//获取内容当中的配置信息
setDriver(properties.getProperty("DRIVER"));
setUrl(properties.getProperty("URL"));
setUsername(properties.getProperty("USERNAME"));
setPassword(properties.getProperty("PASSWORD"));
//返回一个内容对象
return properties;
}
}
MySQLConnection
package MySQLConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* 定义具体的数据库连接方法
* @since JDK 1.8
* @date 2021/07/24
* @author Lucifer
*/
public class MySQLConnection extends MySQLConfig{
/*定义链接需要的属性*/
private static final String Driver = getDriver();
private static final String Url = getUrl();
private static final String UserName = getUsername();
private static final String PassWord = getPassword();
/*静态代码块初始化反射*/
static
{
try {
Class.forName(Driver).newInstance();
} catch (InstantiationException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
/**
* 定义具体的连接方法
* 面向接口编程--->使用接口接收对象
*/
public static Connection mysqlConnection(Properties properties){
//创建Connection引用
Connection connection = null;
/*连接数据库*/
try {
/*使用Connection接口接收实现类对象*/
connection = DriverManager.getConnection(Url,UserName,PassWord);
//判断连接是否成功
if (!connection.isClosed()){
System.out.println("数据库连接成功!");
System.out.println(new MySQLConfig().toString());
}
}catch (SQLException e){
/*显示异常状态*/
System.out.println("SQLState:" + e.getSQLState());
System.out.println("VendorError:" + e.getErrorCode());
e.printStackTrace();
}
return connection;
}
}