JDBC工具类协同配置文件

封装jdbc——工具类JdbcUtils JdbcUtils工具类 1.为什么要对jdbc技术进行封装为工具类JdbcUtils?有什么好处? 在用java操纵数据库时,每次都要写java连接数据库的代码,一条sql语句伴随着大量连接数据库的java代码,这样会使代码冗余度高,代码的可读性和观赏性都变得很差,如果将通用的代码转换为静态方法—>封装成一个工具类JdbcUtils,这样每次需要什么功能只需要调用相应的方法,既提高了代... 阅读详情

JDBC工具类协同配置文件

1.在包的同级创建File,作为配置文件
2.在配置文件中定义driverJar,url,password,user
3.定义工具类,设置静态成员变量driverJar,user,url,password,
	并设置静态代码块,用于加载配置文件,并进行驱动注册,
	使注册驱动行为在使用类方法(getConnection())使仅被加载一次
4.为工具类定义类方法getConnection(),prepareStatement(),close()
5.使用工具类需要自己处理sql语句,并传给prepareStatement()执行和执行结果

1.在包的同级创建File,作为配置文件

Day_9
	JdbcMain.java
jdbc.properities

2.在配置文件中定义driverJar,url,password,user

1.用于Class.forName(xxx)注册驱动的driverJar
2.用于DriverManager.getConnection(xxx)的url user password

driverJar = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/db1?useSSL=false&serverTimezone=UTC
user = root
password = 123456

3.定义工具类,设置静态成员变量driverJar,user,url,password,
并设置静态代码块,用于加载配置文件,并进行驱动注册,
使注册驱动行为在使用类方法(getConnection())使仅被加载一次

在static静态代码块中:
	1.创建Properities对象
	2.使用同级包中任意一个类加载器对配置文件资源加载到程序中并转为流
	3.使用properties对象将该流加载到内存中
	4.使用properities对象通过传入字符串来获取配置文件的所有属性值并复制给
		对应的静态成员变量driverJar,url,password,user
	5.通过获取的driverJar进行注册驱动

//静态代码块中进行驱动注册

static {
	//i.创建Properities对象
	Properties properties = new Properties();
	
	//ii.使用同级包中任意一个类加载器对配置文件资源加载到程序中并转为流
	ClassLoader classLoader = Day_1.Dog.class.getClassLoader();
	InputStream resourceAsStream = classLoader.getResourceAsStream("jdbc.properities");
	
	try {
		//iii.使用properties对象将该流加载到内存中
		properties.load(resourceAsStream);
		
	} catch (IOException e) {
		e.printStackTrace();
	}
	
	//iv.使用properities对象来获取配置文件的属性,参数和返回值都为String
	driverJar = properties.getProperty("driverJar");
	url = properties.getProperty("url");
	user = properties.getProperty("user");
	password = properties.getProperty("password");
	

	// 1. 注册驱动  DriverManager  jar包已导入
	try {
		Class.forName(driverJar);
	} catch (ClassNotFoundException e) {
		System.out.println("驱动注册失败");
		e.printStackTrace();
	}

}

4.为工具类定义类方法getConnection(),prepareStatement(),close()

getConnection():内使用静态代码块获取的url,user,password传入参数
	获取Connection对象

createStatement(Connection xx):传入Connection变量参数
	获取执行sql的Statement对象

close:
	1.close(ResultSet rs,Statement stmt,Connection conn)
		用于返回值为ResultSet的Statement.executeQuery(String sql)
  	2.close(Statement stmt,Connection conn)
			用于返回值为int的Statement.executeUpdate(String sql)
	为了避免空指针异常,每一个资源的释放,都要先做一个null判断,再进行释放	

// 通过DriverManager 获取Connection对象

static public Connection getConnection() {
	Connection conn = null;
	try {
		conn = DriverManager.getConnection(url,user,password);
	} catch (SQLException e) {
		System.out.println("创建Connection对象失败");
		e.printStackTrace();
	}
	return conn;
}	

//通过Connection对象获取用来执行sql语句对象PreparedStatement

static public PreparedStatement prepareStatement(Connection conn,String sql) {
	PreparedStatement pstmt = null;
	try {
		pstmt = conn.prepareStatement(sql);
	} catch (SQLException e) {
		System.out.println("创建PreparedStatement对象失败");
		e.printStackTrace();
	}
	return pstmt;
}

//last.释放资源(中途的执行sql要自己做 [定义sql语句,并执行])

static public void close(ResultSet rs,Statement stmt,Connection conn) {
	close(stmt, conn);
	if(rs != null) {
		try {
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

static public void close(Statement stmt,Connection conn) {
	if(conn != null) {
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	if(stmt != null) {
		try {
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

5.使用工具类需要自己处理sql语句和执行结果

//使用工具类获取Connection对象
Connection conn = DealMysql.getConnection();

//定义sql语句
String sql2 = "select * from student";
ResultSet rs = null;

//使用工具类获取PreparedStatement对象
PreparedStatement pstmt = DealMysql.prepareStatement(conn, sql);

//处理执行结果
try {
	rs = pstmt.executeQuery();
	while(rs.next()){
	    // 通过字段检索
	    int id  = rs.getInt("id");
	    String name = rs.getString("name");
	    String  master= rs.getString("master");

	    // 输出数据
	    System.out.print("id: " + id);
	    System.out.print(", name " + name);
	    System.out.print(", master: " + master);
	    System.out.print("\n");
	}
} catch (SQLException e) {
	e.printStackTrace();
}finally {

	//资源释放
	DealMysql.close(rs, stmt,conn);
}
从零到一:ASTER L2数据获取的实战避坑指南 本文提供了一份详细的ASTER L2数据获取实战指南,涵盖账号注册、环境配置、数据检索、下载故障排除及后处理等关键步骤。特别针对NASA EarthData平台的隐形门槛和常见陷阱,给出了实用解决方案,帮助科研新手高效获取地表温度数据,适用于环境监测和城市热岛效应分析等领域。 阅读详情

相关推荐

Dynamics 365 On-Premise Server v9.0部署体验

期盼已久的Dynamics 365 On-Premise的版本升级终于在11月初姗姗来迟。 11月2日起已经可以在官方渠道下载正式版的Dynamics 365 Server v9.0安装文件,版本号9.0.2,随手附上中文版安装文件下载地址。 想必已经有不少小伙伴开始尝试各种升级、安装了吧。 Dynamics 365 On-Premise的安装过程,度娘一下已经有很多了,这里就不赘述了,只是...

Roger的专栏 2139

JDBC配置文件方式编写工具类

import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; public class JdbcUtilsConfig { //编写JDBC的工具类,获取连接数据...

随珠和璧 1789

OPNET网络仿真实验

外网

嚴 帅的博客 1万+

JDBC工具类抽取方法(使用properties配置文件)

JDBC工具类抽取方式一(测试根据id查询) package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;...

Anarkh_Lee的博客 889

Kali Linux实战:5种局域网DoS攻击手法全解析(附防御方案)

本文以Kali Linux为平台,深入解析了局域网内五种典型的DoS攻击手法,包括TCP SYN Flood、ICMP Flood、MAC地址泛洪、DHCP耗尽以及应用层CC攻击模拟。通过实战演示结合Wireshark抓包分析,清晰揭示了攻击原理与流量特征,并提供了从主机加固、防火墙规则到交换机安全配置(如端口安全、DHCP Snooping)等企业级防御方案,旨在帮助安全人员构建纵深防御体系。

weixin_29313423的博客 396

测试用例经典练习之微信发红包测试用例

微信发红包测试用例

ZCYaiCLX3344的博客 1万+

jdbc.properties的用法

使用步骤: 创建properties文件 配置properties文件 读取外部文件内容 创建properties文件 1.打开IDEA 2.选中项目后,右键点击"new",点击"File" 3.文件后缀名需要为"properities" 配置properties文件 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/Ebook_UI user=root password=1234 这里将对应的信息进行填充即可 读取外部文件

qq_49705961的博客 2061

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 904

数据库配置文件(jdbc.properties)

mybatis开发中使用数据库时获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。 配置文件:jdbc.properties jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl jd...

诗人密语 8040

【Burp入门第三十一篇】Burp+SwitchyOmega实现本地localhost代理

在部分情况下(如本地靶场),当我们需要在Burp中查看、修改本地流量包的时候,按以下三个配置是不能得到本地流量包的。

等风来 3214

DAVIS前言:事件相机资料调研

Event-Camera 资料集锦 1. 官网资料 假设了你买了事件相机,就可以在以下几个链接了解相关的参数和gui界面安装,如果不喜欢gui界面安装,可以第2节,安装相关的源码驱动。 DVS/DAVIS产品说明 等相关产品的软硬件介绍。 iniVation DV教程文档 给出在不同平台下的dvs-gui界面,可按照其说明进行相应的操作。 另外,Neuromorphic vision com...

Ian的博客 4507

JDBC相关工具类的封装

一、JDBC连接工具类(MySQL为例) 1、在项目根目录创建一个properties的配置文件db.properties,里面定义了四行数据,分别对应着JDBC连接所需要的几个参数(注:Properties底层为一个Hashtable,配置文件中“=”之前的代表Map中的键,之后的代表相应键所对应的值) driverClassName=com.mysql.jdbc.Driver url=jdbc...

老头儿ii的博客 1万+

GJB 5000B二级-II实施基础

本文主要描述GJB 5000B二级II实施基础与GJB 5000A的变化情况,以及过程域各条款的实施要点

Abel的博客 2581

工具类:JDBC工具类

配置文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/project jdbc.user=root jdbc.password=123456 jdbc.datasource.size=10 常量接口 package com.lirong.sparkproject.constant; pub...

曹利荣的博客 2986

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JDBC工具类的封装

JDBC工具类,简化JDBC编程 本篇供个人学习使用,有问题欢迎讨论 一、配置JDBC的代码驱动 首先,在编写JDBC工具类前,我们得先配置JDBC的代码驱动。 不会配置的可以看我的另一篇博客,IDEA的JDBC代码配置驱动 二、创建属性配置文件 其次,我们创建一个属性配置文件,里面存放着连接SqlServer的一系列命令。在编写程序时会用到资源绑定器来绑定属性配置文件,实现程序的低耦合度,后期只...

qq_45979254的博客 2325

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JDBC总结——JDBC工具类

文章目录JDBC工具类一、JDBC工具类概述1、定义JDBC工具类的目的2、封装的操作二、JDBC工具类的封装1、dbcp.properties2、JdbcUtil3.java3、JdbcTemplate.java JDBC工具类 一、JDBC工具类概述 1、定义JDBC工具类的目的 每次使用JDBC的时候都要书写冗长的代码段,不符合复用的理念,于是要单独写一个类,将通用的JDBC操作写到一个类...

weixin_44157233的博客 1930

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JDBC工具类详解

JDBCUtils工具类 ​ 在我们使用JDBC 的时候,我们多数的代码都是一样的,这个时候我们就像能不能把相同的代码包装成静态方法给我们使用,这就是我们所谓的JDBC工具类 在认识JDBC工具类之前,我们需要对Properties类有一个复习 方法名 说明 String getProperty(String key) 在此属性列表中搜索具有指定键的属性,并返回所对应的值。 void load(InputStream inStream) 从输入字节流中读取属性列表(键和元素对

宁萧的博客 6264

JDBC工具类 以及使用JDBC工具类 一般开发不可能直接使用 JDBC 了解即可

文章目录JDBC工具类1 工具类的代码实现相关变量使用ResourceBundle 进行资源的绑定,主要是绑定到 jdbc.properties 文件,方便将这个配置文件里面的相关配置读取出来(1)(2)加载驱动关闭资源2 工具类代码实现所有代码package com.luobin.utils;3 调用工具类的代码实现创建进行数据库交互的相关变量调用静态方法进行连接的建立(3)建立sql 语句,将建立的sql 语句进行预编译,得到预编译环境(4)执行预编译得到处理结果(5)对处理结果进行处理(6)释放资源4

CodeDoraemon的博客 2631

JDBC工具类

三种JDBC工具类的实现版本

2301_81096101的博客 1414

Jdbc工具类例子

Jdbc工具类的简单例子 封装方法 创建连接,共用调用 静态代码块,只需调用一次,账号密码等配置文件获取,不需更改代码 关闭资源方法 配置文件: driver=com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/study?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8 user=root password=password ...

林高禄 9256

JDBC工具类封装

JDBC工具类,简化JDBC编程 本篇供个人学习使用,有问题欢迎讨论 一、配置JDBC的代码驱动 首先,在编写JDBC工具类前,我们得先配置JDBC的代码驱动。 不会配置的可以看我的另一篇博客,IDEA的JDBC代码配置驱动 二、创建属性配置文件 其次,我们创建一个属性配置文件,里面存放着连接SqlServer的一系列命令。在编写程序时会用到资源绑定器来绑定属性配置文件,实现程序的低耦合度,后期只需修改属性配置文件中的命令即可。 注意:属性配置文件必须以properties结尾,且存储在src源目录下

Hellohupeng的博客 511

Java中的JDBC操作详解、JDBC工具类的编写以及DBUtils工具包的使用

Java中的JDBC操作详解、JDBC工具类的编写以及DBUtils工具包的使用

一个大数据的爱好者 1867

配置文件(properties文件)与 JDBC工具类(JDBCUtils)创建

配置文件(properties文件) properties 文件是一种属性文件,这种文件以键值对 key=value 格式存储内容(键值都是字符串类型)。Java中可以使用util包下的Properties类来读取这个文件。 可以用“#”作为注释。 解决传参的问题。后缀为.properties,只需在配置文件中设置响应的参数。 # 名为 jdbc.properties 的配置文件,不需要以分号结尾。 url=jdbc:mysql://localhost:3306/db3 username=root pa

longool的博客 1341

通过配置文件来编写jdbc工具类

首先是配置文件的编写 在IDEA中新建配置文件 在配置文件中写上用户名,密码等可变的东西。再以后业务有改变的时候只需要改变配置文件中的属性 新建一个工具类并写上如下代码: import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException

qq_43596152的博客 303

JDBC工具类:JDBCUtils和配置文件

配置文件:jdbc.properties url=jdbc:mysql:///jdbc_demo username=root password=root driver=com.mysql.jdbc.Driver 工具类:JDBCUtils /** * JDBC的工具类 */ public class JDBCUtils { private static String url; ...

Coco的博客 508
上一篇: JDBC连接时使用的类作用及事务
下一篇: JDBC数据库连接池C3P0,Druid
Tket
博客等级 码龄9年 21粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值