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);
}
}
}

  运行结果:

  

最新文章

  1. c# json序列化 意外字符i 意外字符ï 解决方案
  2. static关键字用法
  3. echo -n -e参数详解
  4. kettle报错 ../deploy does not exist, please create it.
  5. Android源码分析:HeaderViewListAdapter
  6. struts Value Stack 值栈
  7. 10个优秀的 HTML5 & CSS3 下拉菜单制作教程
  8. canvas图表(4) - 散点图
  9. java-数组排序--计数排序、桶排序、基数排序
  10. std::bind 的使用说明
  11. vim编辑器中没有高亮显示,退格键不能使用的问题
  12. QEMU KVM libvirt 手册(1): 安装
  13. 汉语言处理工具pyhanlp的简繁转换
  14. 【剑指offer】数组中只出现一次的数字
  15. java生成TXT
  16. linux删除软连接
  17. sonar Lint ----code bad smell
  18. hdoj1074--Doing Homework (DP 状态压缩)
  19. spring学习笔记 星球日one - xml方式配置bean
  20. digitalworld.local: MERCY靶机入侵

热门文章

  1. Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom 以及 IntelliJ IDEA 怎样打开依赖视图
  2. 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)
  3. BZOJ3261 最大异或和 解题报告(可持久化Trie树)
  4. WHERE、ORDER BY、GROUP BY、HAVING语句解析(二十八)
  5. 继承—Car
  6. WebView的坑[持续更新]
  7. 位运算与bitset
  8. Scala和范畴论 -- 对Monad的一点认识
  9. 洛谷 P2486 [SDOI2011]染色 LCT
  10. Java导出csv修正时间格式