03014_properties配置文件
2024-10-01 19:31:59
1、使用properties配置文件
(1)开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可;
(2)通常情况下,我们习惯使用properties文件,此文件我们将做如下要求:
①文件位置:任意,建议src下;
②文件名称:任意,扩展名为properties;
③文件内容:一行一组数据,格式是“key=value” ;
④key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver ;
⑤value值不支持中文,如果需要使用非英文字符,将进行unicode转换。
2、创建配置文件
(1)在项目的根目录下,创建文件,输入“db.properties”文件名;
(2)文件中的内容:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybase
user=root
password=root
3、加载配置文件:Properties对象
(1)我们将采用加载properties文件获得流,然后使用Properties对象进行处理;
(2)JDBCUtils.java中编写代码:
import java.io.FileReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties; public class JDBCUtils { private static String driver;
private static String url;
private static String user;
private static String password;
// 静态代码块
static {
try {
// 1 使用Properties处理流
// 使用load()方法加载指定的流
Properties props = new Properties();
Reader is = new FileReader("db.properties");
props.load(is);
// 2 使用getProperty(key),通过key获得需要的值,
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
} catch (Exception e) {
throw new RuntimeException(e);
}
} /**
* 获得连接
*/
public static Connection getConnection() {
try {
// 1 注册驱动
Class.forName(driver);
// 2 获得连接
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
(3)测试类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class Demo { public static void main(String[] args) {
try {
// 1,获取连接对象
Connection conn = JDBCUtils.getConnection();
// 2,指定要执行的SQL语句
String sql = "INSERT INTO sort(sname) VALUES(?)";
// 4,获取SQL语句的执行对象 PreparedStatement
PreparedStatement ppstat = conn.prepareStatement(sql);
// 5,执行SQL语句
ppstat.setString(1, "洗衣机");
int line = ppstat.executeUpdate();
// 6,处理结果集
System.out.println("line=" + line);
// 7,关闭连接
ppstat.close();
conn.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
运行结果:
最新文章
- c# json序列化 意外字符i 意外字符ï 解决方案
- static关键字用法
- echo -n -e参数详解
- kettle报错 ../deploy does not exist, please create it.
- Android源码分析:HeaderViewListAdapter
- struts Value Stack 值栈
- 10个优秀的 HTML5 &;amp; CSS3 下拉菜单制作教程
- canvas图表(4) - 散点图
- java-数组排序--计数排序、桶排序、基数排序
- std::bind 的使用说明
- vim编辑器中没有高亮显示,退格键不能使用的问题
- QEMU KVM libvirt 手册(1): 安装
- 汉语言处理工具pyhanlp的简繁转换
- 【剑指offer】数组中只出现一次的数字
- java生成TXT
- linux删除软连接
- sonar Lint ----code bad smell
- hdoj1074--Doing Homework (DP 状态压缩)
- spring学习笔记 星球日one - xml方式配置bean
- digitalworld.local: MERCY靶机入侵
热门文章
- Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 怎样打开依赖视图
- 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
- BZOJ3261 最大异或和 解题报告(可持久化Trie树)
- WHERE、ORDER BY、GROUP BY、HAVING语句解析(二十八)
- 继承—Car
- WebView的坑[持续更新]
- 位运算与bitset
- Scala和范畴论 -- 对Monad的一点认识
- 洛谷 P2486 [SDOI2011]染色 LCT
- Java导出csv修正时间格式