博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java_JDBC连接数据库_使用读取配置文件的方式
阅读量:4464 次
发布时间:2019-06-08

本文共 3617 字,大约阅读时间需要 12 分钟。

1 package com.homewoek3_4.dao;  2   3 import java.io.IOException;  4 import java.io.InputStream;  5 import java.sql.Connection;  6 import java.sql.DriverManager;  7 import java.sql.PreparedStatement;  8 import java.sql.ResultSet;  9 import java.sql.SQLException; 10 import java.util.Properties; 11  12 /** 13  * 数据库连接通用类 14  * @author Administrator 15  */ 16 public abstract class BaseDao { 17     private static final String path = "database.properties"; 18     private static String DB_DRIVER; 19     private static String DB_URL; 20     private static String DB_USER; 21     private static String DB_PWD; 22      23     protected Connection conn = null; 24     protected PreparedStatement ps = null; 25     protected ResultSet rs = null; 26      27     static { 28         Properties pro = new Properties(); 29         InputStream io = BaseDao.class.getClassLoader().getResourceAsStream(path); 30         try { 31             //读取配置文件 32             pro.load(io); 33         } catch (IOException e) { 34             e.printStackTrace(); 35         } 36         DB_DRIVER = pro.getProperty("DB_DRIVER"); 37         DB_URL = pro.getProperty("DB_URL"); 38         DB_USER = pro.getProperty("DB_USER"); 39         DB_PWD = pro.getProperty("DB_PWD"); 40         try { 41             //加载驱动类 42             Class.forName(DB_DRIVER); 43         } catch (ClassNotFoundException e) { 44             e.printStackTrace(); 45         } 46     } 47     /** 48      * 打开数据库连接 49      */ 50     protected void openConn() { 51         try { 52             conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PWD); 53         } catch (SQLException e) { 54             e.printStackTrace(); 55         } 56     } 57     /** 58      * 关闭数据库连接 59      */ 60     protected void closeConn() { 61         try { 62             if (rs != null) { 63                 rs.close(); 64             } 65             if (ps != null) { 66                 ps.close(); 67             } 68             if (conn != null) { 69                 conn.close(); 70             } 71         } catch (SQLException e) { 72             e.printStackTrace(); 73         } 74     } 75     /** 76      * 增删改 77      * @param sql 78      * @param obj 79      * @return 80      */ 81     protected int executeUpdate(String sql, Object...obj) { 82         int result = -1; 83         this.openConn(); 84         try { 85             ps = conn.prepareStatement(sql); 86             if (obj != null) { 87                 for (int i = 0; i < obj.length; i++) { 88                     ps.setObject(i+1, obj[i]); 89                 } 90             } 91             result = ps.executeUpdate(); 92         } catch (SQLException e) { 93             e.printStackTrace(); 94         } 95         return result; 96     } 97     /** 98      * 查询 99      * @param sql100      * @param obj101      * @return102      */103     protected void executeQuery(String sql, Object...obj) {104         this.openConn();105         try {106             ps = conn.prepareStatement(sql);107             if (obj != null) {108                 for (int i = 0; i < obj.length; i++) {109                     ps.setObject(i+1, obj[i]);110                 }111             }112             rs = ps.executeQuery();113         } catch (SQLException e) {114             e.printStackTrace();115         }116     }117 }

创建database.properties文件,注意:后缀名一定是properties。此格式的文件在MyEclipse中图标会变,这点很容易写错,要注意。

1 DB_DRIVER=com.mysql.jdbc.Driver2 DB_URL=jdbc:mysql://localhost:3306/Pet?useUnicode=true&characterEncoding=utf8&useSSL=true3 DB_USER=root4 DB_PWD=111111

 

转载于:https://www.cnblogs.com/gaofei-1/p/7345174.html

你可能感兴趣的文章
怎样让心情保持平静?
查看>>
error LNK1281: 无法生成 SAFESEH 映像 LNK2026 模块对于 SAFESEH 映像是不安全的 VS2015 /win10...
查看>>
字符类型转换
查看>>
C# 多线程
查看>>
最大子数组求解两个
查看>>
Python-列表、元组、字典
查看>>
Select 使用不当引发的core,你应该知道的
查看>>
冷知识 —— 计算机科学及编程
查看>>
新技能 get —— 使用 python 生成词云
查看>>
西雅图之行
查看>>
ASP.NET MVC异步上传文件
查看>>
c# 关于Threading.ApartmentState
查看>>
java annotation
查看>>
小程序获取当前页面路径
查看>>
ecos中断机制分析(1)
查看>>
shift:清除前一个参数
查看>>
学点编码知识又不会死:Unicode的流言终结者和编码大揭秘
查看>>
Oracle EBS 根据工作日历取工作日
查看>>
Android中通过typeface设置字体
查看>>
【Android】Android内存机制,了解Android堆和栈
查看>>