1. * 使用properties读取本地配置文件为代码传递参数
  2. * url、用户名、密码、驱动地址等配置可以在配置文件中使用
  3.  
  4. main
  1. package zj_1_JDBC.properties;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. /*
  7. * 使用properties读取本地配置文件为代码传递参数
  8. * url、用户名、密码、驱动地址等配置可以在配置文件中使用
  9. *
  10. * 编辑工具类,整合 注册驱动和释放资源 方法。
  11. * */
  12. public class MainTest2 {
  13. public static void main(String[] args) {
  14. Connection conn = null;
  15. Statement st = null;
  16. ResultSet rs = null;
  17.  
  18. //注册驱动
  19. conn = JDBCUtil_properties.getConn();
  20.  
  21. try {
  22. //创建statement , 跟数据库打交道
  23. st = conn.createStatement();
  24.  
  25. //执行查询 , 得到结果集
  26. String sql = "select * from users";
  27. rs = st.executeQuery(sql);
  28.  
  29. //遍历查询每一条记录
  30. while (rs.next()) {
  31. int id = rs.getInt("id");
  32. String name = rs.getString("name");
  33. int age = rs.getInt("age");
  34. }
  35.  
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. }finally {
  39. //释放资源
  40. JDBCUtil_properties.closeRelease(conn,st,rs);
  41. }
  42. }
  43. }
  1. JDBCUtil_properties
  1. package zj_1_JDBC.properties;
  2.  
  3. import java.io.*;
  4. import java.sql.*;
  5. import java.util.Properties;
  6.  
  7. /*
  8. *创建Properties对象,通过读取本地配置文件为代码传递参数。
  9. *
  10. *
  11. * Properties实现了Map接口,可以使用k,v键值对存储数据
  12. *Properties具有一些操作io流的内置方法
  13. *
  14. * Properties和IO流结合的功能:
  15. void load(Reader reader)读字符数据
  16. void list(PrintWriter out)写字符数据
  17. *
  18. * */
  19. public class JDBCUtil_properties {
  20. static String driverClass = null;
  21. static String url = null;
  22. static String username = null;
  23. static String password= null;
  24.  
  25. static{
  26. try {
  27. //创建属性配置对象Properties
  28. Properties properties = new Properties();
  29. InputStream is = new FileInputStream("jdbc.properties");
  30. //使用类加载器,去读取src底下的资源文件。 后面在servlet
  31. //InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
  32.  
  33. //导入输入流
  34. properties.load(is);
  35.  
  36. //读取属性
  37. driverClass = properties.getProperty("driverClass");
  38. url = properties.getProperty("url");
  39. username = properties.getProperty("name");
  40. password = properties.getProperty("password");
  41.  
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45. }
  46.  
  47. //获取连接对象
  48. public static Connection getConn() {
  49. Connection conn = null;
  50. try {
  51. Class.forName(driverClass);
  52. conn = DriverManager.getConnection(url,url,password);
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56.  
  57. return conn;
  58. }
  59.  
  60. //释放资源
  61. public static void closeRelease(Connection conn , Statement st , ResultSet rs) {
  62. closeRs(rs);
  63. closeSt(st);
  64. closeConn(conn);
  65. }
  66.  
  67. private static void closeRs(ResultSet rs) {
  68. try {
  69. if(rs != null) {
  70. rs.close();
  71. }
  72. } catch (SQLException e) {
  73. e.printStackTrace();
  74. }finally {
  75. rs = null;
  76. }
  77. }
  78.  
  79. private static void closeSt(Statement st) {
  80. try {
  81. if(st != null) {
  82. st.close();
  83. }
  84. } catch (SQLException e) {
  85. e.printStackTrace();
  86. }finally {
  87. st = null;
  88. }
  89. }
  90.  
  91. private static void closeConn(Connection conn) {
  92. try {
  93. if(conn != null) {
  94. conn.close();
  95. }
  96. } catch (SQLException e) {
  97. e.printStackTrace();
  98. }finally {
  99. conn = null;
  100. }
  101. }
  102. }
  1. jdbc.properties
  1. driverClass=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://localhost/student
  3. name=root
  4. password=root

输出

中阶d03.2 JDBC联合properties使用,通过读取本地配置文件为代码传递参数的更多相关文章

  1. 中阶d03 JDBC 使用

    1.首先在数据库中创建表 2.安装mysql驱动 java开发环境中导入jdbc连接mysql的jar包 mysql-connector-java-5.1.7-bin.jar 下载地址:https:/ ...

  2. 中阶d03.4 JDBC_DAO

    1.环境准备(单项目下用,在大jdbc项目下只用配置一次) jdbc的驱动(mysqlxxjdbc.jar).util工具(包装释放资源.建立连接.访问properties文件等方法) 2.dao的概 ...

  3. 中阶 d03.5 (正篇)完整的Dao 操作数据库

    1.目录结构: util---JDBCUtil.java(工具包,整合建立链接和释放资源的方法) dao---UserDao.java(接口,定义方法) impl---UserDaoImpl.java ...

  4. 中阶d03.1 JDBCDemo

    1. jdbc使用查看驱动的doc文档<connector-j.html> 2.代码实现:1. 注册驱动---2. 建立连接---3. 创建statement ,跟数据库打交道--- -- ...

  5. 中阶d03.3 JDBC_CURD_Util --- 使用 junit执行单元测试(增删改查)

    1.单元测试环境准备 https://www.cnblogs.com/longesang/p/11399010.html 2.测试 3.结果返回 4.代码 新建一个test目录统一存放测试案例 查: ...

  6. jsp中利用response.senddirect(str)重定向,传递参数新思路

    用Servlet进行请求重定向,参数传递好办,直接用request.setAttribute(str1,str2); 但是如果不用Servlet 而是直接用jsp进行转发呢? 我们首先要知道   请求 ...

  7. jsp中四种传递参数的方法

    jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...

  8. (转)JSP中四种传递参数的方法:

    1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a= ...

  9. BMP是在Bean中完成对数据库JDBC的各种调用

    BMP是在Bean中完成对数据库JDBC的各种调用 CMP是由EJB容器自动完成对数据库的操作 会话Bean主要处理业务逻辑

随机推荐

  1. Jasper报表 自动序列号

    添加表达式:$V{REPORT_COUNT}.toString()

  2. MyBatis框架——多表查询

    MyBatis多表查询, 从表中映射主表,使用 association 标签,通过设置 javaType 属性关联实体类: 主表映射从表,使用 collection 标签,通过 ofType 属性关联 ...

  3. iOS开发:判断iPhone是否是刘海屏iPhoneX、iPhoneXR、iPhoneXs、iPhoneXs Max等

    保证能判断,呕心沥血,不行切JIJI 方法一 Objective-C // iPhoneX.iPhoneXR.iPhoneXs.iPhoneXs Max等 // 判断刘海屏,返回YES表示是刘海屏 - ...

  4. Mol Cell Proteomics. | Proteomics Analysis of Extracellular Matrix Remodeling During Zebrafish Heart Regeneration (解读人:徐宁)

    文献名:Proteomics Analysis of Extracellular Matrix Remodeling During Zebrafish Heart Regeneration(斑马鱼心脏 ...

  5. The instance of entity type 'manager' cannot be tracked because another instance with the same key value for {'id'} is already being tracked. When attaching existing entities, ensure that only one ent

    最近在用ASP.NET CORE时遇到一些问题,现记录下: 出现上述错误,即在更新实体数据时出现的错误 services.AddDbContext<StoreContext>(c => ...

  6. 全国职业技能大赛信息安全管理与评估-第三阶段-弱口令自动爆破+读取Flag脚本

    自动爆破SSH弱口令+读取Flag #coding=utf-8 import paramiko sshc = paramiko.SSHClient() sshc.set_missing_host_ke ...

  7. Java并发编程之支持并发的list集合你知道吗

    Java并发编程之-list集合的并发. 我们都知道Java集合类中的arrayList是线程不安全的.那么怎么证明是线程不安全的呢?怎么解决在并发环境下使用安全的list集合类呢? 本篇是<凯 ...

  8. Django 支付宝付款接口的使用

    我们在开发的过程中经常会碰到调用微信或者支付宝接口进行付款,付款完成之后,如果用户绑定了我的账号,我只要有活动了,就要给这个关注我的用户推动消息,让用户知道,比如说,我们经常会关注一些公众号,然后这些 ...

  9. 理解卷积神经网络中的输入与输出形状(Keras实现)

    即使我们从理论上理解了卷积神经网络,在实际进行将数据拟合到网络时,很多人仍然对其网络的输入和输出形状(shape)感到困惑.本文章将帮助你理解卷积神经网络的输入和输出形状. 让我们看看一个例子.CNN ...

  10. Fiddler抓取数据包分析案例

    案例:利用Fiddler抓取苏宁易购网站数据包分析 抓包软件:Fiddler4 请求名字:www.suning.com 详细内容: 一.了解数据包区域的字段含义 图1数据包区域 #:顺序号,按照抓包的 ...