JDBC连接数据库查询信息的步骤(提取成配置文件方式)
硬编码格式的弊端:数据库发生改变时,要重新修改代码,重新编译和部署
解决方法:将数据库信息写在配置文件当中,让程序通过读取配置文件来获得这些信息
jdbc.driver.class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://127.0.0.1:3306/tree
jdbc.connection.username=root
jdbc.connection.password=123321
编写配置文件database.properties
创建包com.pb.tree.util,编写类ConfigManager 读取属性文件
package cn.tree.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//读取配置文件的工具类-单例模式
public class ConfigManager {
// 读取配置文件properties.load(inputstream)
private static ConfigManager configManager;
private static Properties properties;
private ConfigManager() {
String configFile = "database.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getClassLoader()
.getResourceAsStream(configFile);
try {
properties.load(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static ConfigManager getInstance() {
if (configManager == null) {
configManager = new ConfigManager();
}
return configManager;
}
public String getString(String key) {
return properties.getProperty(key);
}
}
修改MenuDao类的查询信息的方法
package cn.tree.util; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; //读取配置文件的工具类-单例模式
public class ConfigManager {
// 读取配置文件properties.load(inputstream) private static ConfigManager configManager;
private static Properties properties; private ConfigManager() {
String configFile = "database.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getClassLoader()
.getResourceAsStream(configFile); try {
properties.load(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
} public static ConfigManager getInstance() {
if (configManager == null) {
configManager = new ConfigManager();
}
return configManager;
} public String getString(String key) {
return properties.getProperty(key);
} }
package cn.tree.dao; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import cn.tree.util.ConfigManager; public class MenuDao { // 查询主目录
public void getMainList() {
Connection connection = null;
Statement st = null;
ResultSet rs = null;
String driver = ConfigManager.getInstance().getString(
"jdbc.driver.class");
String url = ConfigManager.getInstance().getString(
"jdbc.connection.url");
String username = ConfigManager.getInstance().getString(
"jdbc.connection.username");
String password = ConfigManager.getInstance().getString(
"jdbc.connection.password"); try {
// 1、加载驱动
Class.forName(driver);
// 2、获取数据库连接
connection = DriverManager.getConnection(url, username, password);
// 3、获取Statement对象,执行sql语句
String sql = "select * from main";
st = connection.createStatement();
rs = st.executeQuery(sql);
// 4、处理sql执行结果
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("id: " + id + "\t" + "name: " + name);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
// 5、释放资源
rs.close();
st.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) {
MenuDao menuDao = new MenuDao();
menuDao.getMainList();
}
}
JDBC连接数据库查询信息的步骤(提取成配置文件方式)的更多相关文章
- java中JDBC连接数据库操作的基本步骤
JDBC基本步骤 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lan ...
- JDBC访问数据库查询信息的步骤(硬编码格式)
1 Class.forName()加载驱动 2 DriverManager获取Connect连接 3 创建Statement执行SQL语句 4 返回ResultSet查询结果 5释放资源 packag ...
- java JDBC 连接数据库查询数据与直接使用sql的疑问
JDBC 封装连接是好的前提: SystemAuthorizingRealm c = new SystemAuthorizingRealm(); conn = c.getConnection(); / ...
- JDBC连接数据库的7个步骤
1.JDBC所需的四个参数username.password.url.driverClass 2.加载JDBC驱动程序 3.创建数据库连接connection对象conn 4.创建preparedSt ...
- 【Mybatis源码解析】- JDBC连接数据库的原理和操作
JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...
- JDBC连接数据库步骤及Class.forName()(转)
JDBC连接数据库 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java DataBase Connectivity,java数据库连接)是一种 ...
- JDBC连接数据库方法的封装,以及查询数据方法的封装
(在上一篇文章中,我们详细的介绍了连接数据库的方法,以及eclipse操作数据库信息的相关方法,在这里我们将主要讲封装.) 主要内容: 一般的连接数据库测试 把连接数据库的方法封装成一个类和测试 一个 ...
- 学习笔记-JDBC连接数据库操作的步骤
前言 这里我就以JDBC连接数据库操作查询的步骤作以演示,有不到之处敬请批评指正! 一.jdbc连接简要步骤 1.加载驱动器. 2.创建connection对象. 3.创建Statement对象. 4 ...
- Jdbc连接数据库基本步骤
Jdbc连接数据库的基本步骤: package demo.jdbc; import java.sql.Connection; import java.sql.DriverManager; import ...
随机推荐
- 一个关于vue+mysql+express的全栈项目(三)------ 登录注册功能的实现(已经密码安全的设计)
本系列文章,主要是一个前端的视角来实现一些后端的功能,所以不会讲太多的前端东西,主要是分享做这个项目学到的一些东西,,,,, 好了闲话不多说,我们开始搭建后端服务,这里我们采用node的express ...
- 剑指Offer(书):删除链表的节点
题目:在O(1)的时间内删除列表节点. /** * 步骤: * 1.检查head与removeNode节点是否为空 * 2.检查removeNode的后一个节点是否为空,不为空则使用后一个节点的值覆盖 ...
- NOI模拟赛(3.15) sequence(序列)
Description 小A有N个正整数,紧接着,他打算依次在黑板上写下这N个数.对于每一个数,他可以决定将这个数写在当前数列的最左边或最右边.现在他想知道,他写下的数列的可能的最长严格上升子序列(可 ...
- 详解Python装饰器由浅入深
装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...
- BootStrap学习02栅格系统
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- P2866 糟糕的一天
糟糕的一天 洛谷链接 挺水的一道题,也就是看每个数后面有多少数比它小,最后把总数加起来. 我们可以用单调栈来实现,并用一个数组来保存每个数现在的状态. 代码: #include<cstdio&g ...
- Postman调试依赖登录接口的3种方法
在接口测试种, 我们经常会遇到有些接口登录后才能访问.我们在使用Postman调试这种接口时一般有3种方法: 依次请求 如果有登录接口的文档,或者通过抓包比较容易抓出登录请求的参数和格式,可以先使用P ...
- 潜伏者(codevs 1171)
题目描述 Description [问题描述]R 国和S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则:1. ...
- 【HDOJ6333】Harvest of Apples(莫队)
题意: 给定T组询问,每组有两个数字n和m,求sigma i=0..m c(n,i) 答案对1e9+7取模 T<=1e5 1<=n,m<=1e5 思路: 注意要先变n再变m,否则会因 ...
- 【BZOJ1834】network 网络扩容(最大流,费用流)
题意:给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的最小扩容费用. ...