中阶d03.2 JDBC联合properties使用,通过读取本地配置文件为代码传递参数
* 使用properties读取本地配置文件为代码传递参数
* url、用户名、密码、驱动地址等配置可以在配置文件中使用 main
package zj_1_JDBC.properties; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
/*
* 使用properties读取本地配置文件为代码传递参数
* url、用户名、密码、驱动地址等配置可以在配置文件中使用
*
* 编辑工具类,整合 注册驱动和释放资源 方法。
* */
public class MainTest2 {
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null; //注册驱动
conn = JDBCUtil_properties.getConn(); try {
//创建statement , 跟数据库打交道
st = conn.createStatement(); //执行查询 , 得到结果集
String sql = "select * from users";
rs = st.executeQuery(sql); //遍历查询每一条记录
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
} } catch (Exception e) {
e.printStackTrace();
}finally {
//释放资源
JDBCUtil_properties.closeRelease(conn,st,rs);
}
}
}
JDBCUtil_properties
package zj_1_JDBC.properties; import java.io.*;
import java.sql.*;
import java.util.Properties; /*
*创建Properties对象,通过读取本地配置文件为代码传递参数。
*
*
* Properties实现了Map接口,可以使用k,v键值对存储数据
*Properties具有一些操作io流的内置方法
*
* Properties和IO流结合的功能:
void load(Reader reader)读字符数据
void list(PrintWriter out)写字符数据
*
* */
public class JDBCUtil_properties {
static String driverClass = null;
static String url = null;
static String username = null;
static String password= null; static{
try {
//创建属性配置对象Properties
Properties properties = new Properties();
InputStream is = new FileInputStream("jdbc.properties");
//使用类加载器,去读取src底下的资源文件。 后面在servlet
//InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"); //导入输入流
properties.load(is); //读取属性
driverClass = properties.getProperty("driverClass");
url = properties.getProperty("url");
username = properties.getProperty("name");
password = properties.getProperty("password"); } catch (Exception e) {
e.printStackTrace();
}
} //获取连接对象
public static Connection getConn() {
Connection conn = null;
try {
Class.forName(driverClass);
conn = DriverManager.getConnection(url,url,password);
} catch (Exception e) {
e.printStackTrace();
} return conn;
} //释放资源
public static void closeRelease(Connection conn , Statement st , ResultSet rs) {
closeRs(rs);
closeSt(st);
closeConn(conn);
} private static void closeRs(ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
rs = null;
}
} private static void closeSt(Statement st) {
try {
if(st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
st = null;
}
} private static void closeConn(Connection conn) {
try {
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
conn = null;
}
}
}
jdbc.properties
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/student
name=root
password=root
输出

中阶d03.2 JDBC联合properties使用,通过读取本地配置文件为代码传递参数的更多相关文章
- 中阶d03 JDBC 使用
1.首先在数据库中创建表 2.安装mysql驱动 java开发环境中导入jdbc连接mysql的jar包 mysql-connector-java-5.1.7-bin.jar 下载地址:https:/ ...
- 中阶d03.4 JDBC_DAO
1.环境准备(单项目下用,在大jdbc项目下只用配置一次) jdbc的驱动(mysqlxxjdbc.jar).util工具(包装释放资源.建立连接.访问properties文件等方法) 2.dao的概 ...
- 中阶 d03.5 (正篇)完整的Dao 操作数据库
1.目录结构: util---JDBCUtil.java(工具包,整合建立链接和释放资源的方法) dao---UserDao.java(接口,定义方法) impl---UserDaoImpl.java ...
- 中阶d03.1 JDBCDemo
1. jdbc使用查看驱动的doc文档<connector-j.html> 2.代码实现:1. 注册驱动---2. 建立连接---3. 创建statement ,跟数据库打交道--- -- ...
- 中阶d03.3 JDBC_CURD_Util --- 使用 junit执行单元测试(增删改查)
1.单元测试环境准备 https://www.cnblogs.com/longesang/p/11399010.html 2.测试 3.结果返回 4.代码 新建一个test目录统一存放测试案例 查: ...
- jsp中利用response.senddirect(str)重定向,传递参数新思路
用Servlet进行请求重定向,参数传递好办,直接用request.setAttribute(str1,str2); 但是如果不用Servlet 而是直接用jsp进行转发呢? 我们首先要知道 请求 ...
- jsp中四种传递参数的方法
jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...
- (转)JSP中四种传递参数的方法:
1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a= ...
- BMP是在Bean中完成对数据库JDBC的各种调用
BMP是在Bean中完成对数据库JDBC的各种调用 CMP是由EJB容器自动完成对数据库的操作 会话Bean主要处理业务逻辑
随机推荐
- go例子(二) 使用go语言实现数独游戏
例子托管于github example.go package main import ( "./sudoku" ) func main() { //var smap ...
- [Alg] 文本匹配-多模匹配-AC自动机
1. 简介 AC自动机是一种多模匹配的文本匹配算法. 如果采用naive的方法,即依次比较文本串s中是否包含模式串p1, p2,...非常耗时.考虑到这些模式串中可能具有相同子串,可以利用已经比较过的 ...
- POJ1270 toposort+DFS+回溯
题目链接:http://poj.org/problem?id=1270 这道题其实就是求所有满足条件的topo序,我们考虑到给定的字符是确定的,也就是他们的长度都是一样的,所以为了得到所有的情况,我们 ...
- Netty中ChannelHandler的生命周期
在使用Netty进行网络编程的时候,通常需要在网络连接的不同阶段进行相应的操作,比如在连接建立时,客户端向服务端发起认证,在接收到数据时对数据内容进行解析等等.那么,连接的不同阶段在netty中如何表 ...
- 动态规划-区间dp-Palindrome Removal
2019-11-09 10:31:09 问题描述: 问题求解: n = 100,典型的O(n ^ 3)的动规问题.一般来说这种O(n ^ 3)的问题可以考虑使用区间dp来解决. 区间dp是典型的三层结 ...
- Spring----注释----开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
来源:http://www.cnblogs.com/leiOOlei/p/3713989.html <context:annotation-config> 和 <context:co ...
- 巴什博弈 HDU-1846
描述:一堆石子有 n 个 ,两个人开始轮流取,每人最多取m个,最少取1个,最后一个将石子取完的是赢家. 思路:对于先手来说,如果有(m+1)个石子,先手取 k 个,后手就可以取 m+1-k 个,所以有 ...
- Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 基础篇
本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要争对C#初学者,巩固C#常用知识点: 中级篇主要争对WPF布局与美化, ...
- ||,&&短路规则测试
短路规则:a||b中若a为真,则直接判断整个表达式为真,不再判断b是真或假, a&&b中若a为假,则直接判断整个表达式为假,不再单独判断b是真或假. 想要测试这个规则的话,可以将 ...
- 使用SpringCloud将单体迁移至微服务
使用SpringBoot构建单体项目有一段时间了,准备对一个老项目重构时引入SpringCloud微服务,以此奠定后台服务能够应对未知的业务需求. 现在SOA架构下的服务管理面临很多挑战,比如面临一个 ...